JavaScript must be enabled to play.
Browser lacks capabilities required to play.
Upgrade or switch to another browser.
Loading…
PHN0eWxlIHJvbGU9InN0eWxlc2hlZXQiIGlkPSJ0d2luZS11c2VyLXN0eWxlc2hlZXQiIHR5cGU9InRleHQvdHdpbmUtY3NzIj4jdWktYmFye2Rpc3BsYXk6bm9uZX1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OlJhd3Nvbk1lZGl1bTtzcmM6dXJsKGFzc2V0cy9mb250L1Jhd3Nvbk1lZGl1bS5vdGYpfWltZ3std2Via2l0LXVzZXItZHJhZzpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtwb2ludGVyLWV2ZW50czpub25lfWJvZHksaHRtbHttYXgtd2lkdGg6MTAwJTtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG99Ym9keXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7bWFyZ2luOjAhaW1wb3J0YW50O3BhZGRpbmc6MCFpbXBvcnRhbnQ7Zm9udC1mYW1pbHk6UmF3c29uTWVkaXVtIWltcG9ydGFudDtmb250LXNpemU6MS4xcmVtIWltcG9ydGFudH1odG1se21hcmdpbjowIWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50fSNzdG9yeXtiYWNrZ3JvdW5kLWNvbG9yOiMzYjNiM2I7bWFyZ2luOjAgYXV0byFpbXBvcnRhbnQ7bWluLWhlaWdodDpjYWxjKDEwMGR2aCAtIDQ4cHgpO21heC13aWR0aDo0MDBweDtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOjI0cHh9LmxpbmstaW50ZXJuYWx7ZGlzcGxheTpibG9jazttaW4td2lkdGg6MjAwcHghaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYztib3JkZXItcmFkaXVzOjE2cHg7cGFkZGluZzoxMnB4O3RleHQtYWxpZ246Y2VudGVyO3RleHQtZGVjb3JhdGlvbjpub25lIWltcG9ydGFudDtjb2xvcjojMjQyNDI0IWltcG9ydGFudDtmb250LXdlaWdodDo3MDB9LnBhc3NhZ2UgaW1ne2hlaWdodDphdXRvO3dpZHRoOmF1dG87bWF4LXdpZHRoOjEwMCU7Ym9yZGVyLXJhZGl1czoxMHB4O21heC1oZWlnaHQ6NTAwcHg7bWFyZ2luOjAgYXV0b30ucGFzc2FnZXttYXJnaW4tdG9wOjEycHh9Ym9keS5tYXBwIC5wYXNzYWdle21hcmdpbi10b3A6MTEycHg7bWFyZ2luLWJvdHRvbToxNjBweH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjYwMHB4KXsjc3Rvcnl7bWF4LXdpZHRoOjEwMCV9I3RvcGJhcntsZWZ0OjAhaW1wb3J0YW50O3JpZ2h0OjAhaW1wb3J0YW50fSNoZWFkZXJfYXBwe2xlZnQ6MCFpbXBvcnRhbnQ7cmlnaHQ6MCFpbXBvcnRhbnR9fTpyb290ey0tYmc6dXJsKGFzc2V0cy9pbWcvYmcxLndlYnApfS5tYWluLW1lbnV7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjMwcHg7bGVmdDowO3JpZ2h0OjA7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweH1pbnB1dCN0ZXh0Ym94LW5hbWUubWFjcm8tdGV4dGJveHtib3JkZXItcmFkaXVzOjhweH1oMntsaW5lLWhlaWdodDoxLjJ9LmxvZ297bWFyZ2luLXRvcDo3MHB4IWltcG9ydGFudH1ib2R5LmJnMSAjc3Rvcnl7YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7YmFja2dyb3VuZC1zaXplOmNvdmVyO2JhY2tncm91bmQtaW1hZ2U6dmFyKC0tYmcpfS5wYW5lbHtiYWNrZ3JvdW5kLWNvbG9yOiMyNDI0MjQ7Y29sb3I6I2ZjZmNmYztkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoycHg7cGFkZGluZzoyNHB4O2JvcmRlci1yYWRpdXM6MTJweDttaW4td2lkdGg6ODAlOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo0NSU7bGVmdDo1MCU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTQ1JSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNDUlKTstby10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTQ1JSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC00NSUpfS5saW5rLWV4dGVybmFsOjphZnRlcntjb250ZW50OiIiIWltcG9ydGFudH0uYmFjay1zY3JlZW57cG9zaXRpb246YWJzb2x1dGU7dGV4dC1hbGlnbjpjZW50ZXI7dG9wOjQ1JTtsZWZ0OjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNDUlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC00NSUpOy1vLXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNDUlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTQ1JSl9LnBhbmVsIHB7Zm9udC1zaXplOjEuNXJlbTtsaW5lLWhlaWdodDoxLjN9LnBhbmVsIC5saW5rLWludGVybmFse21hcmdpbi10b3A6NnB4O21pbi13aWR0aDo5MCUhaW1wb3J0YW50fS5idXR0b24tYXBwe21heC13aWR0aDo5MHB4O3dpZHRoOjIwJTtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21pbi1oZWlnaHQ6OTBweH0uaG91ci1zY3JlZW57d2lkdGg6MTAwJTt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6NjBweDtsaW5lLWhlaWdodDoxfWRpdiNob21lLXNjcmVlbiBkaXYgZGl2LmhvdXItc2NyZWVuIGgxe21hcmdpbjowO3BhZGRpbmc6MH0uYm90dG9tLWJhcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDA4ZjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDoyNnB4O3BhZGRpbmctYm90dG9tOjE3cHg7cGFkZGluZy10b3A6MTdweH0uZGF5LXNjcmVlbnt3aWR0aDoxMDAlO2xpbmUtaGVpZ2h0OjE7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLXRvcDotMnB4fWRpdi5kYXktc2NyZWVuIHB7bWFyZ2luOjA7cGFkZGluZzowfS5idXR0b24tYXBwIC5saW5rLWludGVybmFse3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7dG9wOjA7cmlnaHQ6MDtsZWZ0OjA7Ym90dG9tOjA7cGFkZGluZzowO21pbi13aWR0aDowIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjIwcHg7LXdlYmtpdC10cmFuc2Zvcm06bm9uZSFpbXBvcnRhbnQ7LW1zLXRyYW5zZm9ybTpub25lIWltcG9ydGFudDstby10cmFuc2Zvcm06bm9uZSFpbXBvcnRhbnQ7dHJhbnNmb3JtOm5vbmUhaW1wb3J0YW50fSNob21lLXNjcmVlbntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O2dhcDoyMHB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDo3JTtsZWZ0OjA7cmlnaHQ6MDstd2Via2l0LWZsZXgtd3JhcDp3cmFwOy1tcy1mbGV4LXdyYXA6d3JhcDtmbGV4LXdyYXA6d3JhcDstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0jdG9wYmFye21pbi1oZWlnaHQ6MzZweDtwb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjEycHg7cmlnaHQ6MTJweDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOy1tcy1mbGV4LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjttYXgtd2lkdGg6NDQ4cHg7bWFyZ2luOjAgYXV0bztiYWNrZ3JvdW5kLWNvbG9yOiM0ZDRkNGQxMDt6LWluZGV4Ojk5fSNuYXZiYXJ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDttYXgtaGVpZ2h0OjYwcHg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OjYwcHh9Ym9keS5tYXBwICNzdG9yeXtiYWNrZ3JvdW5kLWNvbG9yOiMwYjE0MWF9I25hdmJhciAuYnV0dG9uLWFwcCBpbWd7aGVpZ2h0OjMwcHg7d2lkdGg6MzBweDstby1vYmplY3QtZml0OmNvbnRhaW47b2JqZWN0LWZpdDpjb250YWluO21hcmdpbjowIWltcG9ydGFudDtwYWRkaW5nLWxlZnQ6MTJweH0jbmF2YmFyIC5idXR0b24tYXBwe21heC13aWR0aDpub25lIWltcG9ydGFudDt3aWR0aDozMnB4IWltcG9ydGFudH0jaGVhZGVyX2FwcCxib2R5Lm1hcHAgI3RvcGJhcntiYWNrZ3JvdW5kLWNvbG9yOiMyMDJjMzN9I2hlYWRlcl9hcHB7cG9zaXRpb246Zml4ZWQ7bWluLWhlaWdodDo3MHB4O3RvcDozNnB4O2xlZnQ6MTJweDtyaWdodDoxMnB4O21heC13aWR0aDo0NDhweDttYXJnaW46MCBhdXRvO21heC1oZWlnaHQ6MTAwcHg7ei1pbmRleDo5NTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfSNoZWFkZXJfYXBwIGgxe21hcmdpbjowO3BhZGRpbmc6MDtmb250LXNpemU6MS41ZW19I2F2YXRhcl9tZXNzYWdlIGltZ3ttaW4taGVpZ2h0OjUwcHg7bWluLXdpZHRoOjUwcHg7bWF4LWhlaWdodDo1MHB4O21heC13aWR0aDo1MHB4fSNtZXNzYWdlX2J1dHRvbnN7bWFyZ2luLXJpZ2h0OjE0cHg7d2lkdGg6MTIwcHg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmVuZDstd2Via2l0LWp1c3RpZnktY29udGVudDpmbGV4LWVuZDstbXMtZmxleC1wYWNrOmVuZDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9ZGl2LmhlYWRlcl9hcHBfY29udGVudCBkaXYjbWVzc2FnZV9idXR0b25zIGJ1dHRvbiNza2lwVG9nZ2xlQnV0dG9ue21pbi1oZWlnaHQ6NTBweCFpbXBvcnRhbnQ7bWluLXdpZHRoOjUwcHghaW1wb3J0YW50O21heC1oZWlnaHQ6NTBweCFpbXBvcnRhbnQ7bWF4LXdpZHRoOjUwcHghaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZTpjb3ZlciFpbXBvcnRhbnQ7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudDtib3JkZXI6bm9uZSFpbXBvcnRhbnQ7b3V0bGluZTowIWltcG9ydGFudDtjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoYXNzZXRzL2ltZy9GYXN0Rm93YXJkQnV0dG9uSWRsZS53ZWJwKTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fWRpdi5oZWFkZXJfYXBwX2NvbnRlbnQgZGl2I21lc3NhZ2VfYnV0dG9ucyBidXR0b24jc2tpcFRvZ2dsZUJ1dHRvbiAuYWN0aXZle21pbi1oZWlnaHQ6NTBweCFpbXBvcnRhbnQ7bWluLXdpZHRoOjUwcHghaW1wb3J0YW50O21heC1oZWlnaHQ6NTBweCFpbXBvcnRhbnQ7bWF4LXdpZHRoOjUwcHghaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZTpjb3ZlciFpbXBvcnRhbnQ7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudDtib3JkZXI6bm9uZSFpbXBvcnRhbnQ7b3V0bGluZTowIWltcG9ydGFudDtjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoYXNzZXRzL2ltZy9GYXN0Rm93YXJkQnV0dG9uQWN0aXZlLndlYnApO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LmF2YXRhcl9tZXNzYWdle21pbi13aWR0aDo3NXB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXh9LmhlYWRlcl9hcHBfY29udGVudHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOy1tcy1mbGV4LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt3aWR0aDoxMDAlfSNiYWNrLXNwYWNle3dpZHRoOjYwcHg7bWluLXdpZHRoOjYwcHh9LmhlYWRlcl9hcHBfY29udGVudCBoMXt0ZXh0LWFsaWduOmNlbnRlcn0ubWVzc2FnZV9idXR0b25ze2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7bWluLXdpZHRoOjEyMHB4Oy13ZWJraXQtYm94LXBhY2s6ZW5kOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmZsZXgtZW5kOy1tcy1mbGV4LXBhY2s6ZW5kO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0ubWVzc2FnZV9idXR0b25zIGltZ3stby1vYmplY3QtZml0OmNvbnRhaW47b2JqZWN0LWZpdDpjb250YWluO21heC13aWR0aDo0NHB4O21hcmdpbjowIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6NnB4IWltcG9ydGFudDtjdXJzb3I6cG9pbnRlcn0uaGVhZGVyX3RpdGxle3dpZHRoOjEwMCV9I21lc3NhZ2Vfb3V0c2lkZXtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O2dhcDoxMnB4O3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6OXB4O2JhY2tncm91bmQtY29sb3I6IzIwMmMzMztib3JkZXItcmFkaXVzOjVweH0jbWVzc2FnZV9vdXRzaWRlIC5hdmF0YXIgaW1ne21heC13aWR0aDo2MHB4O21heC1oZWlnaHQ6NjBweH0jbWVzc2FnZV9vdXRzaWRlIC5hdmF0YXJ7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH0uZXJyb3J7dGV4dC1hbGlnbjpjZW50ZXI7bGluZS1oZWlnaHQ6MTtmb250LXNpemU6MnJlbTtmb250LXdlaWdodDo3MDA7Y29sb3I6IzU5OGViYTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5oYXNfbWVzc2FnZXtiYWNrZ3JvdW5kLWNvbG9yOiNlOTFlOTQ7Ym9yZGVyLXJhZGl1czoxMDBweDtjb2xvcjojZmZmO2hlaWdodDoyMHB4O3dpZHRoOjIwcHg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0jbWVzc2FnZV9vdXRzaWRlIC50ZXh0b3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O3dpZHRoOjEwMCU7LXdlYmtpdC1ib3gtcGFjazpqdXN0aWZ5Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47LW1zLWZsZXgtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufSNtZXNzYWdlX291dHNpZGUgLm1lbnNhamV7Y29sb3I6IzczODI4Yjstby10ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt3aWR0aDoyNTBweH0jbWVzc2FnZV9vdXRzaWRlIC5ub21icmV7Zm9udC13ZWlnaHQ6NzAwfSNtZXNzYWdlX291dHNpZGUgLmhvcmF7Y29sb3I6IzczODI4Yjtmb250LXdlaWdodDo3MDB9I21lc3NhZ2Vfb3V0c2lkZSBhLmxpbmstaW50ZXJuYWwubWFjcm8tbGlua3twb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MDtib3JkZXItcmFkaXVzOjA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6MH1kaXYjbmF2YmFyIGRpdi5idXR0b24tYXBwIGEubGluay1pbnRlcm5hbC5tYWNyby1saW5re2JvcmRlcjowfS5tZW5zYWplX2NhcHN1bGUtZmlyc3R7YmFja2dyb3VuZC1jb2xvcjojNDA0NTRiO3BhZGRpbmc6OHB4IDI4cHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjIwcHg7LXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjJweDtib3JkZXItcmFkaXVzOjIwcHg7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czoycHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmV9Lm1lbnNhamVfY2Fwc3VsZXtiYWNrZ3JvdW5kLWNvbG9yOiM0MDQ1NGI7cGFkZGluZzo4cHggMTZweDtib3JkZXItcmFkaXVzOjRweDtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tdG9wOjlweH1kaXYubWVuc2FqZV9jYXBzdWxlLnBhZGRpbmctbWVzc2FnZS5kZXJlY2hhOjpiZWZvcmV7Y29udGVudDp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgZmlsbD0nJTIzNDA0NTRiJyB2ZXJzaW9uPScxLjEnIGlkPSdMYXllcl8xJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2aWV3Qm94PScwIDAgMjQgMjQnIHhtbDpzcGFjZT0ncHJlc2VydmUnJTNFJTNDZyBpZD0nU1ZHUmVwb19iZ0NhcnJpZXInIHN0cm9rZS13aWR0aD0nMCclM0UlM0MvZyUzRSUzQ2cgaWQ9J1NWR1JlcG9fdHJhY2VyQ2Fycmllcicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyUzRSUzQy9nJTNFJTNDZyBpZD0nU1ZHUmVwb19pY29uQ2FycmllciclM0UlM0NzdHlsZSB0eXBlPSd0ZXh0L2NzcyclM0UgLnN0MCU3QmZpbGw6bm9uZSUzQiU3RCAlM0Mvc3R5bGUlM0UlM0NwYXRoIGQ9J00xNSA2bC03IDZsNyA2VjZ6JyUzRSUzQy9wYXRoJTNFJTNDcmVjdCBjbGFzcz0nc3QwJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnJTNFJTNDL3JlY3QlM0UlM0MvZyUzRSUzQy9zdmclM0UiKTt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDotM3B4O2xlZnQ6LTI0cHh9ZGl2I2NvbnRlbnQgYS5saW5rLWludGVybmFsLm1hY3JvLWxpbmt7YmFja2dyb3VuZC1jb2xvcjojMTU2NmFjO2NvbG9yOiNmZmYhaW1wb3J0YW50fWRpdi5tZW5zYWplX2NhcHN1bGUucGFkZGluZy1tZXNzYWdlLml6cXVpZXJkYTo6YWZ0ZXJ7Y29udGVudDp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgZmlsbD0nJTIzMTU2NmFjJyB2ZXJzaW9uPScxLjEnIGlkPSdMYXllcl8xJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2aWV3Qm94PScwIDAgMjQgMjQnIHhtbDpzcGFjZT0ncHJlc2VydmUnIHRyYW5zZm9ybT0ncm90YXRlKDE4MCknJTNFJTNDZyBpZD0nU1ZHUmVwb19iZ0NhcnJpZXInIHN0cm9rZS13aWR0aD0nMCclM0UlM0MvZyUzRSUzQ2cgaWQ9J1NWR1JlcG9fdHJhY2VyQ2Fycmllcicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyUzRSUzQy9nJTNFJTNDZyBpZD0nU1ZHUmVwb19pY29uQ2FycmllciclM0UlM0NzdHlsZSB0eXBlPSd0ZXh0L2NzcyclM0UgLnN0MCU3QmZpbGw6bm9uZSUzQiU3RCAlM0Mvc3R5bGUlM0UlM0NwYXRoIGQ9J00xNSA2bC03IDZsNyA2VjZ6JyUzRSUzQy9wYXRoJTNFJTNDcmVjdCBjbGFzcz0nc3QwJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnJTNFJTNDL3JlY3QlM0UlM0MvZyUzRSUzQy9zdmclM0UiKTt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDotM3B4O3JpZ2h0Oi0yM3B4fS50eXBpbmd7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTdweH0udHlwaW5nIC5kb3R7LXdlYmtpdC1hbmltYXRpb246bWVyY3VyeVR5cGluZ0FuaW1hdGlvbiAxLjhzIGluZmluaXRlIGVhc2UtaW4tb3V0Oy1vLWFuaW1hdGlvbjptZXJjdXJ5VHlwaW5nQW5pbWF0aW9uIDEuOHMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7YW5pbWF0aW9uOm1lcmN1cnlUeXBpbmdBbmltYXRpb24gMS44cyBpbmZpbml0ZSBlYXNlLWluLW91dDtiYWNrZ3JvdW5kLWNvbG9yOiM2Y2FkOTY7Ym9yZGVyLXJhZGl1czo1MCU7aGVpZ2h0OjdweDttYXJnaW4tcmlnaHQ6NHB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aWR0aDo3cHg7ZGlzcGxheTppbmxpbmUtYmxvY2t9LnR5cGluZyAuZG90OmZpcnN0LWNoaWxkey13ZWJraXQtYW5pbWF0aW9uLWRlbGF5Oi4yczstby1hbmltYXRpb24tZGVsYXk6LjJzO2FuaW1hdGlvbi1kZWxheTouMnN9LnR5cGluZyAuZG90Om50aC1jaGlsZCgyKXstd2Via2l0LWFuaW1hdGlvbi1kZWxheTouM3M7LW8tYW5pbWF0aW9uLWRlbGF5Oi4zczthbmltYXRpb24tZGVsYXk6LjNzfS50eXBpbmcgLmRvdDpudGgtY2hpbGQoMyl7LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6LjRzOy1vLWFuaW1hdGlvbi1kZWxheTouNHM7YW5pbWF0aW9uLWRlbGF5Oi40c30udHlwaW5nIC5kb3Q6bGFzdC1jaGlsZHttYXJnaW4tcmlnaHQ6MH1ALXdlYmtpdC1rZXlmcmFtZXMgbWVyY3VyeVR5cGluZ0FuaW1hdGlvbnswJXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApO2JhY2tncm91bmQtY29sb3I6IzZjYWQ5Nn0yOCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtN3B4KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtN3B4KTtiYWNrZ3JvdW5kLWNvbG9yOiM5ZWNhYjl9NDQley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7YmFja2dyb3VuZC1jb2xvcjojYjVkOWNifX1ALW8ta2V5ZnJhbWVzIG1lcmN1cnlUeXBpbmdBbmltYXRpb257MCV7LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7YmFja2dyb3VuZC1jb2xvcjojNmNhZDk2fTI4JXstby10cmFuc2Zvcm06dHJhbnNsYXRlWSgtN3B4KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtN3B4KTtiYWNrZ3JvdW5kLWNvbG9yOiM5ZWNhYjl9NDQley1vLXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApO2JhY2tncm91bmQtY29sb3I6I2I1ZDljYn19QGtleWZyYW1lcyBtZXJjdXJ5VHlwaW5nQW5pbWF0aW9uezAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7YmFja2dyb3VuZC1jb2xvcjojNmNhZDk2fTI4JXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC03cHgpOy1vLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC03cHgpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC03cHgpO2JhY2tncm91bmQtY29sb3I6IzllY2FiOX00NCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTstby10cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTtiYWNrZ3JvdW5kLWNvbG9yOiNiNWQ5Y2J9fSNtZXNzYWdlX2NvbnRhaW5lcntkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWJveDtkaXNwbGF5Oi13ZWJraXQtaW5saW5lLWZsZXg7ZGlzcGxheTotbXMtaW5saW5lLWZsZXhib3g7ZGlzcGxheTppbmxpbmUtZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6NnB4O3dpZHRoOjEwMCU7b3BhY2l0eTowfSNtZXNzYWdlX2NvbnRhaW5lciAuYXZhdGFyIGltZ3toZWlnaHQ6NjBweDt3aWR0aDo2MHB4O21heC1oZWlnaHQ6NjBweDttYXgtd2lkdGg6NjBweDttYXJnaW4tdG9wOi0xNnB4O21hcmdpbi1yaWdodDotMTZweDt6LWluZGV4OjE7cG9zaXRpb246cmVsYXRpdmV9LmZsZXh7Z2FwOjZweDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOnN0YXJ0Oy13ZWJraXQtYWxpZ24taXRlbXM6ZmxleC1zdGFydDstbXMtZmxleC1hbGlnbjpzdGFydDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5wYWRkaW5nLW1lc3NhZ2V7bWFyZ2luLWxlZnQ6LTJweH0ubWVuc2FqZV9jYXBzdWxlLWZpcnN0LmRlcmVjaGF7bWFyZ2luLXJpZ2h0OjMwcHh9Lm1lbnNhamVfY2Fwc3VsZS1maXJzdC5penF1aWVyZGF7bWFyZ2luLWxlZnQ6MzBweH0ubWVuc2FqZV9jYXBzdWxlLmRlcmVjaGF7bWFyZ2luLXJpZ2h0Ojc1cHh9Lm1lbnNhamVfY2Fwc3VsZS5penF1aWVyZGF7bWFyZ2luLWxlZnQ6OTBweDttYXJnaW4tcmlnaHQ6LTZweDtiYWNrZ3JvdW5kLWNvbG9yOiMxNTY2YWN9I3BhZGRpbmctYm94e21pbi1oZWlnaHQ6MzBweH0uY2hhdF9iYXJ7cG9zaXRpb246Zml4ZWQ7bWluLWhlaWdodDo1MHB4O2JvdHRvbTowO21hcmdpbjowIGF1dG87bGVmdDoxMHB4O3JpZ2h0OjEwcHg7bWF4LXdpZHRoOjQ0OHB4O2JhY2tncm91bmQtY29sb3I6IzBiMTQxYX0uY2hhdF9iYXIgYXttYXJnaW4tYm90dG9tOjEycHh9LnBsYXllcl9tZXNzYWdle2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtcGFjazplbmQ7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7LW1zLWZsZXgtcGFjazplbmQ7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO3dpZHRoOjEwMCV9Lm9mZmxpbmUtdGV4dHtjb2xvcjojNzM4MjhiO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbi10b3A6MzRweH0uZmFkZS1pbntvcGFjaXR5OjA7LXdlYmtpdC1hbmltYXRpb246ZmFkZUluIDFzIGZvcndhcmRzOy1vLWFuaW1hdGlvbjpmYWRlSW4gMXMgZm9yd2FyZHM7YW5pbWF0aW9uOmZhZGVJbiAxcyBmb3J3YXJkc31ALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUlue2Zyb217b3BhY2l0eTowfXRve29wYWNpdHk6MX19QC1vLWtleWZyYW1lcyBmYWRlSW57ZnJvbXtvcGFjaXR5OjB9dG97b3BhY2l0eToxfX1Aa2V5ZnJhbWVzIGZhZGVJbntmcm9te29wYWNpdHk6MH10b3tvcGFjaXR5OjF9fUAtd2Via2l0LWtleWZyYW1lcyBmYWRlT3V0e2Zyb217b3BhY2l0eToxfXRve29wYWNpdHk6MH19QC1vLWtleWZyYW1lcyBmYWRlT3V0e2Zyb217b3BhY2l0eToxfXRve29wYWNpdHk6MH19QGtleWZyYW1lcyBmYWRlT3V0e2Zyb217b3BhY2l0eToxfXRve29wYWNpdHk6MH19LndpbntiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLGxlZnQgdG9wLGxlZnQgYm90dG9tLGNvbG9yLXN0b3AoNSUsIzIxYWQyNiksdG8oIzM0ODUzNykpO2JhY2tncm91bmQ6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwjMjFhZDI2IDUlLCMzNDg1MzcgMTAwJSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCMyMWFkMjYgNSUsIzM0ODUzNyAxMDAlKTtib3JkZXItcmFkaXVzOjhweDtjb2xvcjojZmZmO2ZvbnQtc2l6ZToxNXB4O3RleHQtZGVjb3JhdGlvbjpub25lO3RleHQtc2hhZG93OjAgMXB4IDAgIzNkNzY4YTtwYWRkaW5nOjEwcHggMTBweDttYXgtd2lkdGg6MzAwcHg7bWFyZ2luOjAgYXV0bzttYXJnaW4tdG9wOjEwcHg7bWFyZ2luLWJvdHRvbToxMHB4O2Rpc3BsYXk6YmxvY2s7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lO3dpZHRoOjMwMHB4O3RleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7dGV4dC1hbGlnbjpjZW50ZXJ9Lndpbi1jYXBzdWxle2JhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwuNSk7cGFkZGluZzo1cHg7Ym9yZGVyLXJhZGl1czo1cHg7ZGlzcGxheTppbmxpbmUtYmxvY2t9Lndpbi1zaW1ib2x7Zm9udC13ZWlnaHQ6NzAwO29wYWNpdHk6MDstd2Via2l0LWFuaW1hdGlvbjpmYWRlSW4gMXMgZm9yd2FyZHM7LW8tYW5pbWF0aW9uOmZhZGVJbiAxcyBmb3J3YXJkczthbmltYXRpb246ZmFkZUluIDFzIGZvcndhcmRzOy13ZWJraXQtYW5pbWF0aW9uLWRlbGF5Oi40czstby1hbmltYXRpb24tZGVsYXk6LjRzO2FuaW1hdGlvbi1kZWxheTouNHN9LmNlbnRlcntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfSN0b2FzdC1mdWxse3Bvc2l0aW9uOmZpeGVkO3RvcDo0NXB4O2xlZnQ6MDtyaWdodDowO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7ei1pbmRleDo5OTstd2Via2l0LWFuaW1hdGlvbjpmYWRlT3V0IC44czstby1hbmltYXRpb246ZmFkZU91dCAuOHM7YW5pbWF0aW9uOmZhZGVPdXQgLjhzOy13ZWJraXQtYW5pbWF0aW9uLWRlbGF5OjEuNXM7LW8tYW5pbWF0aW9uLWRlbGF5OjEuNXM7YW5pbWF0aW9uLWRlbGF5OjEuNXN9LnRvYXN0LWNvbnRhaW5lcnttYXgtd2lkdGg6MzAwcHg7d2lkdGg6MzAwcHg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDtiYWNrZ3JvdW5kOiMyNDI0MjQ7bGluZS1oZWlnaHQ6MTtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzo2cHg7Ym9yZGVyLXJhZGl1czoxMHB4O2dhcDo5cHg7ei1pbmRleDo5OX0udG9hc3QtdGV4dHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O2dhcDoxMnB4Oy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOy1tcy1mbGV4LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbjt3aWR0aDoxMDAlfWRpdi50b2FzdC1jb250YWluZXIgZGl2LnRvYXN0LWF2YXRhciBpbWd7bWF4LXdpZHRoOjQwcHg7bWF4LWhlaWdodDo0MHB4O2hlaWdodDo0MHB4O3dpZHRoOjQwcHg7bWFyZ2luLXRvcDo2cHh9Ym9keS5ub3Rob3VyIC50b3AtaG91cntvcGFjaXR5OjB9Ym9keS5ub3RlcyAjaGVhZGVyX2FwcHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmYhaW1wb3J0YW50O2NvbG9yOiMwMDAhaW1wb3J0YW50fWJvZHkubm90ZXMgI25hdmJhcnstd2Via2l0LWZpbHRlcjppbnZlcnQoMTAwJSk7ZmlsdGVyOmludmVydCgxMDAlKX1ib2R5Lm5vdGVzICN0b3BiYXJ7YmFja2dyb3VuZC1jb2xvcjojMDAwIWltcG9ydGFudH1ib2R5Lm5vdGVzICNzdG9yeXtiYWNrZ3JvdW5kLWNvbG9yOiNlM2UzZTMhaW1wb3J0YW50fWJvZHkudG9kbyAjaGVhZGVyX2FwcHtiYWNrZ3JvdW5kLWNvbG9yOiMxZjJiMzMhaW1wb3J0YW50fWJvZHkudG9kbyAjdG9wYmFye2JhY2tncm91bmQtY29sb3I6IzAwMCFpbXBvcnRhbnR9Ym9keS50b2RvICNzdG9yeXtiYWNrZ3JvdW5kLWNvbG9yOiMwYjEzMTkhaW1wb3J0YW50fWF7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50O291dGxpbmU6MH1hOmFjdGl2ZSxhOmZvY3Vze291dGxpbmU6MH0jcGFkZGluZy1jb250YWluZXJ7bWFyZ2luLXRvcDoxMDBweH1ib2R5LGh0bWx7c2Nyb2xsYmFyLXdpZHRoOm5vbmV9I2NvbnRlbnR7cGFkZGluZzoxMnB4O3BhZGRpbmctYm90dG9tOjMwcHh9I21lc3NhZ2VfaW1nIGltZ3t3aWR0aDozMDBweDtoZWlnaHQ6MzAwcHg7LW8tb2JqZWN0LWZpdDpjb3ZlcjtvYmplY3QtZml0OmNvdmVyfWRpdiNtZXNzYWdlX2ltZyBidXR0b24ubGluay1pbnRlcm5hbC5tYWNyby1idXR0b257d2lkdGg6MzAwcHg7aGVpZ2h0OjMwMHB4O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7b3V0bGluZTowO2N1cnNvcjpwb2ludGVyO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO2JvcmRlci1yYWRpdXM6MTBweH1kaXYjbWVzc2FnZV9pbWcgYnV0dG9uLmxpbmstaW50ZXJuYWwubWFjcm8tYnV0dG9uOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzAwMDAwMDhmfSNtZXNzYWdlX2ltZ3twb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW4tYm90dG9tOjEycHg7bWFyZ2luLXRvcDoxMnB4fSN1aS1kaWFsb2d7d2lkdGg6MTAwJSFpbXBvcnRhbnQ7bWFyZ2luOjAgYXV0byFpbXBvcnRhbnQ7cGFkZGluZzowIWltcG9ydGFudDtsZWZ0OjAhaW1wb3J0YW50O2JvdHRvbTowIWltcG9ydGFudDt0b3A6MCFpbXBvcnRhbnQ7cmlnaHQ6MCFpbXBvcnRhbnQ7bWF4LXdpZHRoOjQ0OHB4fSN1aS1kaWFsb2ctdGl0bGV7YmFja2dyb3VuZC1jb2xvcjojMDAwfSN1aS1kaWFsb2ctdGl0bGViYXJ7YmFja2dyb3VuZC1jb2xvcjojMDAwO2NvbG9yOiNmZmY7Ym9yZGVyOm5vbmV9I3VpLWRpYWxvZy1ib2R5e3BhZGRpbmc6MCFpbXBvcnRhbnQ7YmFja2dyb3VuZC1jb2xvcjojMDAwIWltcG9ydGFudDtib3JkZXI6bm9uZSFpbXBvcnRhbnR9ZGl2I3VpLWRpYWxvZy1ib2R5IGRpdiNpbWdfYmlnIGltZ3toZWlnaHQ6OTB2aDt3aWR0aDoxMDAlOy1vLW9iamVjdC1maXQ6Y29udGFpbjtvYmplY3QtZml0OmNvbnRhaW59I2ltZ19iaWd7cG9zaXRpb246cmVsYXRpdmV9LnNldF93YWxscGFwZXJfY2Fwc3VsZSBpbWd7aGVpZ2h0OjMwcHghaW1wb3J0YW50O3dpZHRoOjMwcHghaW1wb3J0YW50Oy1vLW9iamVjdC1maXQ6Y29udGFpbiFpbXBvcnRhbnQ7b2JqZWN0LWZpdDpjb250YWluIWltcG9ydGFudDttYXJnaW46MCFpbXBvcnRhbnR9LnNldF93YWxscGFwZXJfY2Fwc3VsZSBwe21hcmdpbjowO3BhZGRpbmc6MDtjb2xvcjojZmZmO2ZvbnQtc2l6ZToxLjJlbTttYXJnaW4tbGVmdDoxMnB4fWRpdiN1aS1kaWFsb2ctYm9keSBkaXYjaW1nX2JpZyBkaXYuc2V0X3dhbGxwYXBlcl9jYXBzdWxlIGJ1dHRvbi5saW5rLWludGVybmFsLm1hY3JvLWJ1dHRvbjo6YmVmb3Jle2JhY2tncm91bmQtaW1hZ2U6dXJsKCdhc3NldHMvaW1nL2ltZy53ZWJwJyk7YmFja2dyb3VuZC1zaXplOjIwcHggMjBweDtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O21hcmdpbi1yaWdodDo3cHg7Y29udGVudDoiIn1kaXYjdWktZGlhbG9nLWJvZHkgZGl2I2ltZ19iaWcgZGl2LnNldF93YWxscGFwZXJfY2Fwc3VsZSBidXR0b24ubGluay1pbnRlcm5hbC5tYWNyby1idXR0b257YmFja2dyb3VuZC1jb2xvcjojNGE0YTRhO21heC1oZWlnaHQ6NDBweDttYXgtd2lkdGg6MjM1cHg7Ym9yZGVyLXJhZGl1czoyNnB4O3BhZGRpbmc6N3B4IDE4cHg7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDttYXJnaW46MCBhdXRvO2NvbG9yOiNmZmYhaW1wb3J0YW50O2ZvbnQtc2l6ZToxLjJlbTstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn1AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NjAwcHgpeyNtZXNzYWdlX291dHNpZGUgLm1lbnNhamV7bWF4LXdpZHRoOjUwdnd9I2hlYWRlcl9hcHB7bWF4LXdpZHRoOjEwMCV9I3RvcGJhcnttYXgtd2lkdGg6MTAwJX1kaXYuYnV0dG9uLWFwcCBpbWd7bWluLXdpZHRoOjcwcHghaW1wb3J0YW50O21heC13aWR0aDo3MHB4IWltcG9ydGFudH19ZGl2I2ltZ19iaWcgdmlkZW97aGVpZ2h0Ojkwdmh9Ym9keS53aGl0ZSAjaGVhZGVyX2FwcHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmYhaW1wb3J0YW50O2NvbG9yOiMwMDAhaW1wb3J0YW50fWJvZHkud2hpdGUgI3RvcGJhcntiYWNrZ3JvdW5kLWNvbG9yOiNiOWI5YjkhaW1wb3J0YW50fWJvZHkud2hpdGUgI3N0b3J5e2JhY2tncm91bmQtY29sb3I6I2ZmZiFpbXBvcnRhbnQ7Y29sb3I6IzAwMCFpbXBvcnRhbnR9Ym9keS53aGl0ZSAjbmF2YmFyey13ZWJraXQtZmlsdGVyOmludmVydCgxMDAlKTtmaWx0ZXI6aW52ZXJ0KDEwMCUpfS5pbnN0YXZpYmUtdG9wLWNvbnRlbnR7bWF4LXdpZHRoOjgwcHg7bWF4LWhlaWdodDoxMDBweDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS5pbnN0YXZpYmUtdG9wLWNvbnRlbnQgaW1ne21heC13aWR0aDo3MHB4O21heC1oZWlnaHQ6NzBweH0uaW5zdGF2aWJlLXRvcHtvdmVyZmxvdy14OnNjcm9sbDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O2dhcDo2cHg7cGFkZGluZy1ib3R0b206MTJweDtzY3JvbGxiYXItd2lkdGg6bm9uZX1kaXYuaW5zdGF2aWJlLXBvc3QgZGl2LmF2YXRhcnt3aWR0aDo2MHB4O2hlaWdodDo2MHB4fS5pbnN0YXZpYmUtcG9zdHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4fWRpdi5pbnN0YXZpYmUtcG9zdCBkaXYudGV4dCBkaXYudG9we2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtcGFjazpqdXN0aWZ5Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47LW1zLWZsZXgtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2ZvbnQtc2l6ZToxLjFyZW07Zm9udC13ZWlnaHQ6NzAwfWRpdi5pbnN0YXZpYmUtcG9zdCBkaXYudGV4dCBkaXYuYm90dG9te2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtcGFjazpqdXN0aWZ5Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47LW1zLWZsZXgtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfWRpdi5pbnN0YXZpYmUtcG9zdCBkaXYudGV4dHt3aWR0aDoxMDAlO21hcmdpbi1sZWZ0OjEycHg7bGluZS1oZWlnaHQ6MTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmctYm90dG9tOjEycHh9ZGl2Lmluc3RhdmliZS1wb3N0IGRpdi50ZXh0IGRpdi5ib3R0b20gZGl2LmJ1dHRvbnMgaW1ne21heC13aWR0aDoyNXB4O21heC1oZWlnaHQ6MjVweDttYXJnaW46MCFpbXBvcnRhbnQ7Y3Vyc29yOnBvaW50ZXI7LW8tb2JqZWN0LWZpdDpjb250YWluO29iamVjdC1maXQ6Y29udGFpbjtib3JkZXItcmFkaXVzOjA7cGFkZGluZy10b3A6MTBweH1kaXYjcGFkZGluZy1jb250YWluZXIgZGl2LmltZy1wb3N0e3Bvc2l0aW9uOnJlbGF0aXZlfWRpdi5pbWctcG9zdCBidXR0b24ubGluay1pbnRlcm5hbC5tYWNyby1idXR0b257cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtvdXRsaW5lOjA7Y3Vyc29yOnBvaW50ZXJ9Lm1hZ2ljX2J1dHRvbntwb3NpdGlvbjpyZWxhdGl2ZTttYXgtd2lkdGg6MjVweDttYXgtaGVpZ2h0OjI1cHg7d2lkdGg6MjVweDtoZWlnaHQ6MjVweH0ubWFnaWNfYnV0dG9uIGltZ3ttYXgtd2lkdGg6MjVweCFpbXBvcnRhbnQ7bWF4LWhlaWdodDoyNXB4IWltcG9ydGFudDttYXJnaW46MCFpbXBvcnRhbnQ7Y3Vyc29yOnBvaW50ZXIhaW1wb3J0YW50Oy1vLW9iamVjdC1maXQ6Y29udGFpbiFpbXBvcnRhbnQ7b2JqZWN0LWZpdDpjb250YWluIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjAhaW1wb3J0YW50O3BhZGRpbmctdG9wOjEwcHghaW1wb3J0YW50fS5tYWdpY19idXR0b24gYnV0dG9uLmxpbmstaW50ZXJuYWwubWFjcm8tYnV0dG9ue3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7b3V0bGluZTowO2N1cnNvcjpwb2ludGVyO21pbi13aWR0aDowIWltcG9ydGFudH1kaXYudGV4dCBkaXYuYm90dG9tIGRpdi5idXR0b25ze2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXh9ZGl2Lmluc3RhdmliZS10b3AgZGl2Lmluc3RhdmliZS10b3AtY29udGVudHtwb3NpdGlvbjpyZWxhdGl2ZX1kaXYuaW5zdGF2aWJlLXRvcCBkaXYuaW5zdGF2aWJlLXRvcC1jb250ZW50IGJ1dHRvbi5saW5rLWludGVybmFsLm1hY3JvLWJ1dHRvbntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO291dGxpbmU6MDtjdXJzb3I6cG9pbnRlcjttaW4td2lkdGg6MCFpbXBvcnRhbnR9I3Rlc3RidXR0b257d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJX1kaXYjcGFkZGluZy1jb250YWluZXIgZGl2LmRlc2NyaXB0aW9ue21heC13aWR0aDo5MCU7bWFyZ2luLXRvcDotMnB4O21hcmdpbi1sZWZ0OjdweDtsaW5lLWhlaWdodDoxLjN9LnByb2ZpbGUtY2FyZHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O2dhcDoxMnB4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbi1ib3R0b206MjBweH0ucHJvZmlsZS1jYXJkIGltZ3ttaW4td2lkdGg6ODVweCFpbXBvcnRhbnQ7bWluLWhlaWdodDo4NXB4IWltcG9ydGFudDt3aWR0aDo4NXB4IWltcG9ydGFudDtoZWlnaHQ6ODVweCFpbXBvcnRhbnQ7bWF4LXdpZHRoOjg1cHghaW1wb3J0YW50O21heC1oZWlnaHQ6ODVweCFpbXBvcnRhbnR9LnN0YXRze2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7dGV4dC1hbGlnbjpjZW50ZXI7bGluZS1oZWlnaHQ6MTstd2Via2l0LWJveC1wYWNrOmp1c3RpZnk7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjstbXMtZmxleC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47bWFyZ2luLXRvcDoxMnB4fWRpdi5wcm9maWxlLWNhcmQgZGl2LnByb2ZpbGUtaW5mbyBkaXYubmFtZXtmb250LXNpemU6MS4ycmVtO2ZvbnQtd2VpZ2h0OjcwMH0uaWNvbi1jb250YWluZXJ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDtnYXA6MjBweDstd2Via2l0LWZsZXgtd3JhcDp3cmFwOy1tcy1mbGV4LXdyYXA6d3JhcDtmbGV4LXdyYXA6d3JhcDstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjttYXJnaW46MjBweH1kaXYuYnV0dG9uLWFwcCBpbWd7bWluLXdpZHRoOjkwcHg7bWF4LXdpZHRoOjkwcHh9I2F2YXRhcl9tZXNzYWdle21hcmdpbi1sZWZ0OjhweDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4fS5lbW9qaXttYXgtd2lkdGg6NjBweCFpbXBvcnRhbnQ7bWF4LWhlaWdodDo2MHB4IWltcG9ydGFudDstby1vYmplY3QtZml0OmNvbnRhaW4haW1wb3J0YW50O29iamVjdC1maXQ6Y29udGFpbiFpbXBvcnRhbnQ7bWluLXdpZHRoOjYwcHghaW1wb3J0YW50O21pbi1oZWlnaHQ6NjBweCFpbXBvcnRhbnR9I21lc3NhZ2VfaW1ne21pbi1oZWlnaHQ6NjBweH0uZW1vamlfdXNlcntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowIWltcG9ydGFudH0ubWVzc2FnZS10YWd7d2lkdGg6MTAwJTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS5tZXNzYWdlLXRhZy1jYXBzdWxle2JhY2tncm91bmQtY29sb3I6IzQwNDU0YjtwYWRkaW5nOjhweCAxNnB4O2JvcmRlci1yYWRpdXM6NHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi10b3A6OXB4fWJvZHkuZGFyayAjaGVhZGVyX2FwcHtiYWNrZ3JvdW5kLWNvbG9yOiMxZjJiMzMhaW1wb3J0YW50O2NvbG9yOiNmZmYhaW1wb3J0YW50fWJvZHkuZGFyayAjdG9wYmFye2JhY2tncm91bmQtY29sb3I6IzBjMGMwZCFpbXBvcnRhbnR9Ym9keS5kYXJrICNzdG9yeXtiYWNrZ3JvdW5kLWNvbG9yOiMwYjEzMTkhaW1wb3J0YW50O2NvbG9yOiNmZmYhaW1wb3J0YW50fS5zZXR0aW5nX2NvbnRhaW5lcntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O3Bvc2l0aW9uOnJlbGF0aXZlO2JhY2tncm91bmQtY29sb3I6IzIwMmMzMztib3JkZXItcmFkaXVzOjEwcHg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzo2cHggMTJweDstd2Via2l0LWJveC1wYWNrOmp1c3RpZnk7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjstbXMtZmxleC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjIwcHg7bWFyZ2luLWJvdHRvbToxNnB4fS5zZXR0aW5nX2NvbnRhaW5lciAubGluay1pbnRlcm5hbHtwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O3RvcDowO3JpZ2h0OjA7bGVmdDowO2JvdHRvbTowO3BhZGRpbmc6MDttaW4td2lkdGg6MCFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czoyMHB4Oy13ZWJraXQtdHJhbnNmb3JtOm5vbmUhaW1wb3J0YW50Oy1tcy10cmFuc2Zvcm06bm9uZSFpbXBvcnRhbnQ7LW8tdHJhbnNmb3JtOm5vbmUhaW1wb3J0YW50O3RyYW5zZm9ybTpub25lIWltcG9ydGFudH0udGV4dF9zZXR0aW5ne3dpZHRoOjEwMCV9Lmljb25fc2V0dGluZ3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21pbi13aWR0aDo0NXB4O21heC13aWR0aDo0NXB4fS5zZXR0aW5nX2J1dHRvbntwb3NpdGlvbjpyZWxhdGl2ZX0uc2V0dGluZ19idXR0b24gaW1ne21hcmdpbjowIWltcG9ydGFudDtjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnQ7LW8tb2JqZWN0LWZpdDpjb250YWluIWltcG9ydGFudDtvYmplY3QtZml0OmNvbnRhaW4haW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MCFpbXBvcnRhbnQ7cGFkZGluZy10b3A6MTBweCFpbXBvcnRhbnR9LnNldHRpbmdfYnV0dG9uIGJ1dHRvbi5saW5rLWludGVybmFsLm1hY3JvLWJ1dHRvbntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO291dGxpbmU6MDtjdXJzb3I6cG9pbnRlcjttaW4td2lkdGg6MCFpbXBvcnRhbnR9LnByZW1pdW1fY29udGFpbmVye2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjhweDt0ZXh0LWFsaWduOmNlbnRlcn0ucGhvdG9zX2NvbnRhaW5lcntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtZmxleC13cmFwOndyYXA7LW1zLWZsZXgtd3JhcDp3cmFwO2ZsZXgtd3JhcDp3cmFwO3Bvc2l0aW9uOnJlbGF0aXZlO2dhcDoxMnB4fWRpdi5waG90b3NfY29udGFpbmVyIGRpdiNtZXNzYWdlX2ltZ3ttYXgtd2lkdGg6MTI1cHghaW1wb3J0YW50O21heC1oZWlnaHQ6MTI1cHghaW1wb3J0YW50O3dpZHRoOjEyNXB4IWltcG9ydGFudDtoZWlnaHQ6MTI1cHghaW1wb3J0YW50O292ZXJmbG93OmhpZGRlbn1kaXYucGhvdG9zX2NvbnRhaW5lciBkaXYjbWVzc2FnZV9pbWcgaW1ne21heC13aWR0aDoxMjVweCFpbXBvcnRhbnQ7bWF4LWhlaWdodDoxMjVweCFpbXBvcnRhbnQ7d2lkdGg6MTI1cHghaW1wb3J0YW50O2hlaWdodDoxMjVweCFpbXBvcnRhbnR9ZGl2LnBob3Rvc19jb250YWluZXIgZGl2I21lc3NhZ2VfaW1nIGJ1dHRvbi5saW5rLWludGVybmFsLm1hY3JvLWJ1dHRvbnttYXgtd2lkdGg6MTI1cHghaW1wb3J0YW50O21heC1oZWlnaHQ6MTI1cHghaW1wb3J0YW50O3dpZHRoOjEyNXB4IWltcG9ydGFudDtoZWlnaHQ6MTI1cHghaW1wb3J0YW50O21hcmdpbjowIWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50fWJvZHkuaG9yb3Njb3BlICNoZWFkZXJfYXBwe2JhY2tncm91bmQtY29sb3I6IzBjMDMzMiFpbXBvcnRhbnQ7Y29sb3I6I2ZmZiFpbXBvcnRhbnR9Ym9keS5ob3Jvc2NvcGUgI3RvcGJhcntiYWNrZ3JvdW5kLWNvbG9yOiMwYzAzMzIhaW1wb3J0YW50fWJvZHkuaG9yb3Njb3BlICNzdG9yeXtiYWNrZ3JvdW5kLWNvbG9yOiMwYzAzMzIhaW1wb3J0YW50O2NvbG9yOiNmZmYhaW1wb3J0YW50fS5ob3Jvc2NvcGVfY29udGFpbmVye2JhY2tncm91bmQtY29sb3I6IzMxMjk1MDtib3JkZXItcmFkaXVzOjIwcHg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwYWRkaW5nOjIwcHg7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjEuNHJlbTtsaW5lLWhlaWdodDoxfWJvZHkubm90aGluZyAjaGVhZGVyX2FwcHtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAhaW1wb3J0YW50O2NvbG9yOiNmZmYhaW1wb3J0YW50fWJvZHkubm90aGluZyAjdG9wYmFye2JhY2tncm91bmQtY29sb3I6IzAwMCFpbXBvcnRhbnQ7ZGlzcGxheTpub25lfWJvZHkubm90aGluZyAjc3Rvcnl7YmFja2dyb3VuZC1jb2xvcjojMDAwIWltcG9ydGFudDtjb2xvcjojZmZmIWltcG9ydGFudH0ucGFuZWxfYmFja3tiYWNrZ3JvdW5kLWNvbG9yOiMyMDJjMzM7cGFkZGluZzoxNHB4O2xpbmUtaGVpZ2h0OjE7Ym9yZGVyLXJhZGl1czoxMHB4fS5wYW5lbF9iYWNrIGgye21hcmdpbjowO3BhZGRpbmc6MH0uY2xvY2tfcGFuZWx7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmp1c3RpZnk7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjstbXMtZmxleC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZC1jb2xvcjojMjAyYzMzO2JvcmRlci1yYWRpdXM6MTJweDtnYXA6MTJweDtwYWRkaW5nOjhweDttYXJnaW4tYm90dG9tOjIwcHg7cG9zaXRpb246cmVsYXRpdmV9LmNsb2NrX2ltZyBpbWd7bWF4LXdpZHRoOjYwcHg7bWF4LWhlaWdodDo2MHB4O3dpZHRoOjYwcHg7aGVpZ2h0OjYwcHg7LW8tb2JqZWN0LWZpdDpjb250YWluO29iamVjdC1maXQ6Y29udGFpbn0uY2xvY2tfaWNvbiBpbWd7bWF4LXdpZHRoOjM1cHg7bWF4LWhlaWdodDozNXB4O3dpZHRoOjM1cHg7aGVpZ2h0OjM1cHg7LW8tb2JqZWN0LWZpdDpjb250YWluO29iamVjdC1maXQ6Y29udGFpbn0uY2xvY2tfdGV4dHt3aWR0aDoxMDAlO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bGluZS1oZWlnaHQ6MX0uY2xvY2tfdGV4dCBoM3ttYXJnaW46MDtsaW5lLWhlaWdodDoxO3BhZGRpbmc6MH0ub3Jhbmdle2NvbG9yOiNlZDQ1MmV9ZGl2LmNsb2NrX3BhbmVsIGEubGluay1pbnRlcm5hbC5tYWNyby1saW5re3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7b3V0bGluZTowO2N1cnNvcjpwb2ludGVyO21pbi13aWR0aDowIWltcG9ydGFudH0ubm90ZXNfYnV0dG9ue2JhY2tncm91bmQtY29sb3I6I2ZmZjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O3BhZGRpbmc6OHB4IDEycHg7cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyLXJhZGl1czo2cHg7bWFyZ2luLWJvdHRvbToxMnB4fS5ub3Rlc19idXR0b24gYS5saW5rLWludGVybmFsLm1hY3JvLWxpbmt7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtvdXRsaW5lOjA7Y3Vyc29yOnBvaW50ZXI7bWluLXdpZHRoOjAhaW1wb3J0YW50fS5ub3Rlc190ZXh0e2NvbG9yOiMwMDA7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmb250LXNpemU6MS40ZW07Zm9udC13ZWlnaHQ6NzAwO2xpbmUtaGVpZ2h0OjE7d2lkdGg6MTAwJTstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ubm90ZXNfdGV4dCBpbWd7bWFyZ2luOjAhaW1wb3J0YW50O3dpZHRoOjY5cHghaW1wb3J0YW50fS5ub3Rlc19pY29ue2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXh9LnRleHRfYmxhY2t7Y29sb3I6IzAwMDtsaW5lLWhlaWdodDoxLjM7dGV4dC1hbGlnbjpqdXN0aWZ5O2ZvbnQtc2l6ZToxLjFlbX1ib2R5Lm5vdGVzaW4gI2hlYWRlcl9hcHB7YmFja2dyb3VuZC1jb2xvcjojZTNlM2UzIWltcG9ydGFudDtjb2xvcjojMDAwIWltcG9ydGFudH1ib2R5Lm5vdGVzaW4gI3RvcGJhcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDAhaW1wb3J0YW50fWJvZHkubm90ZXNpbiAjc3Rvcnl7YmFja2dyb3VuZC1jb2xvcjojZmZmIWltcG9ydGFudDtjb2xvcjojMDAwIWltcG9ydGFudH1ib2R5Lm5vdGVzaW4gI25hdmJhcnstd2Via2l0LWZpbHRlcjppbnZlcnQoMTAwJSk7ZmlsdGVyOmludmVydCgxMDAlKX1kaXYjcGFzc2FnZS1zeXN0ZW0ucGFzc2FnZS5kYXJrLm5vdGhvdXIgZGl2LnNldHRpbmdfY29udGFpbmVyIGRpdi5pY29uX3NldHRpbmcgaW1ne21heC1oZWlnaHQ6NDBweCFpbXBvcnRhbnQ7bWFyZ2luOjZweCA0cHh9ZGl2I3Bhc3NhZ2Utc3lzdGVtLnBhc3NhZ2UuZGFyay5ub3Rob3VyIGRpdiNwYWRkaW5nLWNvbnRhaW5lciBkaXYuc2V0dGluZ19jb250YWluZXJ7YmFja2dyb3VuZC1jb2xvcjojZjg2NzU0IWltcG9ydGFudDtsaW5lLWhlaWdodDoxO2ZvbnQtd2VpZ2h0OjcwMDtwYWRkaW5nOjE2cHh9LmNsb2NrX2ljb257ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH0uY2xvY2tfaW1ne2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXh9LmdyZXl7Y29sb3I6Izk1OTU5NX0uYWNoaWV2ZW1lbnRzX3RpbGV7Y29sb3I6I2RlMDI4NTt3aWR0aDoxMDAlO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxLjJlbTttYXJnaW4tYm90dG9tOjEycHh9LnRvZG9fYnV0dG9ue2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7YmFja2dyb3VuZC1jb2xvcjojMjAyYzMzO2JvcmRlci1yYWRpdXM6MTJweDtmb250LXNpemU6MS4zcmVtO2dhcDoxMnB4O21hcmdpbi1ib3R0b206MTJweH0udG9kb19pY29ue2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXh9LnRvZG9fdGV4dHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfTwvc3R5bGU+PHNjcmlwdCByb2xlPSJzY3JpcHQiIGlkPSJ0d2luZS11c2VyLXNjcmlwdCIgdHlwZT0idGV4dC90d2luZS1qYXZhc2NyaXB0Ij4idXNlIHN0cmljdCI7ZnVuY3Rpb24gdmFsaWRhdGVLZXkoZSl7dmFyIGE9WzM0NywzMjAsMzU5LDI5NiwxNjcsMTU1LDE1OCwxNzZdO2lmKGUubGVuZ3RoIT09YS5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciB0PTA7dDxlLmxlbmd0aDt0Kyspe3ZhciBzPVN0cmluZy5mcm9tQ2hhckNvZGUoKGFbdF0tNSkvMyk7aWYoZVt0XSE9PXMpcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gcmVzZXRQYXRyb24oKXtzZXRUaW1lb3V0KChmdW5jdGlvbigpe1N0YXRlLnRlbXBvcmFyeS5wYXRyZW9uQ2hlY2s9ITEsU3RhdGUudmFyaWFibGVzLnBtZGxwPSExLFN0YXRlLnZhcmlhYmxlcy5hZnFsb3A9IiIsU3RhdGUudmFyaWFibGVzLk1heENhcD0zLFN0YXRlLnZhcmlhYmxlcy5mcmVlQ2FwPTJ9KSwxZTMpfUNvbmZpZy5zYXZlcy5zbG90cz0xNSxDb25maWcuc2F2ZXMudmVyc2lvbj0yLFN0YXRlLnZhcmlhYmxlcy5lbmRPZkNvbnRlbnQ9ITEsU3RhdGUudmFyaWFibGVzLmVuZE9mRnJlZUNvbnRlbnQ9ITEsU3RhdGUudmFyaWFibGVzLmNhcD0xLFN0YXRlLnZhcmlhYmxlcy5NYXhDYXA9MyxTdGF0ZS52YXJpYWJsZXMuZnJlZUNhcD0yLFN0YXRlLnZhcmlhYmxlcy5iYWNrPSJob21lIixTdGF0ZS52YXJpYWJsZXMudHJhbnNpdGlvblRleHQ9InRlc3QiLFN0YXRlLnZhcmlhYmxlcy50cmFuc2l0aW9uPSExLFN0YXRlLnZhcmlhYmxlcy5kb21zdWI9MCxTdGF0ZS52YXJpYWJsZXMubmFvbWlfb2ZmZXI9ITEsU3RhdGUudmFyaWFibGVzLnZhbmVzc2FfcmVsPTAsU3RhdGUudmFyaWFibGVzLmFubmllX3JvbWFuY2U9MCxTdGF0ZS52YXJpYWJsZXMubmFvbWlfZW5lbXk9ITEsU3RhdGUudmFyaWFibGVzLmtpc3Npbmc9ITEsU3RhdGUudmFyaWFibGVzLmdhbmdiYW5nPSExLFN0YXRlLnZhcmlhYmxlcy5oYWlsZXlfZHJlc3M9MSxTdGF0ZS52YXJpYWJsZXMuamVubmE9MCxTdGF0ZS52YXJpYWJsZXMuamVubmFfbWFpbj0hMCxTdGF0ZS52YXJpYWJsZXMuZXAxPSExLFN0YXRlLnZhcmlhYmxlcy5lcDI9ITEsU3RhdGUudmFyaWFibGVzLkplbm5hQWNoaXZlbWVudD0hMSxTdGF0ZS52YXJpYWJsZXMuaGFpbGV5X3JlbD0wLFN0YXRlLnZhcmlhYmxlcy5oYWlsZXlfdGFsa18wMT0hMCxTdGF0ZS52YXJpYWJsZXMuaGFpbGV5X3ViPSExLFN0YXRlLnZhcmlhYmxlcy5oYWlsZXlfdWJfbmV4dD0hMCxTdGF0ZS52YXJpYWJsZXMucGhpbGxpcHNfcmVsPTAsU3RhdGUudmFyaWFibGVzLmVwMz0hMSxTdGF0ZS52YXJpYWJsZXMuYWZxbG9wPSIiLFN0YXRlLnZhcmlhYmxlcy5wbWRscD0hMSxTdGF0ZS52YXJpYWJsZXMuVG9hc3RBbm5pZTI9ITEsU3RhdGUudmFyaWFibGVzLmhvcm9zY29wZT1bIlRvZGF5IGlzIHBlcmZlY3QgZm9yIGxldHRpbmcgb3RoZXJzIHRha2UgdGhlIHNwb3RsaWdodC4gWW91ciBqb3kgY29tZXMgZnJvbSBzZWVpbmcgdGhlbSBzaGluZSBicmlnaHRlciwgZXNwZWNpYWxseSB3aGVuIGl0J3MgeW91ciBjYW5kbGUgdGhleSdyZSBob2xkaW5nLiIsIlNoYXJpbmcgaXMgY2FyaW5nLCBhbmQgdG9kYXksIHlvdSdyZSB0aGUgdWx0aW1hdGUgZ2l2ZXIuIFNpdCBiYWNrIGFuZCBlbmpveSB0aGUgdW5pcXVlIHBsZWFzdXJlIG9mIGdlbmVyb3NpdHkgaW4gYWxsIGl0cyBmb3Jtcy4iLCJZb3VyIGR1YWwgbmF0dXJlIHRocml2ZXMgd2hlbiBzb21lb25lIGVsc2UgdGFrZXMgY29udHJvbC4gTGV0IG90aGVycyBzdGVlciB0aGUgc2hpcCB3aGlsZSB5b3UgYWRtaXJlIHRoZSB2aWV3IGZyb20gYSBkaXN0YW5jZS4iLCJZb3VyIG51cnR1cmluZyBzaWRlIHdpbGwgcmVhY2ggaXRzIHBlYWsgdG9kYXkuIEdpdmluZyBzb21lb25lIGVsc2UgdGhlIGtleXMgdG8geW91ciB0cmVhc3VyZSBjaGVzdCBmZWVscyBzdHJhbmdlbHkgc2F0aXNmeWluZy4iLCJZb3UgbG92ZSBhdHRlbnRpb24sIGJ1dCB0b2RheSwgeW91J2xsIGZpbmQgam95IGluIHN0ZXBwaW5nIGFzaWRlIGFuZCB3YXRjaGluZyBzb21lb25lIGVsc2UgYmFzayBpbiB5b3VyIGdsb3cuIFRoZWlyIGhhcHBpbmVzcyBpcyB5b3VyIGNyb3duLiIsIkRldGFpbHMgbWF0dGVyLCBlc3BlY2lhbGx5IHdoZW4gdGhleSBpbnZvbHZlIG90aGVycyBlbmpveWluZyB3aGF0IHlvdSB2YWx1ZSBtb3N0LiBMZWFuIGludG8gdGhhdCB1cmdlIHRvIG9yY2hlc3RyYXRlIHRoZWlyIGRlbGlnaHQgcGVyZmVjdGx5LiIsIkJhbGFuY2UgaXMga2V5LCBidXQgdG9kYXksIGl0IHRpcHMgdG93YXJkcyBsZXR0aW5nIG90aGVycyBpbmR1bGdlIHdoaWxlIHlvdSBjaGVlciB0aGVtIG9uLiBIYXJtb255IGlzIHN3ZWV0ZXIgd2hlbiBzaGFyZWQuIiwiVGhlIGludGVuc2l0eSB5b3UgY3JhdmUgY29tZXMgZnJvbSB3YXRjaGluZyBvdGhlcnMgc2F2b3Igd2hhdCB5b3Ugb2ZmZXIuIExldHRpbmcgZ28gZmVlbHMgcmlza3kgYnV0IG9oLXNvLXRocmlsbGluZy4iLCJBZHZlbnR1cmUgYXdhaXRzLCBub3QgZm9yIHlvdSwgYnV0IGZvciB0aG9zZSB5b3UgaW52aXRlIGludG8geW91ciB3b3JsZC4gU2hhcmUgdGhlIGV4Y2l0ZW1lbnQgYW5kIHJldmVsIGluIHRoZWlyIGpvdXJuZXkuIiwiQW1iaXRpb24gdGFrZXMgYSBiYWNrc2VhdCB0b2RheSBhcyB5b3UgbGV0IHNvbWVvbmUgZWxzZSBjbGltYiB5b3VyIGxhZGRlci4gVGhlaXIgc3VjY2VzcyBmZWVscyBsaWtlIHlvdXIgZ3JlYXRlc3QgYWNjb21wbGlzaG1lbnQuIiwiWW91ciBpbm5vdmF0aXZlIHNwaXJpdCBzaGluZXMgd2hlbiB5b3UgY3JlYXRlIG9wcG9ydHVuaXRpZXMgZm9yIG90aGVycyB0byBlbmpveSB3aGF0IHlvdSBjaGVyaXNoLiBGdWxmaWxsbWVudCBjb21lcyB0aHJvdWdoIHNoYXJlZCBleHBlcmllbmNlcy4iLCJZb3VyIGRyZWFteSBuYXR1cmUgYWxpZ25zIHdpdGggYSBzZWxmbGVzcyBhY3Qgb2YgZ2VuZXJvc2l0eS4gR2l2aW5nIGZyZWVseSB0byBvdGhlcnMgbWFrZXMgeW91IGZlZWwgbGlrZSB0aGUgc3RhciBvZiB0aGVpciBzdG9yeS4iLCJZb3VyIGZpcmUgYnVybnMgYnJpZ2h0ZXIgd2hlbiBvdGhlcnMgZ2V0IHRvIGZlZWwgaXRzIHdhcm10aC4gTGV0IHNvbWVvbmUgZWxzZSB0b2FzdCB0aGVpciBtYXJzaG1hbGxvd3MgdG9kYXkuIiwiV2hhdOKAmXMgeW91cnMgaXMgdGhlaXJzLCBhdCBsZWFzdCBmb3IgdG9kYXkuIFdhdGNoaW5nIHRoZW0gZW5qb3kgeW91ciB0cmVhc3VyZXMgd2lsbCBmZWVsIG9kZGx5IGZ1bGZpbGxpbmcuIiwiVHdvIGhlYWRzIGFyZSBiZXR0ZXIgdGhhbiBvbmUsIGVzcGVjaWFsbHkgd2hlbiB0aGUgb3RoZXIgb25lIGdldHMgdG8gZW5qb3kgYWxsIHRoZSBmdW4uIERvdWJsZSB0aGUgcGxlYXN1cmUsIGRvdWJsZSB0aGUgcGVyc3BlY3RpdmUuIiwiWW91ciBlbW90aW9uYWwgZ2VuZXJvc2l0eSBpcyB1bnN0b3BwYWJsZS4gSGFuZCBvdmVyIHRoZSByZWlucyBhbmQgYmFzayBpbiB0aGUgY296eSBnbG93IG9mIHRoZWlyIGhhcHBpbmVzcy4iLCJOb3JtYWxseSwgeW914oCZZCBkZW1hbmQgdGhlIHNwb3RsaWdodCwgYnV0IHRvZGF5LCB0aGVyZeKAmXMgYSB1bmlxdWUgam95IGluIHdhdGNoaW5nIHNvbWVvbmUgZWxzZSBzdGVhbCB5b3VyIHRodW5kZXIuIEl04oCZcyBmbGF0dGVyaW5nLCByZWFsbHkuIiwiTGV0IGdvIG9mIHBlcmZlY3Rpb24gYW5kIGVtYnJhY2UgdGhlIGJlYXV0eSBvZiBzb21lb25lIGVsc2UgZW5qb3lpbmcgd2hhdCB5b3Ugd29ya2VkIHNvIGhhcmQgdG8gcGVyZmVjdC4gU2F0aXNmYWN0aW9uIGd1YXJhbnRlZWQhIiwiU2hhcmluZyBpc27igJl0IGp1c3QgY2FyaW5nLCB0aGF04oCZcyB5b3VyIHZpYmUgdG9kYXkuIFdhdGNoaW5nIHRoZSBzY2FsZXMgdGlwIGluIHRoZWlyIGZhdm9yIHdpbGwgZmVlbCBzdXJwcmlzaW5nbHkgYmFsYW5jZWQuIiwiTXlzdGVyeSBzdWl0cyB5b3UsIGJ1dCBzbyBkb2VzIGhhbmRpbmcgb3ZlciB0aGUga2V5IHRvIHNvbWVvbmUgZWxzZS4gVGhlIHRocmlsbCBvZiB0aGVpciBkaXNjb3Zlcnkgd2lsbCBiZSB3b3J0aCBpdC4iLCJZb3VyIGFkdmVudHVyb3VzIHNwaXJpdCBsb3ZlcyB0byBleHBsb3JlLCBidXQgdG9kYXksIGxldCBvdGhlcnMgZW5qb3kgdGhlIHJpZGUgd2hpbGUgeW91IHBsYXkgdGhlIHdpc2UgdG91ciBndWlkZS4iLCJIYXJkIHdvcmsgcGF5cyBvZmYsIGVzcGVjaWFsbHkgd2hlbiBzb21lb25lIGVsc2UgcmVhcHMgdGhlIGJlbmVmaXRzLiBUaGVpciBzdWNjZXNzIGlzIHlvdXIgc2lsZW50IHRyaXVtcGguIiwiWW91ciBxdWlya3kgaWRlYXMgc2hpbmUgYnJpZ2h0ZXIgd2hlbiBzaGFyZWQuIExldCBvdGhlcnMgYm9ycm93IHlvdXIgYnJpbGxpYW5jZSBhbmQgd2F0Y2ggdGhlIG1hZ2ljIHVuZm9sZC4iLCJZb3VyIHNlbnNpdGl2aXR5IGlzIHlvdXIgc3VwZXJwb3dlci4gVG9kYXksIGxldHRpbmcgb3RoZXJzIGVuam95IHRoZSBkcmVhbSB5b3XigJl2ZSBidWlsdCBpcyB0aGUgc3dlZXRlc3Qga2luZCBvZiBlc2NhcGlzbS4iXSxTdGF0ZS52YXJpYWJsZXMuY2FwMkFubmllPVt7dHlwZToxLHNlbmRlcjoiWW91IixtZXNzYWdlOiJEb27igJl0IHdvcnJ5IGFib3V0IGl0In0se3R5cGU6MSxzZW5kZXI6IllvdSIsbWVzc2FnZToiSeKAmW0gZ29pbmcgdG8gZ2V0IGl0IGRvbmUgYnkgRnJpZGF5LCBubyBtYXR0ZXIgd2hhdCJ9LHt0eXBlOjEsc2VuZGVyOiJBbm5pZSIsbWVzc2FnZToiSeKAmW0gZ2xhZCB0byBoZWFyIHRoYXQifSx7dHlwZToxLHNlbmRlcjoiQW5uaWUiLG1lc3NhZ2U6IllvdSBrbm93IEkgYmVsaWV2ZSBpbiB5b3UifSx7dHlwZTo0LHNlbmRlcjoiQW5uaWUiLG1lc3NhZ2U6ImFzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwIn0se3R5cGU6MSxzZW5kZXI6IllvdSIsbWVzc2FnZToiSSBsb3ZlIHlvdSJ9LHt0eXBlOjEsc2VuZGVyOiJBbm5pZSIsbWVzc2FnZToiSSBsb3ZlIHlvdSBtb3JlIn1dLFN0YXRlLnZhcmlhYmxlcy5jYXAyUGhpbGxpcHM9W3t0eXBlOjEsc2VuZGVyOiJZb3UiLG1lc3NhZ2U6IlVuZGVyc3Rvb2QsIHNpci4gSeKAmWxsIGhhdmUgYWxsIHRoZSByZXBvcnRzIHJlYWR5IGJ5IEZyaWRheSJ9LHt0eXBlOjEsc2VuZGVyOiJQaGlsbGlwcyIsbWVzc2FnZToiVGhhdOKAmXMgbW9yZSBsaWtlIGl0LiJ9LHt0eXBlOjEsc2VuZGVyOiJQaGlsbGlwcyIsbWVzc2FnZToiSGFpbGV5IHdpbGwgYnJpZWYgeW91IG9uIHdoYXQgd2UgbmVlZC4ifSx7dHlwZToxLHNlbmRlcjoiUGhpbGxpcHMiLG1lc3NhZ2U6IknigJlsbCB0ZWxsIGhlciB0byBlbWFpbCB5b3UgYXMgc29vbiBhcyBzaGUgZ2V0cyB0byB0aGUgb2ZmaWNlLiJ9LHt0eXBlOjEsc2VuZGVyOiJZb3UiLG1lc3NhZ2U6IlVuZGVyc3Rvb2QifV0sU3RhdGUudmFyaWFibGVzLmNhcDJIYWlsZXk9W3t0eXBlOjEsc2VuZGVyOiJZb3UiLG1lc3NhZ2U6IlRoYW5rIHlvdSBzbyBtdWNoLCBIYWlsZXkifSx7dHlwZToxLHNlbmRlcjoiWW91IixtZXNzYWdlOiJJIGRvbuKAmXQga25vdyB3aGF0IEnigJlkIGRvIHdpdGhvdXQgeW91In0se3R5cGU6MixzZW5kZXI6IkhhaWxleSIsbWVzc2FnZToiYXNzZXRzL2ltZy9lcDEvaGFpbGV5X3Bob3RvXzEud2VicCJ9LHt0eXBlOjEsc2VuZGVyOiJIYWlsZXkiLG1lc3NhZ2U6IllvdSBnb3QgdGhpcyAkbmFtZSEifV0sU3RhdGUudmFyaWFibGVzLmNhcDJOYW9taT1be3R5cGU6MSxzZW5kZXI6Ik5hb21pIixtZXNzYWdlOiJPaCwgSSBkaXNhZ3JlZSJ9LHt0eXBlOjEsc2VuZGVyOiJOYW9taSIsbWVzc2FnZToiQW55dGhpbmcgaW52b2x2aW5nIG15IGJlc3QgZnJpZW5kIGhhcyBldmVyeXRoaW5nIHRvIGRvIHdpdGggbWUifSx7dHlwZToxLHNlbmRlcjoiTmFvbWkiLG1lc3NhZ2U6IknigJl2ZSBrbm93biBoZXIgZmFyIGxvbmdlciB0aGFuIHlvdSBoYXZlIn0se3R5cGU6MSxzZW5kZXI6Ik5hb21pIixtZXNzYWdlOiJCdXQgaGV5LCB5b3XigJlsbCB0aGFuayBtZSBldmVudHVhbGx5In0se3R5cGU6MSxzZW5kZXI6Ik5hb21pIixtZXNzYWdlOiJUaGFua3MgdG8gbWUsIHlvdXIgZGFya2VzdCBmYW50YXNpZXMgd2lsbCBjb21lIHRydWUifSx7dHlwZToxLHNlbmRlcjoiWW91IixtZXNzYWdlOiJJ4oCZbSBkb25lIHRhbGtpbmcgdG8geW91In0se3R5cGU6NCxzZW5kZXI6Ik5hb21pIixtZXNzYWdlOiJhc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV93aW5rLndlYnAifV0sU3RhdGUudmFyaWFibGVzLmNhcDJWYW5lc3NhPVt7dHlwZToxLHNlbmRlcjoiWW91IixtZXNzYWdlOiJUaGFua3MsIHlvdeKAmXZlIGFsd2F5cyBiZWVuIGEgZ29vZCBmcmllbmQifSx7dHlwZToxLHNlbmRlcjoiWW91IixtZXNzYWdlOiJXZSBqdXN0IHdhbnQgdG8gdHJ5IHNvbWV0aGluZyBuZXcsIHRoYXTigJlzIGFsbCJ9LHt0eXBlOjEsc2VuZGVyOiJWYW5lc3NhIixtZXNzYWdlOiJJIHRvdGFsbHkgZ2V0IGl0In0se3R5cGU6MSxzZW5kZXI6IlZhbmVzc2EiLG1lc3NhZ2U6Ikxpa2UgSSBzYWlkLCBqdXN0IHRleHQgbWUgaWYgeW91IG5lZWQgYW55dGhpbmcifSx7dHlwZToxLHNlbmRlcjoiWW91IixtZXNzYWdlOiJJIHdpbGwifSx7dHlwZToxLHNlbmRlcjoiWW91IixtZXNzYWdlOiJUYWtlIGNhcmUsIFZhbmVzc2EifSx7dHlwZToxLHNlbmRlcjoiVmFuZXNzYSIsbWVzc2FnZToiWW91IHRvbywgJG5hbWUifSx7dHlwZTo0LHNlbmRlcjoiTmFvbWkiLG1lc3NhZ2U6ImFzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX3NtaWxlLndlYnAifV0sU3RhdGUudmFyaWFibGVzLmNhcDNBbm5pZT1be3R5cGU6MSxzZW5kZXI6IkFubmllIixtZXNzYWdlOiJEb27igJl0IHN0YXkgdXAgdG9vIGxhdGUifSx7dHlwZToxLHNlbmRlcjoiQW5uaWUiLG1lc3NhZ2U6Ik1ha2Ugc3VyZSB0byBnZXQgZW5vdWdoIHNsZWVwIn0se3R5cGU6MSxzZW5kZXI6IllvdSIsbWVzc2FnZToiSSB3aWxsIn0se3R5cGU6MSxzZW5kZXI6IllvdSIsbWVzc2FnZToiR29vZCBuaWdodCwgYmFiZSJ9LHt0eXBlOjEsc2VuZGVyOiJBbm5pZSIsbWVzc2FnZToiR29vZCBuaWdodCwgaG9uZXkifV0sU3RhdGUudmFyaWFibGVzLmNhcDNIYWlsZXk9W3t0eXBlOjEsc2VuZGVyOiJZb3UiLG1lc3NhZ2U6IlByb2JhYmx5IHB1bGxpbmcgYW4gYWxsLW5pZ2h0ZXIifSx7dHlwZToxLHNlbmRlcjoiWW91IixtZXNzYWdlOiJJdCB3aWxsIGJlIGEgZ29vZCBkaXN0cmFjdGlvbiBmb3IgbWUifSx7dHlwZToxLHNlbmRlcjoiSGFpbGV5IixtZXNzYWdlOiJBbHJpZ2h0IHRoZW4ifSx7dHlwZToxLHNlbmRlcjoiSGFpbGV5IixtZXNzYWdlOiJJ4oCZbGwgdGV4dCB5b3Ugd2hlbiBJIGdldCB0aGVyZSJ9XSxTdGF0ZS52YXJpYWJsZXMucGhvdG9zPVsiYXNzZXRzL2ltZy9iZzEud2VicCJdLFN0YXRlLnZhcmlhYmxlcy5Bbm5pZV9ub3RpZmljYXRpb25fMT0hMSxTdGF0ZS52YXJpYWJsZXMuc291bmQ9ITAsU3RhdGUudmFyaWFibGVzLm5hbWU9Ikpvc2giLFN0YXRlLnZhcmlhYmxlcy5ob3VyPSIwNzo0MyIsU3RhdGUudmFyaWFibGVzLmJ1dHRvbkFjdGl2ZT0hMSxTdGF0ZS52YXJpYWJsZXMuaW1nPSIiLFN0YXRlLnZhcmlhYmxlcy53YWxscGFwZXI9ImFzc2V0cy9pbWcvYmcxLndlYnAiLFN0YXRlLnZhcmlhYmxlcy5zdXBwb3J0SWQ9ImFkd2xvMCIsU3RhdGUudmFyaWFibGVzLnRlc3R2YXI9ITEsU3RhdGUudmFyaWFibGVzLmRldl92aXNpYmxlPSExLFN0YXRlLnZhcmlhYmxlcy5kZXZfbGFzdD0iSGV5ISIsU3RhdGUudmFyaWFibGVzLkFubmllX2NoYXRMb2c9W10sU3RhdGUudmFyaWFibGVzLkFubmllX2NoYXRTdGF0ZT0iQW5uaWVTdGFydDEiLFN0YXRlLnZhcmlhYmxlcy5Bbm5pZV9jaGF0PSEwLFN0YXRlLnZhcmlhYmxlcy5Bbm5pZV9sYXN0SWQ9IiNhc2QiLFN0YXRlLnZhcmlhYmxlcy5Bbm5pZV9wYXVzZWQ9ITEsU3RhdGUudmFyaWFibGVzLkFubmllX2xhc3Q9IkhleSBob25leSwgZ29vZCBtb3JuaW5nIixTdGF0ZS52YXJpYWJsZXMuQW5uaWVfbGFzdF9ob3VyPSI3OjQzIixTdGF0ZS52YXJpYWJsZXMuQW5uaWVfb3B0aW9ucz1bXSxTdGF0ZS52YXJpYWJsZXMuQW5uaWVfbm90ZXM9W10sU3RhdGUudmFyaWFibGVzLlBoaWxsaXBzX3Zpc2libGU9ITEsU3RhdGUudmFyaWFibGVzLlBoaWxsaXBzX2NoYXRMb2c9W10sU3RhdGUudmFyaWFibGVzLlBoaWxsaXBzX2NoYXRTdGF0ZT0iUGhpbGxpcHNTdGFydDEiLFN0YXRlLnZhcmlhYmxlcy5QaGlsbGlwc19jaGF0PSEwLFN0YXRlLnZhcmlhYmxlcy5QaGlsbGlwc19sYXN0SWQ9IiNhc2QiLFN0YXRlLnZhcmlhYmxlcy5QaGlsbGlwc19wYXVzZWQ9ITEsU3RhdGUudmFyaWFibGVzLlBoaWxsaXBzX2xhc3Q9IkknbSBnb2luZyB0byBuZWVkIHRoZSByZXZlbnVlIHJlcG9ydHMgYnkgRnJpZGF5LiBZb3UgaGF2ZSBmaXZlIGRheXMuIixTdGF0ZS52YXJpYWJsZXMuUGhpbGxpcHNfbGFzdF9ob3VyPSI4OjM3IixTdGF0ZS52YXJpYWJsZXMuUGhpbGxpcHNfb3B0aW9ucz1bXSxTdGF0ZS52YXJpYWJsZXMuUGhpbGxpcHNfbm90ZXM9W10sU3RhdGUudmFyaWFibGVzLkhhaWxleV92aXNpYmxlPSExLFN0YXRlLnZhcmlhYmxlcy5IYWlsZXlfY2hhdExvZz1bXSxTdGF0ZS52YXJpYWJsZXMuSGFpbGV5X2NoYXRTdGF0ZT0iSGFpbGV5U3RhcnQxIixTdGF0ZS52YXJpYWJsZXMuSGFpbGV5X2NoYXQ9ITAsU3RhdGUudmFyaWFibGVzLkhhaWxleV9sYXN0SWQ9IiNhc2QiLFN0YXRlLnZhcmlhYmxlcy5IYWlsZXlfcGF1c2VkPSExLFN0YXRlLnZhcmlhYmxlcy5IYWlsZXlfbGFzdD0iSGV5LCBob3cgYXJlIHlvdT8iLFN0YXRlLnZhcmlhYmxlcy5IYWlsZXlfbGFzdF9ob3VyPSI5OjAwIixTdGF0ZS52YXJpYWJsZXMuSGFpbGV5X29wdGlvbnM9W10sU3RhdGUudmFyaWFibGVzLkhhaWxleV9ub3Rlcz1bXSxTdGF0ZS52YXJpYWJsZXMuSmVubmFfdmlzaWJsZT0hMSxTdGF0ZS52YXJpYWJsZXMuSmVubmFfY2hhdExvZz1bXSxTdGF0ZS52YXJpYWJsZXMuSmVubmFfY2hhdFN0YXRlPSJKZW5uYTFfMSIsU3RhdGUudmFyaWFibGVzLkplbm5hX2NoYXQ9ITAsU3RhdGUudmFyaWFibGVzLkplbm5hX2xhc3RJZD0iI2FzZCIsU3RhdGUudmFyaWFibGVzLkplbm5hX3BhdXNlZD0hMSxTdGF0ZS52YXJpYWJsZXMuSmVubmFfbGFzdD0iSGkgJG5hbWUsIGlzIHRoaXMgeW91ciBudW1iZXI/IixTdGF0ZS52YXJpYWJsZXMuSmVubmFfbGFzdF9ob3VyPSI5OjAwIixTdGF0ZS52YXJpYWJsZXMuSmVubmFfb3B0aW9ucz1bXSxTdGF0ZS52YXJpYWJsZXMuSmVubmFfbm90ZXM9W10sU3RhdGUudmFyaWFibGVzLk5hb21pX3Zpc2libGU9ITEsU3RhdGUudmFyaWFibGVzLk5hb21pX2NoYXRMb2c9W10sU3RhdGUudmFyaWFibGVzLk5hb21pX2NoYXRTdGF0ZT0iTmFvbWlTdGFydDEiLFN0YXRlLnZhcmlhYmxlcy5OYW9taV9jaGF0PSEwLFN0YXRlLnZhcmlhYmxlcy5OYW9taV9sYXN0SWQ9IiNhc2QiLFN0YXRlLnZhcmlhYmxlcy5OYW9taV9wYXVzZWQ9ITEsU3RhdGUudmFyaWFibGVzLk5hb21pX2xhc3Q9IkhvbmVzdGx5LCBJIGhhdmUgdG8gY29uZ3JhdHVsYXRlIHlvdSIsU3RhdGUudmFyaWFibGVzLk5hb21pX2xhc3RfaG91cj0iMTA6MDAiLFN0YXRlLnZhcmlhYmxlcy5OYW9taV9vcHRpb25zPVtdLFN0YXRlLnZhcmlhYmxlcy5OYW9taV9ub3Rlcz1bXSxTdGF0ZS52YXJpYWJsZXMuVmFuZXNzYV92aXNpYmxlPSExLFN0YXRlLnZhcmlhYmxlcy5WYW5lc3NhX2NoYXRMb2c9W10sU3RhdGUudmFyaWFibGVzLlZhbmVzc2FfY2hhdFN0YXRlPSJWYW5lc3NhSW50cm8xIixTdGF0ZS52YXJpYWJsZXMuVmFuZXNzYV9jaGF0PSEwLFN0YXRlLnZhcmlhYmxlcy5WYW5lc3NhX2xhc3RJZD0iI2FzZCIsU3RhdGUudmFyaWFibGVzLlZhbmVzc2FfcGF1c2VkPSExLFN0YXRlLnZhcmlhYmxlcy5WYW5lc3NhX2xhc3Q9IkhleSAkbmFtZSwgaG934oCZcyBldmVyeXRoaW5nPyIsU3RhdGUudmFyaWFibGVzLlZhbmVzc2FfbGFzdF9ob3VyPSIxMTo1OCIsU3RhdGUudmFyaWFibGVzLlZhbmVzc2Ffb3B0aW9ucz1bXSxTdGF0ZS52YXJpYWJsZXMuVmFuZXNzYV9ub3Rlcz1bXSxzZXR1cC5zaWduYWxfZGlhbmFfdmlzaWJsZT1mdW5jdGlvbigpe1N0YXRlLnZhcmlhYmxlcy5EaWFuYV92aXNpYmxlPSEwfSxzZXR1cC5pZD1mdW5jdGlvbigpe3JldHVybiJtZXNzYWdlLTEiLmNvbmNhdChNYXRoLmZsb29yKDQyOTQ5NjcyOTYqTWF0aC5yYW5kb20oKSkudG9TdHJpbmcoMTYpKX0sc2V0dXAudG9nZ2xlRnVsbFNjcmVlbj1mdW5jdGlvbigpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpkb2N1bWVudC5ib2R5O2RvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50P2RvY3VtZW50LmV4aXRGdWxsc2NyZWVuP2RvY3VtZW50LmV4aXRGdWxsc2NyZWVuKCkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiBjb25zb2xlLmVycm9yKCJFcnJvciBhbCBzYWxpciBkZSBwYW50YWxsYSBjb21wbGV0YTogIi5jb25jYXQoZS5tZXNzYWdlKSl9KSk6ZG9jdW1lbnQud2Via2l0RXhpdEZ1bGxzY3JlZW4/ZG9jdW1lbnQud2Via2l0RXhpdEZ1bGxzY3JlZW4oKTpkb2N1bWVudC5tc0V4aXRGdWxsc2NyZWVuJiZkb2N1bWVudC5tc0V4aXRGdWxsc2NyZWVuKCk6ZS5yZXF1ZXN0RnVsbHNjcmVlbj9lLnJlcXVlc3RGdWxsc2NyZWVuKCkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiBjb25zb2xlLmVycm9yKCJFcnJvciBlbiBwYW50YWxsYSBjb21wbGV0YTogIi5jb25jYXQoZS5tZXNzYWdlKSl9KSk6ZS53ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbj9lLndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuKCkuY2F0Y2goKGZ1bmN0aW9uKGUpe3JldHVybiBjb25zb2xlLmVycm9yKCJFcnJvciBlbiBwYW50YWxsYSBjb21wbGV0YTogIi5jb25jYXQoZS5tZXNzYWdlKSl9KSk6ZS5tc1JlcXVlc3RGdWxsc2NyZWVuJiZlLm1zUmVxdWVzdEZ1bGxzY3JlZW4oKX0sc2V0dXAudG9hc3Q9ZnVuY3Rpb24oZSxhLHQpe3RoaXMuaGlkZVRpbWVvdXQ9bnVsbCx0aGlzLmhpZGVUaW1lb3V0PXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7MT09U3RhdGUudmFyaWFibGVzLnNvdW5kJiZTaW1wbGVBdWRpby5zZWxlY3QoInRvYXN0Iikudm9sdW1lKC43NSkucGxheSgpO3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3MuaWQ9InRvYXN0LWZ1bGwiO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2kuY2xhc3NOYW1lPSJ0b2FzdC1jb250YWluZXIiO3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO24uY2xhc3NOYW1lPSJ0b2FzdC1hdmF0YXIiO3ZhciBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpO28uc3JjPSJhc3NldHMvaW1nLyIuY29uY2F0KGUsIl9hdmF0YXIud2VicCIpLG4uYXBwZW5kQ2hpbGQobyksaS5hcHBlbmRDaGlsZChuKTt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyLmNsYXNzTmFtZT0idG9hc3QtdGV4dCI7dmFyIGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bC50ZXh0Q29udGVudD1hLHIuYXBwZW5kQ2hpbGQobCk7dmFyIGg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aC50ZXh0Q29udGVudD10LHIuYXBwZW5kQ2hpbGQoaCksaS5hcHBlbmRDaGlsZChyKSxzLmFwcGVuZENoaWxkKGkpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocyksc2V0dXAuY2xlYXJTY3JlZW4ocy5pZCl9KSwzMDApfSxzZXR1cC5jbGVhclNjcmVlbj1mdW5jdGlvbihlKXt0aGlzLmhpZGVUaW1lb3V0PW51bGwsdGhpcy5oaWRlVGltZW91dD1zZXRUaW1lb3V0KChmdW5jdGlvbigpe3RyeXtkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlKS5yZW1vdmUoKX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUpfX0pLDJlMyl9LCQoZG9jdW1lbnQpLm9uKCJjbGljayIsIiNza2lwVG9nZ2xlQnV0dG9uIiwoZnVuY3Rpb24oKXtTdGF0ZS52YXJpYWJsZXMuYnV0dG9uQWN0aXZlPSFTdGF0ZS52YXJpYWJsZXMuYnV0dG9uQWN0aXZlLGNvbnNvbGUubG9nKFN0YXRlLnZhcmlhYmxlcy5idXR0b25BY3RpdmUpfSkpLHNldHVwLnNjcm9sbEluc3RhPWZ1bmN0aW9uKCl7JCgiaHRtbCwgYm9keSIpLnNjcm9sbFRvcCgkKCIjZW5kIikub2Zmc2V0KCkudG9wKSwkKCIjbWVzc2FnZV9jb250YWluZXIiKS5zdG9wKCEwKS5hbmltYXRlKHtvcGFjaXR5OjF9LDUwMCl9LHNldHVwLnNjcm9sbD1mdW5jdGlvbigpeyQoImh0bWwsIGJvZHkiKS5zdG9wKCEwLCExKS5hbmltYXRlKHtzY3JvbGxUb3A6JChkb2N1bWVudCkuaGVpZ2h0KCl9LDFlMyl9LHNldHVwLnNldEJnPWZ1bmN0aW9uKGUpe3ZhciBhPSJ1cmwoIitlKyIpIjtkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCI6cm9vdCIpLnN0eWxlLnNldFByb3BlcnR5KCItLWJnIixhKX0sc2V0dXAucGF0cm9uPWZ1bmN0aW9uKGUpe3ZhbGlkYXRlS2V5KGUpPyhTdGF0ZS50ZW1wb3JhcnkucGF0cmVvbkNoZWNrPSEwLFN0YXRlLnZhcmlhYmxlcy5wbWRscD0hMCk6KFN0YXRlLnRlbXBvcmFyeS5wYXRyZW9uQ2hlY2s9ITEsU3RhdGUudmFyaWFibGVzLnBtZGxwPSExKX0sU2F2ZS5vbkxvYWQuYWRkKChmdW5jdGlvbihlKXtDb25maWcuc2F2ZXMudmVyc2lvbj0yLGUudmVyc2lvbjwyJiYoU3RhdGUudmFyaWFibGVzLmhhaWxleV9yZWw9MCxTdGF0ZS52YXJpYWJsZXMuaGFpbGV5X3RhbGtfMDE9ITAsU3RhdGUudmFyaWFibGVzLmhhaWxleV91Yj0hMCxTdGF0ZS52YXJpYWJsZXMuaGFpbGV5X3ViX25leHQ9ITAsU3RhdGUudmFyaWFibGVzLnBoaWxsaXBzX3JlbD0wLFN0YXRlLnZhcmlhYmxlcy5lcDM9ITEscmVzZXRQYXRyb24oKSxTdGF0ZS52YXJpYWJsZXMuY2FwM0FubmllPVt7dHlwZToxLHNlbmRlcjoiQW5uaWUiLG1lc3NhZ2U6IkRvbuKAmXQgc3RheSB1cCB0b28gbGF0ZSJ9LHt0eXBlOjEsc2VuZGVyOiJBbm5pZSIsbWVzc2FnZToiTWFrZSBzdXJlIHRvIGdldCBlbm91Z2ggc2xlZXAifSx7dHlwZToxLHNlbmRlcjoiWW91IixtZXNzYWdlOiJJIHdpbGwifSx7dHlwZToxLHNlbmRlcjoiWW91IixtZXNzYWdlOiJHb29kIG5pZ2h0LCBiYWJlIn0se3R5cGU6MSxzZW5kZXI6IkFubmllIixtZXNzYWdlOiJHb29kIG5pZ2h0LCBob25leSJ9XSxTdGF0ZS52YXJpYWJsZXMuY2FwM0hhaWxleT1be3R5cGU6MSxzZW5kZXI6IllvdSIsbWVzc2FnZToiUHJvYmFibHkgcHVsbGluZyBhbiBhbGwtbmlnaHRlciJ9LHt0eXBlOjEsc2VuZGVyOiJZb3UiLG1lc3NhZ2U6Ikl0IHdpbGwgYmUgYSBnb29kIGRpc3RyYWN0aW9uIGZvciBtZSJ9LHt0eXBlOjEsc2VuZGVyOiJIYWlsZXkiLG1lc3NhZ2U6IkFscmlnaHQgdGhlbiJ9LHt0eXBlOjEsc2VuZGVyOiJIYWlsZXkiLG1lc3NhZ2U6IknigJlsbCB0ZXh0IHlvdSB3aGVuIEkgZ2V0IHRoZXJlIn1dKX0pKTs8L3NjcmlwdD48dHctcGFzc2FnZWRhdGEgcGlkPSIxIiBuYW1lPSJtZXNzYWdlIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OyZsdDsmbHQ7d2lkZ2V0ICZxdW90O21lc3NhZ2UmcXVvdDsmZ3Q7Jmd0OwombHQ7IS0tcmVnaW9uIG1lc3NhZ2UgLS0mZ3Q7CiZsdDsmbHQ7aWYgJGFyZ3NbMV0gIT0gJnF1b3Q7WW91JnF1b3Q7Jmd0OyZndDsKICAgICZsdDtkaXYgQGlkPSZxdW90OyRhcmdzWzNdJnF1b3Q7IGNsYXNzPSZxdW90O2ZsZXgmcXVvdDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDttZW5zYWplX2NhcHN1bGUgcGFkZGluZy1tZXNzYWdlJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3R5cGluZyZxdW90OyZndDsKICAgICAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7ZG90JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogICAgICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtkb3QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2RvdCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKICAgICZsdDsvZGl2Jmd0OwogICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAmbHQ7ZGl2IEBpZD0mcXVvdDskYXJnc1szXSZxdW90OyBjbGFzcz0mcXVvdDtwbGF5ZXJfbWVzc2FnZSZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDttZW5zYWplX2NhcHN1bGUgcGFkZGluZy1tZXNzYWdlIGl6cXVpZXJkYSZxdW90OyZndDsKICAgICAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7dHlwaW5nJnF1b3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7ZG90JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7ZG90JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7ZG90JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogICAgICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsvZGl2Jmd0OyAgICAgIAombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7dGltZWQgJGFyZ3NbMF0mZ3Q7Jmd0OwombHQ7Jmx0O3NldCBfeiA9ICZxdW90OyMmcXVvdDsrJGFyZ3NbM10mZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgX3ogdDhuJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJGFyZ3NbMV0gIT0gJnF1b3Q7WW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O21lbnNhamVfY2Fwc3VsZSBwYWRkaW5nLW1lc3NhZ2UgZGVyZWNoYSZxdW90OyZndDsKICAgICAgICAgICAgJGFyZ3NbMl0KICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O21lbnNhamVfY2Fwc3VsZSBwYWRkaW5nLW1lc3NhZ2UgaXpxdWllcmRhJnF1b3Q7Jmd0OwogICAgICAgICAgICAgICAgJGFyZ3NbMl0KICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJGFyZ3NbMV0gIT0gJnF1b3Q7WW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2F1ZGlvICZxdW90O21lc3NhZ2UmcXVvdDsgcGxheSB2b2x1bWUgMC43NSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDthdWRpbyAmcXVvdDtteW1lc3NhZ2UmcXVvdDsgcGxheSB2b2x1bWUgMC43NSZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy93aWRnZXQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIiIG5hbWU9Im1lc3NhZ2VfZW1vamkiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSwxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7d2lkZ2V0ICZxdW90O21lc3NhZ2VfZW1vamkmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7bWVzc2FnZV9pbWcmcXVvdDsmZ3Q7CgombHQ7Jmx0O2lmICRhcmdzWzFdID09IHRydWUmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIFN0YXRlLnZhcmlhYmxlcy5zdXBwb3J0SWQgPSBzZXR1cC5pZCgpOwogICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2lmICRhcmdzWzJdICE9ICZxdW90O1lvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBAaWQ9JnF1b3Q7JHN1cHBvcnRJZCZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDttZW5zYWplX2NhcHN1bGUgcGFkZGluZy1tZXNzYWdlJnF1b3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7dHlwaW5nJnF1b3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7ZG90JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7ZG90JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7ZG90JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogICAgICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAuNXMmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRzdXBwb3J0SWQgPSAmcXVvdDsjJnF1b3Q7KyRzdXBwb3J0SWQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7cmVwbGFjZSAkc3VwcG9ydElkJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpZiAkYXJnc1syXSAhPSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0O2ltZyBAc3JjPSZxdW90OyRhcmdzWzBdJnF1b3Q7IGNsYXNzPSZxdW90O2Vtb2ppJnF1b3Q7LyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0O2ltZyBAc3JjPSZxdW90OyRhcmdzWzBdJnF1b3Q7IGNsYXNzPSZxdW90O2Vtb2ppIGVtb2ppX3VzZXImcXVvdDsvJmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7YXVkaW8gJnF1b3Q7bXltZXNzYWdlJnF1b3Q7IHBsYXkgdm9sdW1lIDAuNzUmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgICZsdDtpbWcgQHNyYz0mcXVvdDskYXJnc1swXSZxdW90OyBjbGFzcz0mcXVvdDtlbW9qaSBlbW9qaV91c2VyJnF1b3Q7LyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpZiAkYXJnc1syXSAhPSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7aW1nIEBzcmM9JnF1b3Q7JGFyZ3NbMF0mcXVvdDsgY2xhc3M9JnF1b3Q7ZW1vamkmcXVvdDsvJmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0O2ltZyBAc3JjPSZxdW90OyRhcmdzWzBdJnF1b3Q7IGNsYXNzPSZxdW90O2Vtb2ppIGVtb2ppX3VzZXImcXVvdDsvJmd0OwogICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7Jmx0OyZsdDsvd2lkZ2V0Jmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMiIG5hbWU9Im1lc3NhZ2VfaW1nIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O3dpZGdldCAmcXVvdDttZXNzYWdlX2ltZyZxdW90OyZndDsmZ3Q7Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDttZXNzYWdlX2ltZyZxdW90OyZndDsKICAgICZsdDsmbHQ7aWYgJGFyZ3NbMV0gPT0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBAaWQ9JnF1b3Q7JGFyZ3NbMl0mcXVvdDsmZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRhcmdzWzJdID0gJnF1b3Q7IyZxdW90OyskYXJnc1syXSZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7cmVwbGFjZSAkYXJnc1syXSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCBfdGh1bWJuYWlsID0gJGFyZ3NbMF0uc3BsaXQoJnF1b3Q7LiZxdW90OylbMF0gKyAmcXVvdDtfdGh1bWJuYWlsLndlYnAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0O2ltZyBAc3JjPSZxdW90O190aHVtYm5haWwmcXVvdDsvJmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgIHNldHVwLnNjcm9sbCgpOwogICAgICAgICAgICAgICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7YnV0dG9uICZxdW90OyZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJGltZyA9ICRhcmdzWzBdJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgICAgIERpYWxvZy5zZXR1cCgmcXVvdDsmcXVvdDspOwogICAgICAgICAgICAgICAgICAgICAgICBEaWFsb2cud2lraSgmIzM5OyZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtpbWdfYmlnJnF1b3Q7Jmd0OyZndDsmIzM5Oyk7CiAgICAgICAgICAgICAgICAgICAgICAgIERpYWxvZy5vcGVuKCk7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7L2J1dHRvbiZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7YXVkaW8gJnF1b3Q7bXltZXNzYWdlJnF1b3Q7IHBsYXkgdm9sdW1lIDAuNzUmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7c2V0IF90aHVtYm5haWwgPSAkYXJnc1swXS5zcGxpdCgmcXVvdDsuJnF1b3Q7KVswXSArICZxdW90O190aHVtYm5haWwud2VicCZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDtpbWcgQHNyYz0mcXVvdDtfdGh1bWJuYWlsJnF1b3Q7LyZndDsKICAgICAgICAgICAgJmx0OyZsdDtidXR0b24gJnF1b3Q7JnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRpbWcgPSAkYXJnc1swXSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgRGlhbG9nLnNldHVwKCZxdW90OyZxdW90Oyk7CiAgICAgICAgICAgICAgICAgICAgRGlhbG9nLndpa2koJiMzOTsmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7aW1nX2JpZyZxdW90OyZndDsmZ3Q7JiMzOTspOwogICAgICAgICAgICAgICAgICAgIERpYWxvZy5vcGVuKCk7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9idXR0b24mZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7Jmx0OyZsdDsvd2lkZ2V0Jmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQiIG5hbWU9ImltZ19iaWciIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7aW1nX2JpZyZxdW90OyZndDsKICAgICZsdDtpbWcgQHNyYz0mcXVvdDskaW1nJnF1b3Q7LyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7c2V0X3dhbGxwYXBlcl9jYXBzdWxlJnF1b3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7YnV0dG9uICZxdW90O1NldCBhcyB3YWxscGFwZXImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O3NldCAkd2FsbHBhcGVyID0gJGltZyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvYnV0dG9uJmd0OyZndDsKICAgICZsdDsvZGl2Jmd0OwombHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1IiBuYW1lPSJtZXNzYWdlX29sZCIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsmbHQ7Jmx0O3dpZGdldCAmcXVvdDttZXNzYWdlb2xkJnF1b3Q7Jmd0OyZndDsKJmx0OyEtLXJlZ2lvbiBtZXNzYWdlIG9sZCAtLSZndDsKJmx0OyZsdDtzZXQgX3NlbmRlciA9ICRhcmdzWzBdJmd0OyZndDsKJmx0O3NwYW4gY2xhc3M9JnF1b3Q7bWFjcm8tdGltZWQmcXVvdDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7ZmxleCZxdW90OyZndDsKJmx0OyZsdDtpZiBfc2VuZGVyICE9ICZxdW90O1lvdSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O21lbnNhamVfY2Fwc3VsZSBwYWRkaW5nLW1lc3NhZ2UgZGVyZWNoYSZxdW90OyZndDsKICAgICAgICAkYXJnc1sxXQogICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7cGxheWVyX21lc3NhZ2UmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7bWVuc2FqZV9jYXBzdWxlIHBhZGRpbmctbWVzc2FnZSBpenF1aWVyZGEmcXVvdDsmZ3Q7CiAgICAgICAgICAgICAgICAkYXJnc1sxXQogICAgICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7L2RpdiZndDsKJmx0Oy9zcGFuJmd0OwombHQ7Jmx0Oy93aWRnZXQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjYiIG5hbWU9Im1lc3NhZ2Vfb3V0c2lkZSIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsmbHQ7Jmx0O3dpZGdldCAmcXVvdDttZXNzYWdlbyZxdW90OyZndDsmZ3Q7CiZsdDshLS1yZWdpb24gbWVzc2FnZSBvdXRzaWRlIC0tJmd0OwombHQ7ZGl2IGlkPSZxdW90O21lc3NhZ2Vfb3V0c2lkZSZxdW90OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7YXZhdGFyJnF1b3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aWYgJGFyZ3NbMF0gPT0gJnF1b3Q7RW1pbHkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZW1pbHlfYXZhdGFyLndlYnAmcXVvdDsvJmd0OwogICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2lmICRhcmdzWzBdID09ICZxdW90O0FubmllJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL0FubmllX2F2YXRhci53ZWJwJnF1b3Q7LyZndDsKICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpZiAkYXJnc1swXSA9PSAmcXVvdDtQaGlsbGlwcyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9QaGlsbGlwc19hdmF0YXIud2VicCZxdW90Oy8mZ3Q7CiAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aWYgJGFyZ3NbMF0gPT0gJnF1b3Q7TmFvbWkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvTmFvbWlfYXZhdGFyLndlYnAmcXVvdDsvJmd0OwogICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2lmICRhcmdzWzBdID09ICZxdW90O1ZhbmVzc2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvVmFuZXNzYV9hdmF0YXIud2VicCZxdW90Oy8mZ3Q7CiAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aWYgJGFyZ3NbMF0gPT0gJnF1b3Q7SGFpbGV5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL0hhaWxleV9hdmF0YXIud2VicCZxdW90Oy8mZ3Q7CiAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aWYgJGFyZ3NbMF0gPT0gJnF1b3Q7SmVubmEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvSmVubmFfYXZhdGFyLndlYnAmcXVvdDsvJmd0OwogICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2lmICRhcmdzWzBdID09ICZxdW90O2RldiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9kZXZfYXZhdGFyLndlYnAmcXVvdDsvJmd0OwogICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsvZGl2Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDt0ZXh0byZxdW90OyZndDsKICAgICAgICAmbHQ7ZGl2Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O25vbWJyZSZxdW90OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7aWYgJGFyZ3NbMF0gPT0gJnF1b3Q7UGhpbGxpcHMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgIE1yLiBQaGlsbGlwcwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7ZWxzZWlmICRhcmdzWzBdID09ICZxdW90O2RldiZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgICAgIFRoZVBob25lR3V5IChkZXYpCiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAgICAgJGFyZ3NbMF0KICAgICAgICAgICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7bWVuc2FqZSZxdW90OyZndDskYXJnc1sxXSZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDtkaXYmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7aG9yYSZxdW90OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpZiAkYXJnc1swXSA9PSAmcXVvdDtFbWlseSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O2lmICRFbWlseV9jaGF0ID09IHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7aGFzX21lc3NhZ2UmcXVvdDsmZ3Q7ISZsdDsvZGl2Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwoKICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2lmICRhcmdzWzBdID09ICZxdW90O0FubmllJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7aWYgJEFubmllX2NoYXQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtoYXNfbWVzc2FnZSZxdW90OyZndDshJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpZiAkYXJnc1swXSA9PSAmcXVvdDtQaGlsbGlwcyZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O2lmICRQaGlsbGlwc19jaGF0ID09IHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7aGFzX21lc3NhZ2UmcXVvdDsmZ3Q7ISZsdDsvZGl2Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aWYgJGFyZ3NbMF0gPT0gJnF1b3Q7TmFvbWkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtpZiAkTmFvbWlfY2hhdCA9PSB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2hhc19tZXNzYWdlJnF1b3Q7Jmd0OyEmbHQ7L2RpdiZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwoKICAgICAgICAgICAgJmx0OyZsdDtpZiAkYXJnc1swXSA9PSAmcXVvdDtWYW5lc3NhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7aWYgJFZhbmVzc2FfY2hhdCA9PSB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2hhc19tZXNzYWdlJnF1b3Q7Jmd0OyEmbHQ7L2RpdiZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwoKICAgICAgICAgICAgJmx0OyZsdDtpZiAkYXJnc1swXSA9PSAmcXVvdDtIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtpZiAkSGFpbGV5X2NoYXQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtoYXNfbWVzc2FnZSZxdW90OyZndDshJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpZiAkYXJnc1swXSA9PSAmcXVvdDtEaWFuYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O2lmICREaWFuYV9jaGF0ID09IHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7aGFzX21lc3NhZ2UmcXVvdDsmZ3Q7ISZsdDsvZGl2Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aWYgJGFyZ3NbMF0gPT0gJnF1b3Q7SmVubmEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtpZiAkSmVubmFfY2hhdCA9PSB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2hhc19tZXNzYWdlJnF1b3Q7Jmd0OyEmbHQ7L2RpdiZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2lmICRhcmdzWzBdID09ICZxdW90O2RldiZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtoYXNfbWVzc2FnZSZxdW90OyZndDshJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKICAgICZsdDsmbHQ7bGluayAmcXVvdDsmcXVvdDsgJGFyZ3NbMF0rJnF1b3Q7X2NoYXQmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7L2RpdiZndDsKJmx0OyZsdDsvd2lkZ2V0Jmd0OyZndDsmbHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjciIG5hbWU9Im1lc3NhZ2VfdGFnIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OyZsdDsmbHQ7d2lkZ2V0ICZxdW90O21lc3NhZ2VfdGFnJnF1b3Q7Jmd0OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7bWVzc2FnZS10YWcmcXVvdDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDttZXNzYWdlLXRhZy1jYXBzdWxlJnF1b3Q7Jmd0OyZsdDsmbHQ7cHJpbnQgJGFyZ3NbMF0mZ3Q7Jmd0OyZsdDsvZGl2Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L3dpZGdldCZndDsmZ3Q7Jmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI4IiBuYW1lPSJtZXNzYWdlX3RvYXN0IiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OyZsdDsmbHQ7d2lkZ2V0ICZxdW90O21lc3NhZ2VfdG9hc3QmcXVvdDsmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O3RvYXN0LWZ1bGwmcXVvdDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7dG9hc3QtY29udGFpbmVyJnF1b3Q7Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O3RvYXN0LWF2YXRhciZxdW90OyZndDsKJmx0OyZsdDs9JiMzOTsmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nLyYjMzk7KyRhcmdzWzBdKyYjMzk7X2F2YXRhci5wbmcmcXVvdDsvJmd0OyYjMzk7Jmd0OyZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7dG9hc3QtdGV4dCZxdW90OyZndDsKJmx0O2RpdiZndDtob2xhJmx0Oy9kaXYmZ3Q7CiZsdDtkaXYmZ3Q7OTozMCZsdDsvZGl2Jmd0OwombHQ7L2RpdiZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy93aWRnZXQmZ3Q7Jmd0OyZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iOSIgbmFtZT0ibWVzc2FnZV92aWRlbyIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7d2lkZ2V0ICZxdW90O21lc3NhZ2VfdmlkZW8mcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7bWVzc2FnZV9pbWcmcXVvdDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRhcmdzWzJdID09IHRydWUmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgU3RhdGUudmFyaWFibGVzLnN1cHBvcnRJZCA9IHNldHVwLmlkKCk7CiAgICAgICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7ZGl2IEBpZD0mcXVvdDskc3VwcG9ydElkJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O21lbnNhamVfY2Fwc3VsZSBwYWRkaW5nLW1lc3NhZ2UmcXVvdDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDt0eXBpbmcmcXVvdDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtkb3QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtkb3QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtkb3QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDt0aW1lZCAxcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRzdXBwb3J0SWQgPSAmcXVvdDsjJnF1b3Q7KyRzdXBwb3J0SWQmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O3JlcGxhY2UgJHN1cHBvcnRJZCZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7aW1nIEBzcmM9JnF1b3Q7JGFyZ3NbMV0mcXVvdDsvJmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtidXR0b24gJnF1b3Q7JnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkaW1nID0gJGFyZ3NbMF0mZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAgICAgRGlhbG9nLnNldHVwKCZxdW90OyZxdW90Oyk7CiAgICAgICAgICAgICAgICAgICAgICAgIERpYWxvZy53aWtpKCYjMzk7Jmx0OyZsdDtpbmNsdWRlICZxdW90O3ZpZGVvX2JpZyZxdW90OyZndDsmZ3Q7JiMzOTspOwogICAgICAgICAgICAgICAgICAgICAgICBEaWFsb2cub3BlbigpOwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0Oy9idXR0b24mZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7YXVkaW8gJnF1b3Q7bXltZXNzYWdlJnF1b3Q7IHBsYXkgdm9sdW1lIDAuNzUmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgIHNldHVwLnNjcm9sbCgpOwogICAgICAgICAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7aW1nIEBzcmM9JnF1b3Q7JGFyZ3NbMV0mcXVvdDsvJmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2J1dHRvbiAmcXVvdDsmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJGltZyA9ICRhcmdzWzBdJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICBEaWFsb2cuc2V0dXAoJnF1b3Q7JnF1b3Q7KTsKICAgICAgICAgICAgICAgICAgICBEaWFsb2cud2lraSgmIzM5OyZsdDsmbHQ7aW5jbHVkZSAmcXVvdDt2aWRlb19iaWcmcXVvdDsmZ3Q7Jmd0OyYjMzk7KTsKICAgICAgICAgICAgICAgICAgICBEaWFsb2cub3BlbigpOwogICAgICAgICAgICAgICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvYnV0dG9uJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OyZsdDsmbHQ7L3dpZGdldCZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMCIgbmFtZT0idmlkZW9fYmlnIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDtpbWdfYmlnJnF1b3Q7Jmd0OwogICAgJmx0O3ZpZGVvIEBzcmM9JnF1b3Q7JGltZyZxdW90OyBhdXRvcGxheSBsb29wJmd0OyZsdDsvdmlkZW8mZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjExIiBuYW1lPSJBbm5pZV9jaGF0IiB0YWdzPSJtYXBwIG5vdGhvdXIiIHBvc2l0aW9uPSIxMDAsMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwovKnJlZ2lvbiBFbWlseSBjaGF0Ki8KJmx0OyZsdDtpZiAkQW5uaWVfY2hhdCA9PSB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7aGVhZGVyICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0FubmllJnF1b3Q7ICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7ICRBbm5pZV9wYXVzZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2hlYWRlciAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyB0cnVlJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O21lc3NhZ2VfY29udGFpbmVyJnF1b3Q7Jmd0OwombHQ7Jmx0O2ZvciBfbGluZSByYW5nZSAkQW5uaWVfY2hhdExvZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmIF9saW5lLnR5cGUgPT0gMSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkIF9saW5lLnNlbmRlciBfbGluZS5tZXNzYWdlIF9saW5lLmF2YXRhciZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2VpZiBfbGluZS50eXBlID09IDImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bWVzc2FnZV9pbWcgX2xpbmUubWVzc2FnZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2VpZiBfbGluZS50eXBlID09IDMmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bWVzc2FnZV92aWRlbyBfbGluZS5tZXNzYWdlWzBdIF9saW5lLm1lc3NhZ2VbMV0mZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlaWYgX2xpbmUudHlwZSA9PSA0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VfZW1vamkgX2xpbmUubWVzc2FnZSBmYWxzZSBfbGluZS5zZW5kZXImZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0Oy9mb3ImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRBbm5pZV9wYXVzZWQgPT0gZmFsc2UmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkQW5uaWVfY2hhdCA9PSB0cnVlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJEFubmllX2NoYXRTdGF0ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICZsdDtkaXYgQGlkPSZxdW90OyRBbm5pZV9sYXN0SWQuc2xpY2UoMSkmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDtlbmQmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2NoYXRfYmFyJnF1b3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O2NvbnRlbnQmcXVvdDsmZ3Q7CiZsdDsmbHQ7aWYgJEFubmllX3BhdXNlZCA9PSB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJEFubmllX29wdGlvbnNbMF0mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bGluayAkQW5uaWVfb3B0aW9uc1swXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpbmNsdWRlICRBbm5pZV9vcHRpb25zWzBdLnBhc3NhZ2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkQW5uaWVfb3B0aW9uc1sxXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICRBbm5pZV9vcHRpb25zWzFdLnRleHQmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJEFubmllX29wdGlvbnNbMV0ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRBbm5pZV9vcHRpb25zWzJdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJEFubmllX29wdGlvbnNbMl0udGV4dCZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkQW5uaWVfb3B0aW9uc1syXS5wYXNzYWdlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJEFubmllX29wdGlvbnNbM10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bGluayAkQW5uaWVfb3B0aW9uc1szXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpbmNsdWRlICRBbm5pZV9vcHRpb25zWzNdLnBhc3NhZ2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7L2RpdiZndDsKJmx0OyZsdDt0aW1lZCAwLjJzJmd0OyZndDsKICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGxJbnN0YSgpOwogICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEyIiBuYW1lPSJBbm5pZVN0YXJ0MSIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtIZXkgaG9uZXksIGdvb2QgbW9ybmluZyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGV5IGhvbmV5LCBnb29kIG1vcm5pbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hleSBob25leSwgZ29vZCBtb3JuaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QXJlIHlvdSBva2F5PyBEaWQgeW91IGFycml2ZSBhbHJlYWR5PyZxdW90OyAmcXVvdDtVb2xra3JvbGtreW9sa2t3b2xra3VvbGtrVm9sa2tjb2xra0RvbGtreW9sa2tJb2xra2pvbGtraW9sa2tib2xra0tvbGtrdW9sa2tXJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FyZSB5b3Ugb2theT8gRGlkIHlvdSBhcnJpdmUgYWxyZWFkeT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0FyZSB5b3Ugb2theT8gRGlkIHlvdSBhcnJpdmUgYWxyZWFkeT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0FvbGtrT29sa2tMb2xra3hvbGtrVG9sa2tlb2xra0NvbGtrciZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS45cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjQW9sa2tPb2xra0xvbGtreG9sa2tUb2xra2VvbGtrQ29sa2tyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SGkgaG9uZXksIHllcywganVzdCBnb3QgaGVyZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVTdGFydDFfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0hpIGhvbmV5LCB5ZXMsIGp1c3QgZ290IGhlcmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV8yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTMiIG5hbWU9IkFubmllU3RhcnQxXzIiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCwyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllU3RhcnQxXzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SGkgaG9uZXksIHllcywganVzdCBnb3QgaGVyZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hpIGhvbmV5LCB5ZXMsIGp1c3QgZ290IGhlcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hpIGhvbmV5LCB5ZXMsIGp1c3QgZ290IGhlcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Ym9sa2tMb2xra2ZvbGtrQm9sa2tib2xra2FvbGtra29sa2txJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNib2xra0xvbGtrZm9sa2tCb2xra2JvbGtrYW9sa2trb2xra3EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJdCYjMzk7cyBhbGwgZ29vZCBoZXJlLCBzbyBnbGFkIHRvIGZpbmFsbHkgc3RyZXRjaCBteSBsZWdzIGFmdGVyIHRoYXQgbG9uZyB0cmlwJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV8zJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SXQmIzM5O3MgYWxsIGdvb2QgaGVyZSwgc28gZ2xhZCB0byBmaW5hbGx5IHN0cmV0Y2ggbXkgbGVncyBhZnRlciB0aGF0IGxvbmcgdHJpcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTQiIG5hbWU9IkFubmllU3RhcnQxXzE0YSIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVTdGFydDFfMTRhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0FuZCB3aGF0IGFib3V0IG9uZSBmcm9tIHRoZSBiYWNrPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FuZCB3aGF0IGFib3V0IG9uZSBmcm9tIHRoZSBiYWNrPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QW5kIHdoYXQgYWJvdXQgb25lIGZyb20gdGhlIGJhY2s/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7WW914oCZcmUgc3VjaCBhIG5hdWdodHkgYm95JnF1b3Q7ICZxdW90O1lvbGtrZ29sa2tWb2xra0JvbGtrZ29sa2t4b2xra0VvbGtreG9sa2txb2xra25vbGtrRW9sa2tIb2xra3RvbGtraW9sa2tyb2xra2EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW914oCZcmUgc3VjaCBhIG5hdWdodHkgYm95JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtZb3XigJlyZSBzdWNoIGEgbmF1Z2h0eSBib3kmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS40cyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV94ZC53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfeGQud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMi45cyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9pbWcgJnF1b3Q7YXNzZXRzL2ltZy9lcDEvYW5uaWVfcGhvdG9fMi53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7dG9sa2tob2xra25vbGtrQm9sa2t2b2xra1ZvbGtram9sa2trb2xra01vbGtreW9sa2t3b2xra09vbGtrSW9sa2tHb2xra2JvbGtrdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAyLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2VwMS9hbm5pZV9waG90b18yLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRwaG90b3MucHVzaCgmcXVvdDthc3NldHMvaW1nL2VwMS9hbm5pZV9waG90b18yLndlYnAmcXVvdDspJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtPb2xra1BvbGtrVW9sa2t4b2xra2dvbGtraG9sa2tzb2xra2smcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuOXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I09vbGtrUG9sa2tVb2xra3hvbGtrZ29sa2tob2xra3NvbGtrayZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1lvdSBhcmUgc28gc2V4eSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVTdGFydDFfMTVhXzEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3UgYXJlIHNvIHNleHkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV8xNWFfMSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNPb2xra1BvbGtrVW9sa2t4b2xra2dvbGtraG9sa2tzb2xra2smcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDvwn6W1JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV8xNTRhXzImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDvwn6W1JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVTdGFydDFfMTU0YV8yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE1IiBuYW1lPSJBbm5pZVN0YXJ0MV8xNWFfMSIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVTdGFydDFfMTVhXzEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WW91IGFyZSBzbyBzZXh5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGFyZSBzbyBzZXh5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtZb3UgYXJlIHNvIHNleHkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJ4oCZbSBnbGFkIHlvdSBsaWtlIHRoZW0mcXVvdDsgJnF1b3Q7bG9sa2tXb2xra3VvbGtrQ29sa2tGb2xra01vbGtrTG9sa2tOb2xra2ZvbGtrR29sa2t0b2xra1FvbGtrYW9sa2tCb2xra1pvbGtrcCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBnbGFkIHlvdSBsaWtlIHRoZW0mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJltIGdsYWQgeW91IGxpa2UgdGhlbSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjRzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7Tm93IEkgcmVhbGx5IGhhdmUgdG8gdGFrZSB0aGF0IHNob3dlciZxdW90OyAmcXVvdDtMb2xra2tvbGtrSm9sa2thb2xra2VvbGtrWG9sa2tJb2xra3BvbGtra29sa2tPb2xra0VvbGtrR29sa2tLb2xra0lvbGtrRG9sa2tJJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O05vdyBJIHJlYWxseSBoYXZlIHRvIHRha2UgdGhhdCBzaG93ZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O05vdyBJIHJlYWxseSBoYXZlIHRvIHRha2UgdGhhdCBzaG93ZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0J1dCBwbGVhc2Uga2VlcCBtZSB1cGRhdGVkIGFib3V0IHlvdXIgZGF5JnF1b3Q7ICZxdW90O0RvbGtrVG9sa2tyb2xra1pvbGtram9sa2tpb2xra0JvbGtrRG9sa2tTb2xra2JvbGtrcm9sa2tvb2xra25vbGtrUW9sa2tTb2xra1EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IHBsZWFzZSBrZWVwIG1lIHVwZGF0ZWQgYWJvdXQgeW91ciBkYXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0J1dCBwbGVhc2Uga2VlcCBtZSB1cGRhdGVkIGFib3V0IHlvdXIgZGF5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4ycyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtMb3ZlIHlvdSZxdW90OyAmcXVvdDtvb2xra1VvbGtrbm9sa2t0b2xra09vbGtrT29sa2tFb2xra2pvbGtrTm9sa2twb2xra2FvbGtrcW9sa2tFb2xra2RvbGtrcm9sa2tuJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0xvdmUgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtMb3ZlIHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt0b2xra3JvbGtrQm9sa2tGb2xra09vbGtrVG9sa2tRb2xra3omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDYuMHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3RvbGtrcm9sa2tCb2xra0ZvbGtrT29sa2tUb2xra1FvbGtreiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgbG92ZSB5b3UgdG9vJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV8xNmFfMSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgbG92ZSB5b3UgdG9vJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVTdGFydDFfMTZhXzEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjdG9sa2tyb2xra0JvbGtrRm9sa2tPb2xra1RvbGtrUW9sa2t6JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q78J+lsCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVTdGFydDFfMTZhXzImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDvwn6WwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVTdGFydDFfMTZhXzImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTYiIG5hbWU9IkFubmllU3RhcnQxXzE1NGFfMiIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVTdGFydDFfMTU0YV8yJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbGV3ZF9mYWNlLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xld2RfZmFjZS53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJltIGdsYWQgeW91IGxpa2UgdGhlbSZxdW90OyAmcXVvdDtMb2xra3JvbGtrbG9sa2tob2xra21vbGtrTm9sa2tBb2xra0ZvbGtrSG9sa2t5b2xra1FvbGtrcW9sa2tyb2xra1ZvbGtrVm9sa2thJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJltIGdsYWQgeW91IGxpa2UgdGhlbSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmW0gZ2xhZCB5b3UgbGlrZSB0aGVtJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtOb3cgSSByZWFsbHkgaGF2ZSB0byB0YWtlIHRoYXQgc2hvd2VyJnF1b3Q7ICZxdW90O1pvbGtrSm9sa2tob2xra0lvbGtrdG9sa2t5b2xra3NvbGtrb29sa2tjb2xra2NvbGtraW9sa2tRb2xra0FvbGtrZG9sa2tQb2xra0wmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm93IEkgcmVhbGx5IGhhdmUgdG8gdGFrZSB0aGF0IHNob3dlciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7Tm93IEkgcmVhbGx5IGhhdmUgdG8gdGFrZSB0aGF0IHNob3dlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QnV0IHBsZWFzZSBrZWVwIG1lIHVwZGF0ZWQgYWJvdXQgeW91ciBkYXkmcXVvdDsgJnF1b3Q7VG9sa2tRb2xra1ZvbGtrbm9sa2tJb2xra0xvbGtrdW9sa2t4b2xra21vbGtram9sa2tNb2xra1BvbGtrTm9sa2tCb2xra0RvbGtrVyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgcGxlYXNlIGtlZXAgbWUgdXBkYXRlZCBhYm91dCB5b3VyIGRheSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QnV0IHBsZWFzZSBrZWVwIG1lIHVwZGF0ZWQgYWJvdXQgeW91ciBkYXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0xvdmUgeW91JnF1b3Q7ICZxdW90O0FvbGtrVm9sa2tmb2xra2NvbGtrV29sa2tub2xra2hvbGtrUm9sa2tzb2xra2RvbGtrc29sa2t4b2xra2xvbGtrWW9sa2thb2xra3cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TG92ZSB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0xvdmUgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDUuN3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2ZvbGtreG9sa2tMb2xra0tvbGtrZW9sa2tsb2xra0hvbGtrSyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNi43cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjZm9sa2t4b2xra0xvbGtrS29sa2tlb2xra2xvbGtrSG9sa2tLJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBsb3ZlIHlvdSB0b28mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzE2YV8xJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBsb3ZlIHlvdSB0b28mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV8xNmFfMSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNmb2xra3hvbGtrTG9sa2tLb2xra2VvbGtrbG9sa2tIb2xra0smcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDvwn6WwJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV8xNmFfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O/CfpbAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV8xNmFfMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNyIgbmFtZT0iQW5uaWVTdGFydDFfMTZhXzEiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCwyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllU3RhcnQxXzE2YV8xJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgbG92ZSB5b3UgdG9vJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBsb3ZlIHlvdSB0b28mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgbG92ZSB5b3UgdG9vJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2RvbGtrR29sa2tLb2xra0RvbGtrRW9sa2thb2xra2tvbGtreSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjZG9sa2tHb2xra0tvbGtrRG9sa2tFb2xra2FvbGtra29sa2t5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QnllJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV8xN2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtCeWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV8xN2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTgiIG5hbWU9IkFubmllU3RhcnQxXzE2YV8yIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZVN0YXJ0MV8xNmFfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7WW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7bm9sa2t3b2xra2xvbGtrTG9sa2t3b2xra1lvbGtrWW9sa2t4JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNub2xra3dvbGtrbG9sa2tMb2xra3dvbGtrWW9sa2tZb2xra3gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtCeWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzE3YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0J5ZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzE3YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxOSIgbmFtZT0iQW5uaWVTdGFydDFfMyIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllU3RhcnQxXzMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SXTigJlzIGFsbCBnb29kIGhlcmUsIHNvIGdsYWQgdG8gZmluYWxseSBzdHJldGNoIG15IGxlZ3MgYWZ0ZXIgdGhhdCBsb25nIHRyaXAmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdOKAmXMgYWxsIGdvb2QgaGVyZSwgc28gZ2xhZCB0byBmaW5hbGx5IHN0cmV0Y2ggbXkgbGVncyBhZnRlciB0aGF0IGxvbmcgdHJpcCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SXTigJlzIGFsbCBnb29kIGhlcmUsIHNvIGdsYWQgdG8gZmluYWxseSBzdHJldGNoIG15IGxlZ3MgYWZ0ZXIgdGhhdCBsb25nIHRyaXAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7RW9sa2t6b2xra2JvbGtrUG9sa2t4b2xra1RvbGtrRG9sa2tBJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNFb2xra3pvbGtrYm9sa2tQb2xra3hvbGtrVG9sa2tEb2xra0EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDvwn5iBJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV80JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q78J+YgSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjAiIG5hbWU9IkFubmllU3RhcnQxXzQiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZVN0YXJ0MV80JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfYmlnX3NtaWxlLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2JpZ19zbWlsZS53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgc3RpbGwgY2Fu4oCZdCBiZWxpZXZlIHRoZSBjb21wYW55IHNlbnQgeW91IHNvIGZhciZxdW90OyAmcXVvdDthb2xra1pvbGtraG9sa2tCb2xra0VvbGtrdG9sa2t1b2xra1JvbGtrem9sa2t1b2xra2NvbGtreG9sa2tUb2xra05vbGtrV29sa2t3JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgc3RpbGwgY2Fu4oCZdCBiZWxpZXZlIHRoZSBjb21wYW55IHNlbnQgeW91IHNvIGZhciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBzdGlsbCBjYW7igJl0IGJlbGlldmUgdGhlIGNvbXBhbnkgc2VudCB5b3Ugc28gZmFyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJ4oCZbSBzdGlsbCBwcm9jZXNzaW5nIHRoZSBmYWN0IHRoYXQgeW914oCZbGwgYmUgYXdheSBmb3IgbW9udGhzJnF1b3Q7ICZxdW90O2VvbGtrUW9sa2tGb2xra1lvbGtrZG9sa2tmb2xra3pvbGtrcm9sa2tNb2xra1dvbGtrbm9sa2tUb2xra3VvbGtrR29sa2tOb2xra2QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gc3RpbGwgcHJvY2Vzc2luZyB0aGUgZmFjdCB0aGF0IHlvdeKAmWxsIGJlIGF3YXkgZm9yIG1vbnRocyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmW0gc3RpbGwgcHJvY2Vzc2luZyB0aGUgZmFjdCB0aGF0IHlvdeKAmWxsIGJlIGF3YXkgZm9yIG1vbnRocyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2NyeWluZy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfY3J5aW5nLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDthb2xra3RvbGtrTW9sa2tFb2xra1ZvbGtrV29sa2tOb2xra2YmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDUuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2FvbGtrdG9sa2tNb2xra0VvbGtrVm9sa2tXb2xra05vbGtrZiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1llYWgsIEkga25vdyBiYWJlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV81JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WWVhaCwgSSBrbm93IGJhYmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV81JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIxIiBuYW1lPSJBbm5pZVN0YXJ0MV81IiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZVN0YXJ0MV81JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1llYWgsIEkga25vdyBiYWJlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WWVhaCwgSSBrbm93IGJhYmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1llYWgsIEkga25vdyBiYWJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0xvbGtrZG9sa2tBb2xra1ZvbGtrdm9sa2tkb2xra2xvbGtreiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjTG9sa2tkb2xra0FvbGtrVm9sa2t2b2xra2RvbGtrbG9sa2t6JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QnV0IHlvdSBrbm93IEkgbmVlZCB0byBzY29yZSBwb2ludHMgd2l0aCBteSBib3NzLiBJIHJlYWxseSB3YW50IHRoYXQgcHJvbW90aW9uJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV82JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QnV0IHlvdSBrbm93IEkgbmVlZCB0byBzY29yZSBwb2ludHMgd2l0aCBteSBib3NzLiBJIHJlYWxseSB3YW50IHRoYXQgcHJvbW90aW9uJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVTdGFydDFfNiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMiIgbmFtZT0iQW5uaWVTdGFydDFfNiIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVTdGFydDFfNiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtCdXQgeW91IGtub3cgSSBuZWVkIHRvIHNjb3JlIHBvaW50cyB3aXRoIG15IGJvc3MuIEkgcmVhbGx5IHdhbnQgdGhhdCBwcm9tb3Rpb24mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgeW91IGtub3cgSSBuZWVkIHRvIHNjb3JlIHBvaW50cyB3aXRoIG15IGJvc3MuIEkgcmVhbGx5IHdhbnQgdGhhdCBwcm9tb3Rpb24mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0J1dCB5b3Uga25vdyBJIG5lZWQgdG8gc2NvcmUgcG9pbnRzIHdpdGggbXkgYm9zcy4gSSByZWFsbHkgd2FudCB0aGF0IHByb21vdGlvbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtMb2xra0xvbGtrRm9sa2tYb2xra1hvbGtrRm9sa2tEb2xra0MmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0xvbGtrTG9sa2tGb2xra1hvbGtrWG9sa2tGb2xra0RvbGtrQyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0hlIGRvZXNuJiMzOTt0IGxpa2UgbWUgbXVjaCwgYnV0IEkmIzM5O20gc3VyZSB0aGlzIHdpbGwgY2hhbmdlIGhvdyBoZSBzZWVzIG1lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV83JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SGUgZG9lc24mIzM5O3QgbGlrZSBtZSBtdWNoLCBidXQgSSYjMzk7bSBzdXJlIHRoaXMgd2lsbCBjaGFuZ2UgaG93IGhlIHNlZXMgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV83JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIzIiBuYW1lPSJBbm5pZVN0YXJ0MV83IiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZVN0YXJ0MV83JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0hlIGRvZXNu4oCZdCBsaWtlIG1lIG11Y2gsIGJ1dCBJ4oCZbSBzdXJlIHRoaXMgd2lsbCBjaGFuZ2UgaG93IGhlIHNlZXMgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZSBkb2VzbuKAmXQgbGlrZSBtZSBtdWNoLCBidXQgSeKAmW0gc3VyZSB0aGlzIHdpbGwgY2hhbmdlIGhvdyBoZSBzZWVzIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIZSBkb2VzbuKAmXQgbGlrZSBtZSBtdWNoLCBidXQgSeKAmW0gc3VyZSB0aGlzIHdpbGwgY2hhbmdlIGhvdyBoZSBzZWVzIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBob3BlIHlvdeKAmXJlIHJpZ2h0JnF1b3Q7ICZxdW90O2dvbGtrT29sa2trb2xra1NvbGtrZm9sa2tEb2xra1NvbGtrVW9sa2tMb2xra2FvbGtrRm9sa2tMb2xra3RvbGtrVW9sa2tZb2xra3YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBob3BlIHlvdeKAmXJlIHJpZ2h0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGhvcGUgeW914oCZcmUgcmlnaHQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjVzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0J1dCBob25lc3RseSwgaGXigJlzIHN1Y2ggYW4gaWRpb3QgaWYgaGUgY2Fu4oCZdCBzZWUgaG93IGNyYXp5IGhhcmR3b3JraW5nIHlvdSBhcmUmcXVvdDsgJnF1b3Q7Q29sa2tQb2xra2pvbGtrZG9sa2tSb2xra2RvbGtrUm9sa2tPb2xra2hvbGtrQm9sa2t4b2xra1FvbGtrR29sa2tGb2xra3lvbGtrUiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgaG9uZXN0bHksIGhl4oCZcyBzdWNoIGFuIGlkaW90IGlmIGhlIGNhbuKAmXQgc2VlIGhvdyBjcmF6eSBoYXJkd29ya2luZyB5b3UgYXJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCdXQgaG9uZXN0bHksIGhl4oCZcyBzdWNoIGFuIGlkaW90IGlmIGhlIGNhbuKAmXQgc2VlIGhvdyBjcmF6eSBoYXJkd29ya2luZyB5b3UgYXJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtMaWtlIEkgc2FpZCBsYXN0IG5pZ2h0LCB5b3Uga25vdyBJIGhhdmUgeW91ciBiYWNrLCBhbHdheXMhJnF1b3Q7ICZxdW90O3NvbGtrRG9sa2tKb2xra0tvbGtrdW9sa2tvb2xra0xvbGtrcG9sa2tnb2xra0JvbGtra29sa2tPb2xra3ZvbGtrWG9sa2tpb2xra0ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGlrZSBJIHNhaWQgbGFzdCBuaWdodCwgeW91IGtub3cgSSBoYXZlIHlvdXIgYmFjaywgYWx3YXlzISZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7TGlrZSBJIHNhaWQgbGFzdCBuaWdodCwgeW91IGtub3cgSSBoYXZlIHlvdXIgYmFjaywgYWx3YXlzISZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjJzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X3Rvbmd1ZS53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfdG9uZ3VlLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtlb2xra1pvbGtrSG9sa2tWb2xra1VvbGtrbm9sa2t3b2xra0omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDYuMnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2VvbGtrWm9sa2tIb2xra1ZvbGtrVW9sa2tub2xra3dvbGtrSiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kga25vdywgYW5kIGl0IG1lYW5zIHNvIG11Y2ggdG8gaGF2ZSBzb21lb25lIGxpa2UgeW91IHRoZXJlIGZvciBtZSBubyBtYXR0ZXIgd2hhdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVTdGFydDFfOCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kga25vdywgYW5kIGl0IG1lYW5zIHNvIG11Y2ggdG8gaGF2ZSBzb21lb25lIGxpa2UgeW91IHRoZXJlIGZvciBtZSBubyBtYXR0ZXIgd2hhdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzgmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjQiIG5hbWU9IkFubmllU3RhcnQxXzgiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllU3RhcnQxXzgmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBrbm93LCBhbmQgaXQgbWVhbnMgc28gbXVjaCB0byBoYXZlIHNvbWVvbmUgbGlrZSB5b3UgdGhlcmUgZm9yIG1lIG5vIG1hdHRlciB3aGF0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBrbm93LCBhbmQgaXQgbWVhbnMgc28gbXVjaCB0byBoYXZlIHNvbWVvbmUgbGlrZSB5b3UgdGhlcmUgZm9yIG1lIG5vIG1hdHRlciB3aGF0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGtub3csIGFuZCBpdCBtZWFucyBzbyBtdWNoIHRvIGhhdmUgc29tZW9uZSBsaWtlIHlvdSB0aGVyZSBmb3IgbWUgbm8gbWF0dGVyIHdoYXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtUaGF04oCZcyBiZWNhdXNlIEkgbG92ZSB5b3UmcXVvdDsgJnF1b3Q7R29sa2txb2xra2tvbGtrTm9sa2trb2xra2lvbGtrWG9sa2tBb2xra0NvbGtrcG9sa2tpb2xra1JvbGtrUm9sa2tSb2xra0RvbGtrSyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGF04oCZcyBiZWNhdXNlIEkgbG92ZSB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1RoYXTigJlzIGJlY2F1c2UgSSBsb3ZlIHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjRzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SeKAmWxsIGFsd2F5cyBiZSB0aGVyZSBmb3IgeW91JnF1b3Q7ICZxdW90O2JvbGtrcm9sa2tlb2xra3ZvbGtrUG9sa2tVb2xra2RvbGtrZm9sa2tPb2xra0RvbGtrVm9sa2tzb2xra1dvbGtrbG9sa2tmb2xra0YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmWxsIGFsd2F5cyBiZSB0aGVyZSBmb3IgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJ4oCZbGwgYWx3YXlzIGJlIHRoZXJlIGZvciB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O25vbGtrZG9sa2tpb2xra3BvbGtrdW9sa2tBb2xra2RvbGtrZSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjbm9sa2tkb2xra2lvbGtrcG9sa2t1b2xra0FvbGtrZG9sa2tlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q78J+lsCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVTdGFydDFfMTBhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q78J+lsCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzEwYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNub2xra2RvbGtraW9sa2twb2xra3VvbGtrQW9sa2tkb2xra2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGxvdmUgeW91IHRvby4gWW91IHdpbGwgYWx3YXlzIGhhdmUgbWUgYnkgeW91ciBzaWRlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV8xMGImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGxvdmUgeW91IHRvby4gWW91IHdpbGwgYWx3YXlzIGhhdmUgbWUgYnkgeW91ciBzaWRlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVTdGFydDFfMTBiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI1IiBuYW1lPSJBbm5pZVN0YXJ0MV8xMGEiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCwzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllU3RhcnQxXzEwYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7WW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMi4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0hvbmV5LCBJIG5lZWQgdG8gaG9wIGluIHRoZSBzaG93ZXIgaW4gYSBmZXcgbWludXRlcyZxdW90OyAmcXVvdDtub2xra2lvbGtrT29sa2tWb2xra2dvbGtrWW9sa2tQb2xra2xvbGtrQW9sa2tlb2xra1FvbGtra29sa2tOb2xra1hvbGtrZG9sa2tzJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvbmV5LCBJIG5lZWQgdG8gaG9wIGluIHRoZSBzaG93ZXIgaW4gYSBmZXcgbWludXRlcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SG9uZXksIEkgbmVlZCB0byBob3AgaW4gdGhlIHNob3dlciBpbiBhIGZldyBtaW51dGVzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuOHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtZb3Uga25vdywgZ290dGEgZ2V0IHJlYWR5IGZvciB3b3JrJnF1b3Q7ICZxdW90O1ZvbGtrTG9sa2tDb2xra2ZvbGtrRW9sa2tGb2xra3RvbGtrVm9sa2thb2xra2RvbGtrUG9sa2tab2xra3pvbGtrRm9sa2t4b2xra3gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGtub3csIGdvdHRhIGdldCByZWFkeSBmb3Igd29yayZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW91IGtub3csIGdvdHRhIGdldCByZWFkeSBmb3Igd29yayZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7am9sa2tWb2xra05vbGtrQW9sa2tFb2xra2dvbGtrZm9sa2tNJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA1LjFzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNqb2xra1ZvbGtrTm9sa2tBb2xra0VvbGtrZ29sa2tmb2xra00mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtDb3VsZCB5b3Ugc2VuZCBtZSBhIHBpYyB0aGVuPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVTdGFydDFfMTFhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7Q291bGQgeW91IHNlbmQgbWUgYSBwaWMgdGhlbj8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV8xMWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjam9sa2tWb2xra05vbGtrQW9sa2tFb2xra2dvbGtrZm9sa2tNJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7T2gsIG9mIGNvdXJzZSwgZ28gZG8gdGhhdCBiYWJlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV8xMWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtPaCwgb2YgY291cnNlLCBnbyBkbyB0aGF0IGJhYmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV8xMWImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjYiIG5hbWU9IkFubmllU3RhcnQxXzEwYiIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVTdGFydDFfMTBiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgbG92ZSB5b3UgdG9vLiBZb3Ugd2lsbCBhbHdheXMgaGF2ZSBtZSBieSB5b3VyIHNpZGUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGxvdmUgeW91IHRvby4gWW91IHdpbGwgYWx3YXlzIGhhdmUgbWUgYnkgeW91ciBzaWRlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGxvdmUgeW91IHRvby4gWW91IHdpbGwgYWx3YXlzIGhhdmUgbWUgYnkgeW91ciBzaWRlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtIb25leSwgSSBuZWVkIHRvIGhvcCBpbiB0aGUgc2hvd2VyIGluIGEgZmV3IG1pbnV0ZXMmcXVvdDsgJnF1b3Q7a29sa2tib2xra3JvbGtrVm9sa2tib2xra2hvbGtrbW9sa2txb2xra29vbGtrSG9sa2tHb2xra2xvbGtrdW9sa2t5b2xra0hvbGtrTSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIb25leSwgSSBuZWVkIHRvIGhvcCBpbiB0aGUgc2hvd2VyIGluIGEgZmV3IG1pbnV0ZXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hvbmV5LCBJIG5lZWQgdG8gaG9wIGluIHRoZSBzaG93ZXIgaW4gYSBmZXcgbWludXRlcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7WW91IGtub3csIGdvdHRhIGdldCByZWFkeSBmb3Igd29yayZxdW90OyAmcXVvdDtlb2xra0NvbGtrTG9sa2tYb2xra0FvbGtrQW9sa2t5b2xra1FvbGtrWm9sa2t5b2xra0RvbGtrT29sa2tab2xra1JvbGtra29sa2t6JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBrbm93LCBnb3R0YSBnZXQgcmVhZHkgZm9yIHdvcmsmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdSBrbm93LCBnb3R0YSBnZXQgcmVhZHkgZm9yIHdvcmsmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3RvbGtrTm9sa2tob2xra2JvbGtrbG9sa2tnb2xra1lvbGtraCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjdG9sa2tOb2xra2hvbGtrYm9sa2tsb2xra2dvbGtrWW9sa2toJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7Q291bGQgeW91IHNlbmQgbWUgYSBwaWMgdGhlbj8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzExYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0NvdWxkIHlvdSBzZW5kIG1lIGEgcGljIHRoZW4/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVTdGFydDFfMTFhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3RvbGtrTm9sa2tob2xra2JvbGtrbG9sa2tnb2xra1lvbGtraCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O09oLCBvZiBjb3Vyc2UsIGdvIGRvIHRoYXQgYmFiZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVTdGFydDFfMTFiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7T2gsIG9mIGNvdXJzZSwgZ28gZG8gdGhhdCBiYWJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVTdGFydDFfMTFiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI3IiBuYW1lPSJBbm5pZVN0YXJ0MV8xMWEiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCwzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllU3RhcnQxXzExYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtDb3VsZCB5b3Ugc2VuZCBtZSBhIHBpYyB0aGVuPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0NvdWxkIHlvdSBzZW5kIG1lIGEgcGljIHRoZW4/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtDb3VsZCB5b3Ugc2VuZCBtZSBhIHBpYyB0aGVuPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkZG9tc3ViID0gJGRvbXN1YisxJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3FvbGtreG9sa2tEb2xra01vbGtrR29sa2tRb2xra3dvbGtrcCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjcW9sa2t4b2xra0RvbGtrTW9sa2tHb2xra1FvbGtrd29sa2twJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q78J+ltSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVTdGFydDFfMTJhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q78J+ltSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzEyYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyOCIgbmFtZT0iQW5uaWVTdGFydDFfMTFiIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZVN0YXJ0MV8xMWImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7T2gsIG9mIGNvdXJzZSwgZ28gZG8gdGhhdCBiYWJlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2gsIG9mIGNvdXJzZSwgZ28gZG8gdGhhdCBiYWJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtPaCwgb2YgY291cnNlLCBnbyBkbyB0aGF0IGJhYmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGRvbXN1YiA9ICRkb21zdWItMSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1RoYW5rcyBob25leSZxdW90OyAmcXVvdDt4b2xra1BvbGtrY29sa2tib2xra3NvbGtrQm9sa2tQb2xra3NvbGtrSW9sa2tjb2xra3pvbGtrZW9sa2tKb2xra05vbGtrQ29sa2tuJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYW5rcyBob25leSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhhbmtzIGhvbmV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtPaCwgYW5kIG9uZSBtb3JlIHRoaW5nJnF1b3Q7ICZxdW90O2xvbGtrc29sa2tqb2xra3pvbGtrUW9sa2t4b2xra1dvbGtrcG9sa2tSb2xra1pvbGtrd29sa2tob2xra0pvbGtreG9sa2tnb2xra2MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2gsIGFuZCBvbmUgbW9yZSB0aGluZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7T2gsIGFuZCBvbmUgbW9yZSB0aGluZyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjdzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2ltZyAmcXVvdDthc3NldHMvaW1nL2VwMS9hbm5pZV9waG90b18xLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtFb2xra1FvbGtrQW9sa2tmb2xra2NvbGtrTW9sa2tLb2xra0RvbGtrem9sa2tsb2xra3VvbGtrWW9sa2ttb2xra3VvbGtrSm9sa2tuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDIsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZXAxL2FubmllX3Bob3RvXzEud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzZXQgJHBob3Rvcy5wdXNoKCZxdW90O2Fzc2V0cy9pbWcvZXAxL2FubmllX3Bob3RvXzEud2VicCZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy43cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1NvIHlvdSBkb27igJl0IGZvcmdldCBtZSZxdW90OyAmcXVvdDtXb2xra2NvbGtrYW9sa2tYb2xra1VvbGtrcG9sa2tkb2xra09vbGtrdW9sa2tPb2xra3dvbGtrcG9sa2tLb2xra3pvbGtreG9sa2tCJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1NvIHlvdSBkb27igJl0IGZvcmdldCBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7U28geW91IGRvbuKAmXQgZm9yZ2V0IG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuOHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfd2luay53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfd2luay53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7b29sa2tnb2xra1ZvbGtrSG9sa2tmb2xra1hvbGtrY29sa2t5JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA1LjhzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNvb2xra2dvbGtrVm9sa2tIb2xra2ZvbGtrWG9sa2tjb2xra3kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGNvdWxkIG5ldmVyIGZvcmdldCB5b3UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzEyYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgY291bGQgbmV2ZXIgZm9yZ2V0IHlvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzEyYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyOSIgbmFtZT0iQW5uaWVTdGFydDFfMTJhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVTdGFydDFfMTJhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbGV3ZF9mYWNlLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xld2RfZmFjZS53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kga25ldyB5b3Ugd2VyZSBnb2luZyB0byBhc2sgbG9sJnF1b3Q7ICZxdW90O2RvbGtrbW9sa2tsb2xra3RvbGtrbm9sa2trb2xra1dvbGtrbG9sa2tEb2xra1dvbGtrQW9sa2tqb2xra2RvbGtrQm9sa2tvb2xra2YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBrbmV3IHlvdSB3ZXJlIGdvaW5nIHRvIGFzayBsb2wmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kga25ldyB5b3Ugd2VyZSBnb2luZyB0byBhc2sgbG9sJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGtub3cgeW91IHRvbyB3ZWxsJnF1b3Q7ICZxdW90O0tvbGtrem9sa2tRb2xra25vbGtrQW9sa2tJb2xra1BvbGtrdG9sa2tWb2xra0dvbGtrTm9sa2tZb2xra1hvbGtrVW9sa2tjb2xra3YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBrbm93IHlvdSB0b28gd2VsbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBrbm93IHlvdSB0b28gd2VsbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Um9sa2tRb2xra0VvbGtrem9sa2tRb2xra3ZvbGtra29sa2t4JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjVzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNSb2xra1FvbGtrRW9sa2t6b2xra1FvbGtrdm9sa2trb2xra3gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDvwn6SjJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV8xM2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDvwn6SjJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVTdGFydDFfMTNhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMwIiBuYW1lPSJBbm5pZVN0YXJ0MV8xMmIiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZVN0YXJ0MV8xMmImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBjb3VsZCBuZXZlciBmb3JnZXQgeW91JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBjb3VsZCBuZXZlciBmb3JnZXQgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGNvdWxkIG5ldmVyIGZvcmdldCB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7a29sa2tXb2xra09vbGtrd29sa2tVb2xra1pvbGtrTm9sa2tyJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNrb2xra1dvbGtrT29sa2t3b2xra1VvbGtrWm9sa2tOb2xra3ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGxvdmUgeW91JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV8xM2ImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGxvdmUgeW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVTdGFydDFfMTNiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMxIiBuYW1lPSJBbm5pZVN0YXJ0MV8xM2EiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCw0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllU3RhcnQxXzEzYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xtYW8ud2VicCZxdW90OyB0cnVlICZxdW90O1lvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbG1hby53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0hlcmUgeW91IGdvJnF1b3Q7ICZxdW90O1lvbGtrdm9sa2tIb2xra21vbGtrcm9sa2tSb2xra2hvbGtrU29sa2tZb2xra1FvbGtrdW9sa2tNb2xra3BvbGtram9sa2tOb2xra0omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGVyZSB5b3UgZ28mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hlcmUgeW91IGdvJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuNHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfaW1nICZxdW90O2Fzc2V0cy9pbWcvZXAxL2FubmllX3Bob3RvXzEud2VicCZxdW90OyB0cnVlICZxdW90O1JvbGtrVm9sa2tpb2xra0JvbGtrd29sa2t5b2xra1lvbGtrcm9sa2tTb2xra0NvbGtrZW9sa2t1b2xra2FvbGtraW9sa2t5b2xra0omcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMiwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lcDEvYW5uaWVfcGhvdG9fMS53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkcGhvdG9zLnB1c2goJnF1b3Q7YXNzZXRzL2ltZy9lcDEvYW5uaWVfcGhvdG9fMS53ZWJwJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7TW9sa2tpb2xra0JvbGtrcG9sa2tTb2xra2dvbGtra29sa2tiJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjRzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNNb2xra2lvbGtrQm9sa2twb2xra1NvbGtrZ29sa2trb2xra2ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtBbmQgd2hhdCBhYm91dCBvbmUgZnJvbSB0aGUgYmFjaz8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzE0YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0FuZCB3aGF0IGFib3V0IG9uZSBmcm9tIHRoZSBiYWNrPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzE0YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMiIgbmFtZT0iQW5uaWVTdGFydDFfMTNiIiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZVN0YXJ0MV8xM2ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBsb3ZlIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbG92ZSB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgbG92ZSB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGxvdmUgeW91IG1vcmUmcXVvdDsgJnF1b3Q7ZW9sa2tZb2xra2NvbGtrSm9sa2tSb2xra0FvbGtrS29sa2t5b2xra1VvbGtrTW9sa2tPb2xra0FvbGtrZG9sa2t6b2xra3hvbGtrTiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGxvdmUgeW91IG1vcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgbG92ZSB5b3UgbW9yZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDIuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC45cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtCdXQgbm93IEkgcmVhbGx5IG5lZWQgdG8gdGFrZSB0aGF0IHNob3dlciZxdW90OyAmcXVvdDtJb2xra0VvbGtrQ29sa2tBb2xra0RvbGtrdG9sa2tOb2xra1hvbGtrWW9sa2tsb2xra1ZvbGtrcW9sa2tPb2xra3VvbGtrbm9sa2tlJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCBub3cgSSByZWFsbHkgbmVlZCB0byB0YWtlIHRoYXQgc2hvd2VyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCdXQgbm93IEkgcmVhbGx5IG5lZWQgdG8gdGFrZSB0aGF0IHNob3dlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjhzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7RG9u4oCZdCBmb3JnZXQgdG8gdGV4dCBtZSBsYXRlciZxdW90OyAmcXVvdDtlb2xra1lvbGtrcG9sa2txb2xra2lvbGtrQm9sa2tkb2xra2hvbGtrWm9sa2t2b2xra0VvbGtraG9sa2t2b2xra0tvbGtrcG9sa2thJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0RvbuKAmXQgZm9yZ2V0IHRvIHRleHQgbWUgbGF0ZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0RvbuKAmXQgZm9yZ2V0IHRvIHRleHQgbWUgbGF0ZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0NvbGtrVm9sa2tMb2xra1FvbGtrUW9sa2tzb2xra3FvbGtrdyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNS4wcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjQ29sa2tWb2xra0xvbGtrUW9sa2tRb2xra3NvbGtrcW9sa2t3JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSB3b24mIzM5O3QmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzE0YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgd29uJiMzOTt0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVTdGFydDFfMTRiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMzIiBuYW1lPSJBbm5pZVN0YXJ0MV8xNGIiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCw0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllU3RhcnQxXzE0YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIHdvbuKAmXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHdvbuKAmXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgd29u4oCZdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt4b2xra2xvbGtrcm9sa2tsb2xra09vbGtrQm9sa2tIb2xra1cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3hvbGtrbG9sa2tyb2xra2xvbGtrT29sa2tCb2xra0hvbGtrVyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O/CfpbAmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzE1YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O/CfpbAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV8xNWImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzQiIG5hbWU9IkFubmllU3RhcnQxXzE1YiIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVTdGFydDFfMTViJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90OyB0cnVlICZxdW90O0FubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAyLjBzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCeWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVTdGFydDhiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2xhc3RfaG91ciA9ICZxdW90OzA4OjM3JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXQgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRob3VyID0gJnF1b3Q7MDg6MzcmcXVvdDsmZ3Q7Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O29mZmxpbmUtdGV4dCZxdW90OyZndDtBbm5pZSBpcyBvZmZsaW5lJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7SeKAmW0gZ29pbmcgdG8gbmVlZCB0aGUgcmV2ZW51ZSByZXBvcnRzIGJ5IEZyaWRheS4gWW91IGhhdmUgZml2ZSBkYXlzLiZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjBzJmd0OyZndDsmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfdmlzaWJsZSA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzUiIG5hbWU9IkFubmllU3RhcnQxXzE3YSIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVTdGFydDFfMTdhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0J5ZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J5ZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QnllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0J5ZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgPSAmcXVvdDtBbm5pZVN0YXJ0MTBhMSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0X2hvdXIgPSAmcXVvdDswODozNyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkaG91ciA9ICZxdW90OzA4OjM3JnF1b3Q7Jmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtvZmZsaW5lLXRleHQmcXVvdDsmZ3Q7QW5uaWUgaXMgb2ZmbGluZSZsdDsvZGl2Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0nigJltIGdvaW5nIHRvIG5lZWQgdGhlIHJldmVudWUgcmVwb3J0cyBieSBGcmlkYXkuIFlvdSBoYXZlIGZpdmUgZGF5cy4mcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJFBoaWxsaXBzX3Zpc2libGUgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM2IiBuYW1lPSJBbm5pZUNoYXQyXzEiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSw0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SGV5IGhvbmV5LCBob3figJlzIGV2ZXJ5dGhpbmcgZ29pbmcgb3ZlciB0aGVyZT8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hleSBob25leSwgaG934oCZcyBldmVyeXRoaW5nIGdvaW5nIG92ZXIgdGhlcmU/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIZXkgaG9uZXksIGhvd+KAmXMgZXZlcnl0aGluZyBnb2luZyBvdmVyIHRoZXJlPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2FvbGtrY29sa2tGb2xra3BvbGtra29sa2tkb2xra0dvbGtrTyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjYW9sa2tjb2xra0ZvbGtrcG9sa2trb2xra2RvbGtrR29sa2tPJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7TXIuIFBoaWxsaXBzIGp1c3Qgd29u4oCZdCBnaXZlIG1lIGEgYnJlYWsmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O01yLiBQaGlsbGlwcyBqdXN0IHdvbuKAmXQgZ2l2ZSBtZSBhIGJyZWFrJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml8yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzciIG5hbWU9IkFubmllQ2hhdDJfMiIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0Ml8yJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O01yLiBQaGlsbGlwcyBqdXN0IHdvbuKAmXQgZ2l2ZSBtZSBhIGJyZWFrJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TXIuIFBoaWxsaXBzIGp1c3Qgd29u4oCZdCBnaXZlIG1lIGEgYnJlYWsmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O01yLiBQaGlsbGlwcyBqdXN0IHdvbuKAmXQgZ2l2ZSBtZSBhIGJyZWFrJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3ZvbGtrRm9sa2tTb2xra1hvbGtrWm9sa2t3b2xra3JvbGtrUSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjdm9sa2tGb2xra1NvbGtrWG9sa2tab2xra3dvbGtrcm9sa2tRJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBoYXZlIHVudGlsIEZyaWRheSB0byBmaW5pc2ggc2V2ZXJhbCBpbXBvcnRhbnQgcmVwb3J0cyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0Ml8zJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBoYXZlIHVudGlsIEZyaWRheSB0byBmaW5pc2ggc2V2ZXJhbCBpbXBvcnRhbnQgcmVwb3J0cyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzOCIgbmFtZT0iQW5uaWVDaGF0Ml8zIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBoYXZlIHVudGlsIEZyaWRheSB0byBmaW5pc2ggc2V2ZXJhbCBpbXBvcnRhbnQgcmVwb3J0cyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgaGF2ZSB1bnRpbCBGcmlkYXkgdG8gZmluaXNoIHNldmVyYWwgaW1wb3J0YW50IHJlcG9ydHMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgaGF2ZSB1bnRpbCBGcmlkYXkgdG8gZmluaXNoIHNldmVyYWwgaW1wb3J0YW50IHJlcG9ydHMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7bW9sa2tlb2xra2xvbGtrVW9sa2t5b2xra0pvbGtram9sa2tlJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNtb2xra2VvbGtrbG9sa2tVb2xra3lvbGtrSm9sa2tqb2xra2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIHRoaW5rIEnigJltIGdvaW5nIHRvIGxvc2UgbXkgam9iIGlmIEkgZG9u4oCZdCBnZXQgdGhlbSBkb25lIGluIHRpbWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgdGhpbmsgSeKAmW0gZ29pbmcgdG8gbG9zZSBteSBqb2IgaWYgSSBkb27igJl0IGdldCB0aGVtIGRvbmUgaW4gdGltZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzOSIgbmFtZT0iQW5uaWVDaGF0Ml80IiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0Ml80JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgdGhpbmsgSeKAmW0gZ29pbmcgdG8gbG9zZSBteSBqb2IgaWYgSSBkb27igJl0IGdldCB0aGVtIGRvbmUgaW4gdGltZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgdGhpbmsgSeKAmW0gZ29pbmcgdG8gbG9zZSBteSBqb2IgaWYgSSBkb27igJl0IGdldCB0aGVtIGRvbmUgaW4gdGltZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSB0aGluayBJ4oCZbSBnb2luZyB0byBsb3NlIG15IGpvYiBpZiBJIGRvbuKAmXQgZ2V0IHRoZW0gZG9uZSBpbiB0aW1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgdGhhdCBpZGlvdCBpcyBwdXR0aW5nIHlvdSB0aHJvdWdoIHRoaXMmcXVvdDsgJnF1b3Q7UG9sa2tBb2xra3lvbGtrRm9sa2ttb2xra3NvbGtrWG9sa2tyb2xra3lvbGtrZm9sa2t0b2xra29vbGtrZm9sa2tHb2xra1JvbGtrRiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGNhbuKAmXQgYmVsaWV2ZSB0aGF0IGlkaW90IGlzIHB1dHRpbmcgeW91IHRocm91Z2ggdGhpcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgdGhhdCBpZGlvdCBpcyBwdXR0aW5nIHlvdSB0aHJvdWdoIHRoaXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjZzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0VzcGVjaWFsbHkgYWZ0ZXIgeW91IHZvbHVudGVlcmVkIHNpbmNlIG5vIG9uZSBlbHNlIHdhbnRlZCB0byBsZWF2ZSB0aGUgY2l0eSBmb3Igc28gbG9uZyZxdW90OyAmcXVvdDtJb2xra3BvbGtrRG9sa2tsb2xra2NvbGtreG9sa2tKb2xra0RvbGtrWW9sa2tQb2xra1VvbGtrUG9sa2tMb2xra05vbGtrUW9sa2tIJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0VzcGVjaWFsbHkgYWZ0ZXIgeW91IHZvbHVudGVlcmVkIHNpbmNlIG5vIG9uZSBlbHNlIHdhbnRlZCB0byBsZWF2ZSB0aGUgY2l0eSBmb3Igc28gbG9uZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7RXNwZWNpYWxseSBhZnRlciB5b3Ugdm9sdW50ZWVyZWQgc2luY2Ugbm8gb25lIGVsc2Ugd2FudGVkIHRvIGxlYXZlIHRoZSBjaXR5IGZvciBzbyBsb25nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtIb2xra3ZvbGtrTG9sa2tVb2xra0hvbGtrdm9sa2tDb2xra0MmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuMXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0hvbGtrdm9sa2tMb2xra1VvbGtrSG9sa2t2b2xra0NvbGtrQyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgcmVhbGx5IHRoaW5rIHRoaXMgb2xkIG1hbiBoYXRlcyBtZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0Ml81JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSByZWFsbHkgdGhpbmsgdGhpcyBvbGQgbWFuIGhhdGVzIG1lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml81JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQwIiBuYW1lPSJBbm5pZUNoYXQyXzUiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSByZWFsbHkgdGhpbmsgdGhhdCBvbGQgbWFuIGhhdGVzIG1lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSByZWFsbHkgdGhpbmsgdGhhdCBvbGQgbWFuIGhhdGVzIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIHJlYWxseSB0aGluayB0aGF0IG9sZCBtYW4gaGF0ZXMgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Tm9sa2t2b2xra3ZvbGtrT29sa2tRb2xra3VvbGtrZG9sa2tuJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNOb2xra3ZvbGtrdm9sa2tPb2xra1FvbGtrdW9sa2tkb2xra24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtIb25lc3RseSwgSeKAmW0gc28gc3RyZXNzZWQgcmlnaHQgbm93JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQyXzYmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtIb25lc3RseSwgSeKAmW0gc28gc3RyZXNzZWQgcmlnaHQgbm93JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml82JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQxIiBuYW1lPSJBbm5pZUNoYXQyXzYiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCw2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfNiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtIb25lc3RseSwgSeKAmW0gc28gc3RyZXNzZWQgcmlnaHQgbm93JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SG9uZXN0bHksIEnigJltIHNvIHN0cmVzc2VkIHJpZ2h0IG5vdyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SG9uZXN0bHksIEnigJltIHNvIHN0cmVzc2VkIHJpZ2h0IG5vdyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDthb2xra2RvbGtrcG9sa2tub2xra3hvbGtrWm9sa2twb2xra24mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2FvbGtrZG9sa2twb2xra25vbGtreG9sa2tab2xra3BvbGtrbiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O/CfmKUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfNyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O/CfmKUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDIiIG5hbWU9IkFubmllQ2hhdDJfNyIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0Ml83JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfc3RyZXNzZWQud2VicCZxdW90OyB0cnVlICZxdW90O1lvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfc3RyZXNzZWQud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7U29sa2tCb2xra0NvbGtrVm9sa2tob2xra1hvbGtreG9sa2tKJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNTb2xra0JvbGtrQ29sa2tWb2xra2hvbGtrWG9sa2t4b2xra0omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGZlZWwgbGlrZSB0aGlzIGpvYiBpcyBkcml2aW5nIG1lIGluc2FuZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0Ml84JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBmZWVsIGxpa2UgdGhpcyBqb2IgaXMgZHJpdmluZyBtZSBpbnNhbmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzgmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDMiIG5hbWU9IkFubmllQ2hhdDJfOCIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0Ml84JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgZmVlbCBsaWtlIHRoaXMgam9iIGlzIGRyaXZpbmcgbWUgaW5zYW5lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBmZWVsIGxpa2UgdGhpcyBqb2IgaXMgZHJpdmluZyBtZSBpbnNhbmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgZmVlbCBsaWtlIHRoaXMgam9iIGlzIGRyaXZpbmcgbWUgaW5zYW5lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7WW91IGtub3csIGlmIHlvdSB3YW50IHRvIHF1aXQgYW5kIGNvbWUgYmFjayB0byBtZSwgeW91IGhhdmUgbXkgZnVsbCBzdXBwb3J0JnF1b3Q7ICZxdW90O3pvbGtrZG9sa2tIb2xra1VvbGtraW9sa2tFb2xra3dvbGtrYW9sa2txb2xra0hvbGtrbW9sa2t5b2xra3hvbGtra29sa2tkb2xra1cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGtub3csIGlmIHlvdSB3YW50IHRvIHF1aXQgYW5kIGNvbWUgYmFjayB0byBtZSwgeW91IGhhdmUgbXkgZnVsbCBzdXBwb3J0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtZb3Uga25vdywgaWYgeW91IHdhbnQgdG8gcXVpdCBhbmQgY29tZSBiYWNrIHRvIG1lLCB5b3UgaGF2ZSBteSBmdWxsIHN1cHBvcnQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0NvbGtrZW9sa2t3b2xra0JvbGtrcG9sa2txb2xra0VvbGtrUyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjQ29sa2tlb2xra3dvbGtrQm9sa2twb2xra3FvbGtrRW9sa2tTJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBrbm93IGJhYmUsIGJ1dCB3aXRoIHRoZSBob3VzZSBtb3J0Z2FnZSBhbmQgdGhpcyBtYXJrZXTigKYmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfOSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kga25vdyBiYWJlLCBidXQgd2l0aCB0aGUgaG91c2UgbW9ydGdhZ2UgYW5kIHRoaXMgbWFya2V04oCmJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml85JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ0IiBuYW1lPSJBbm5pZUNoYXQyXzkiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSw2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfOSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGtub3cgYmFiZSwgYnV0IHdpdGggdGhlIGhvdXNlIG1vcnRnYWdlIGFuZCB0aGlzIG1hcmtldOKApiZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kga25vdyBiYWJlLCBidXQgd2l0aCB0aGUgaG91c2UgbW9ydGdhZ2UgYW5kIHRoaXMgbWFya2V04oCmJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGtub3cgYmFiZSwgYnV0IHdpdGggdGhlIGhvdXNlIG1vcnRnYWdlIGFuZCB0aGlzIG1hcmtldOKApiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt2b2xra2dvbGtrU29sa2tYb2xra0dvbGtrWm9sa2tlb2xra2smcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3ZvbGtrZ29sa2tTb2xra1hvbGtrR29sa2tab2xra2VvbGtrayZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kganVzdCBjYW7igJl0IGRvIHRoYXQuJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQyXzEwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBqdXN0IGNhbuKAmXQgZG8gdGhhdC4mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzEwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ1IiBuYW1lPSJBbm5pZUNoYXQyXzEwIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzEwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kganVzdCBjYW7igJl0IGRvIHRoYXQuJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBqdXN0IGNhbuKAmXQgZG8gdGhhdC4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kganVzdCBjYW7igJl0IGRvIHRoYXQuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBrbm93IGhvbmV5LCBJIGtub3cuJnF1b3Q7ICZxdW90O1hvbGtrWG9sa2tWb2xra29vbGtraG9sa2tHb2xra2pvbGtram9sa2tYb2xra2RvbGtrY29sa2tab2xra0pvbGtrem9sa2tNb2xra00mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBrbm93IGhvbmV5LCBJIGtub3cuJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGtub3cgaG9uZXksIEkga25vdy4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS40cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0J1dCBJIGRvbuKAmXQgd2FudCB5b3VyIGxpZmUgdG8gdHVybiBpbnRvIGhlbGwgZWl0aGVyJnF1b3Q7ICZxdW90O3pvbGtrcG9sa2tyb2xra0hvbGtrZW9sa2tqb2xra2NvbGtrdm9sa2tQb2xra3hvbGtrd29sa2tzb2xra0xvbGtrVG9sa2tSb2xra0kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IEkgZG9u4oCZdCB3YW50IHlvdXIgbGlmZSB0byB0dXJuIGludG8gaGVsbCBlaXRoZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0J1dCBJIGRvbuKAmXQgd2FudCB5b3VyIGxpZmUgdG8gdHVybiBpbnRvIGhlbGwgZWl0aGVyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIHdpc2ggeW91IHdlcmUgaGVyZSBzbyBJIGNvdWxkIGhlbHAgeW91IGRlLXN0cmVzcyZxdW90OyAmcXVvdDt2b2xra0dvbGtrU29sa2tXb2xra25vbGtrcG9sa2tab2xra3lvbGtrQ29sa2tLb2xra0lvbGtrWW9sa2tEb2xra2FvbGtrRG9sa2tPJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgd2lzaCB5b3Ugd2VyZSBoZXJlIHNvIEkgY291bGQgaGVscCB5b3UgZGUtc3RyZXNzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIHdpc2ggeW91IHdlcmUgaGVyZSBzbyBJIGNvdWxkIGhlbHAgeW91IGRlLXN0cmVzcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7d29sa2tqb2xra0lvbGtrcG9sa2tqb2xra0NvbGtrTm9sa2t3JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjhzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN3b2xra2pvbGtrSW9sa2twb2xra2pvbGtrQ29sa2tOb2xra3cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDvwn6W1JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQyXzExJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q78J+ltSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMTEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDYiIG5hbWU9IkFubmllQ2hhdDJfMTEiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSw2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMTEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9sZXdkX2ZhY2Uud2VicCZxdW90OyB0cnVlICZxdW90O1lvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbGV3ZF9mYWNlLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1FvbGtrUG9sa2tRb2xra1RvbGtrR29sa2tmb2xra0xvbGtrdiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjUW9sa2tQb2xra1FvbGtrVG9sa2tHb2xra2ZvbGtrTG9sa2t2JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WW91IGhhdmUgbm8gaWRlYSBob3cgbXVjaCBJ4oCZZCBnaXZlIHRvIGJlIHRoZXJl4oCmJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQyXzEyJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WW91IGhhdmUgbm8gaWRlYSBob3cgbXVjaCBJ4oCZZCBnaXZlIHRvIGJlIHRoZXJl4oCmJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml8xMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0NyIgbmFtZT0iQW5uaWVDaGF0Ml8xMiIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0Ml8xMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZb3UgaGF2ZSBubyBpZGVhIGhvdyBtdWNoIEnigJlkIGdpdmUgdG8gYmUgdGhlcmXigKYmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3UgaGF2ZSBubyBpZGVhIGhvdyBtdWNoIEnigJlkIGdpdmUgdG8gYmUgdGhlcmXigKYmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdSBoYXZlIG5vIGlkZWEgaG93IG11Y2ggSeKAmWQgZ2l2ZSB0byBiZSB0aGVyZeKApiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtNb2xra2pvbGtrbm9sa2tRb2xra1RvbGtrZ29sa2tQb2xra1gmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I01vbGtram9sa2tub2xra1FvbGtrVG9sa2tnb2xra1BvbGtrWCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1Rocm93IHlvdSBvbiB0aGUgYmVkJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQyXzEzJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhyb3cgeW91IG9uIHRoZSBiZWQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzEzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ4IiBuYW1lPSJBbm5pZUNoYXQyXzEzIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzEzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1Rocm93IHlvdSBvbiB0aGUgYmVkJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhyb3cgeW91IG9uIHRoZSBiZWQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1Rocm93IHlvdSBvbiB0aGUgYmVkJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0hvbGtrQ29sa2tKb2xra3pvbGtreG9sa2tEb2xra2JvbGtrZyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjSG9sa2tDb2xra0pvbGtrem9sa2t4b2xra0RvbGtrYm9sa2tnJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7S2lzcyB5b3VyIG5lY2smcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMTQmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtLaXNzIHlvdXIgbmVjayZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMTQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDkiIG5hbWU9IkFubmllQ2hhdDJfMTQiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzE0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0tpc3MgeW91ciBuZWNrJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7S2lzcyB5b3VyIG5lY2smcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0tpc3MgeW91ciBuZWNrJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O01vbGtrcm9sa2tLb2xra1RvbGtrbm9sa2tQb2xra0pvbGtreiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjTW9sa2tyb2xra0tvbGtrVG9sa2tub2xra1BvbGtrSm9sa2t6JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7Qml0ZSB5b3VyIG5pcHBsZXMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMTUmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtCaXRlIHlvdXIgbmlwcGxlcyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMTUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTAiIG5hbWU9IkFubmllQ2hhdDJfMTUiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzE1JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0JpdGUgeW91ciBuaXBwbGVzJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Qml0ZSB5b3VyIG5pcHBsZXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0JpdGUgeW91ciBuaXBwbGVzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1VvbGtrbW9sa2tKb2xra1FvbGtrRm9sa2tvb2xra3dvbGtrQyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjVW9sa2ttb2xra0pvbGtrUW9sa2tGb2xra29vbGtrd29sa2tDJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7V2F0Y2ggc29tZW9uZSBlbHNlIHJpcCB0aGF0IHB1c3N5IGFwYXJ0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQyXzE2JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7V2F0Y2ggc29tZW9uZSBlbHNlIHJpcCB0aGF0IHB1c3N5IGFwYXJ0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml8xNiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1MSIgbmFtZT0iQW5uaWVDaGF0Ml8xNiIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0Ml8xNiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtXYXRjaCBzb21lb25lIGVsc2UgcmlwIHRoYXQgcHVzc3kgYXBhcnQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXYXRjaCBzb21lb25lIGVsc2UgcmlwIHRoYXQgcHVzc3kgYXBhcnQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1dhdGNoIHNvbWVvbmUgZWxzZSByaXAgdGhhdCBwdXNzeSBhcGFydCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9zdXJwcmlzZS53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfc3VycHJpc2Uud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1lvdSB3ZXJlIG1ha2luZyBtZSB3ZXQgdW50aWwgdGhhdCBsYXN0IHBhcnQmcXVvdDsgJnF1b3Q7Um9sa2tSb2xra3BvbGtrdm9sa2tIb2xra2RvbGtrbm9sa2tBb2xra0pvbGtreW9sa2tab2xra0hvbGtram9sa2tJb2xra1ZvbGtrUiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3Ugd2VyZSBtYWtpbmcgbWUgd2V0IHVudGlsIHRoYXQgbGFzdCBwYXJ0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtZb3Ugd2VyZSBtYWtpbmcgbWUgd2V0IHVudGlsIHRoYXQgbGFzdCBwYXJ0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuOHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtXaGF0IGRvIHlvdSBtZWFuIGJ5IHRoYXQ/JnF1b3Q7ICZxdW90O1FvbGtrQm9sa2tIb2xra0lvbGtrSm9sa2tkb2xra0pvbGtrdm9sa2tub2xra1VvbGtreG9sa2tzb2xra1RvbGtrTW9sa2tjb2xra3YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2hhdCBkbyB5b3UgbWVhbiBieSB0aGF0PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7V2hhdCBkbyB5b3UgbWVhbiBieSB0aGF0PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7dW9sa2tHb2xra1NvbGtrZW9sa2tRb2xra3FvbGtrZ29sa2t1JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjBzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN1b2xra0dvbGtrU29sa2tlb2xra1FvbGtrcW9sa2tnb2xra3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtTb3JyeSwgaXQgd2FzIGp1c3QgYSBqb2tlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQyXzE3JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7U29ycnksIGl0IHdhcyBqdXN0IGEgam9rZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMTcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTIiIG5hbWU9IkFubmllQ2hhdDJfMTciIHRhZ3M9IiIgcG9zaXRpb249IjIyNSw3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMTcmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7U29ycnksIGl0IHdhcyBqdXN0IGEgam9rZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1NvcnJ5LCBpdCB3YXMganVzdCBhIGpva2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1NvcnJ5LCBpdCB3YXMganVzdCBhIGpva2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfd2hhdC53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfd2hhdC53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7WW91IHVzdWFsbHkgYmx1cnQgb3V0IHRoaW5ncyBsaWtlIHRoaXMgd2hlbiB5b3XigJlyZSBhZnJhaWQgdG8gc2F5IHNvbWV0aGluZyBkaXJlY3RseSZxdW90OyAmcXVvdDtRb2xra0pvbGtrQ29sa2tMb2xra2VvbGtrd29sa2tLb2xra21vbGtrdG9sa2tTb2xra3BvbGtrZW9sa2tGb2xra2FvbGtrRG9sa2t6JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSB1c3VhbGx5IGJsdXJ0IG91dCB0aGluZ3MgbGlrZSB0aGlzIHdoZW4geW914oCZcmUgYWZyYWlkIHRvIHNheSBzb21ldGhpbmcgZGlyZWN0bHkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdSB1c3VhbGx5IGJsdXJ0IG91dCB0aGluZ3MgbGlrZSB0aGlzIHdoZW4geW914oCZcmUgYWZyYWlkIHRvIHNheSBzb21ldGhpbmcgZGlyZWN0bHkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0RvbuKAmXQgZm9yZ2V0IEkga25vdyB5b3UgdG9vIHdlbGwmcXVvdDsgJnF1b3Q7Sm9sa2thb2xra1JvbGtrc29sa2tOb2xra05vbGtrV29sa2tkb2xra1RvbGtrU29sa2tGb2xra2FvbGtrV29sa2tnb2xra2pvbGtrRSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEb27igJl0IGZvcmdldCBJIGtub3cgeW91IHRvbyB3ZWxsJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtEb27igJl0IGZvcmdldCBJIGtub3cgeW91IHRvbyB3ZWxsJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtBcmUgeW91IHNheWluZ+KApiZxdW90OyAmcXVvdDtRb2xra1JvbGtrQ29sa2tzb2xra0hvbGtrbG9sa2tWb2xra21vbGtrT29sa2tPb2xra3hvbGtrSG9sa2tOb2xra0xvbGtrYW9sa2toJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FyZSB5b3Ugc2F5aW5n4oCmJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtBcmUgeW91IHNheWluZ+KApiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QXJlIHlvdSBpbnRvIHRoYXQga2luZCBvZiB0aGluZz8mcXVvdDsgJnF1b3Q7VG9sa2tDb2xra3FvbGtrTG9sa2tob2xra3dvbGtrWm9sa2tnb2xra0xvbGtreW9sa2tyb2xra2dvbGtrSG9sa2tmb2xra2VvbGtraSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBcmUgeW91IGludG8gdGhhdCBraW5kIG9mIHRoaW5nPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QXJlIHlvdSBpbnRvIHRoYXQga2luZCBvZiB0aGluZz8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O29vbGtrd29sa2txb2xra1JvbGtrbW9sa2thb2xra3pvbGtrYSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNi44cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjb29sa2t3b2xra3FvbGtrUm9sa2ttb2xra2FvbGtrem9sa2thJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SeKAmW0gc29ycnkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMTgmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJ4oCZbSBzb3JyeSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMTgmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTMiIG5hbWU9IkFubmllQ2hhdDJfMTgiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCw3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMTgmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SeKAmW0gc29ycnkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBzb3JyeSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmW0gc29ycnkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7b29sa2tpb2xra1lvbGtram9sa2tWb2xra1ZvbGtrTm9sa2t6JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNvb2xra2lvbGtrWW9sa2tqb2xra1ZvbGtrVm9sa2tOb2xra3omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJdOKAmXMganVzdCB0aGF0IEnigJltIHNvIHN0cmVzc2VkIHdpdGggYWxsIHRoaXMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMTkmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJdOKAmXMganVzdCB0aGF0IEnigJltIHNvIHN0cmVzc2VkIHdpdGggYWxsIHRoaXMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzE5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjU0IiBuYW1lPSJBbm5pZUNoYXQyXzE5IiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzE5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0l04oCZcyBqdXN0IHRoYXQgSeKAmW0gc28gc3RyZXNzZWQgd2l0aCBhbGwgdGhpcyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0l04oCZcyBqdXN0IHRoYXQgSeKAmW0gc28gc3RyZXNzZWQgd2l0aCBhbGwgdGhpcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SXTigJlzIGp1c3QgdGhhdCBJ4oCZbSBzbyBzdHJlc3NlZCB3aXRoIGFsbCB0aGlzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3NvbGtrb29sa2t4b2xra3BvbGtrcm9sa2tDb2xra2NvbGtrcCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjc29sa2tvb2xra3hvbGtrcG9sa2tyb2xra0NvbGtrY29sa2twJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QW5kIHdpdGggdGhpcyBsb25nIHRyaXAgYW5kIG5vdCBiZWluZyBhYmxlIHRvIHNlZSB5b3XigKYmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMjAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtBbmQgd2l0aCB0aGlzIGxvbmcgdHJpcCBhbmQgbm90IGJlaW5nIGFibGUgdG8gc2VlIHlvdeKApiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMjAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTUiIG5hbWU9IkFubmllQ2hhdDJfMjAiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCw3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMjAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7QW5kIHdpdGggdGhpcyBsb25nIHRyaXAgYW5kIG5vdCBiZWluZyBhYmxlIHRvIHNlZSB5b3XigKYmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbmQgd2l0aCB0aGlzIGxvbmcgdHJpcCBhbmQgbm90IGJlaW5nIGFibGUgdG8gc2VlIHlvdeKApiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QW5kIHdpdGggdGhpcyBsb25nIHRyaXAgYW5kIG5vdCBiZWluZyBhYmxlIHRvIHNlZSB5b3XigKYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7TG9sa2trb2xra0lvbGtrT29sa2trb2xra0tvbGtrUG9sa2tFJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNMb2xra2tvbGtrSW9sa2tPb2xra2tvbGtrS29sa2tQb2xra0UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGd1ZXNzIGl0IG1hZGUgbWUgaG9ybmllciB0aGFuIHVzdWFsJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQyXzIxJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBndWVzcyBpdCBtYWRlIG1lIGhvcm5pZXIgdGhhbiB1c3VhbCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMjEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTYiIG5hbWU9IkFubmllQ2hhdDJfMjEiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSw3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMjEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBndWVzcyBpdCBtYWRlIG1lIGhvcm5pZXIgdGhhbiB1c3VhbCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZ3Vlc3MgaXQgbWFkZSBtZSBob3JuaWVyIHRoYW4gdXN1YWwmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgZ3Vlc3MgaXQgbWFkZSBtZSBob3JuaWVyIHRoYW4gdXN1YWwmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtPa2F5LCBJIGdldCB0aGF0JnF1b3Q7ICZxdW90O29vbGtrSm9sa2tHb2xra2VvbGtrVm9sa2tFb2xra2dvbGtrRG9sa2thb2xra2dvbGtrTG9sa2tBb2xra2hvbGtreG9sa2tFb2xra0kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2theSwgSSBnZXQgdGhhdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7T2theSwgSSBnZXQgdGhhdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QnV0IHRoYXQgbWVhbnMgeW91IGhhdmUgdGhhdCBkZXNpcmUmcXVvdDsgJnF1b3Q7dG9sa2tOb2xra2tvbGtrTm9sa2txb2xra3RvbGtrdW9sa2tUb2xra3dvbGtrQm9sa2twb2xra3JvbGtrUG9sa2tNb2xra3RvbGtrRyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgdGhhdCBtZWFucyB5b3UgaGF2ZSB0aGF0IGRlc2lyZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QnV0IHRoYXQgbWVhbnMgeW91IGhhdmUgdGhhdCBkZXNpcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0RvIHlvdSB3YW50IHRvIHNlZSBtZSwgbGlrZSwgZ2V0dGluZyBmdWNrZWQgYnkgb3RoZXIgZ3V5cz8mcXVvdDsgJnF1b3Q7dW9sa2t1b2xra2RvbGtrcG9sa2tTb2xra0pvbGtrUW9sa2tUb2xra3FvbGtrcW9sa2tob2xra0dvbGtrWG9sa2trb2xra0VvbGtrViZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEbyB5b3Ugd2FudCB0byBzZWUgbWUsIGxpa2UsIGdldHRpbmcgZnVja2VkIGJ5IG90aGVyIGd1eXM/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtEbyB5b3Ugd2FudCB0byBzZWUgbWUsIGxpa2UsIGdldHRpbmcgZnVja2VkIGJ5IG90aGVyIGd1eXM/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtQb2xra1RvbGtrWm9sa2tRb2xra1hvbGtrTW9sa2tGb2xra24mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuNHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1BvbGtrVG9sa2tab2xra1FvbGtrWG9sa2tNb2xra0ZvbGtrbiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1llYWgsIEnigJl2ZSB0aG91Z2h0IGFib3V0IGl0IGEgZmV3ICZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0Ml8yMmEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZZWFoLCBJ4oCZdmUgdGhvdWdodCBhYm91dCBpdCBhIGZldyAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzIyYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNQb2xra1RvbGtrWm9sa2tRb2xra1hvbGtrTW9sa2tGb2xra24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtNYXliZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0Ml8yMmImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtNYXliZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMjJiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjU3IiBuYW1lPSJBbm5pZUNoYXQyXzIyYSIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0Ml8yMmEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WWVhaCwgSeKAmXZlIHRob3VnaHQgYWJvdXQgaXQgYSBmZXcmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFoLCBJ4oCZdmUgdGhvdWdodCBhYm91dCBpdCBhIGZldyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WWVhaCwgSeKAmXZlIHRob3VnaHQgYWJvdXQgaXQgYSBmZXcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGRvbXN1YiA9ICRkb21zdWIrMSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtrb2xra1JvbGtrWm9sa2tCb2xra0VvbGtrZ29sa2t0b2xra0gmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2tvbGtrUm9sa2tab2xra0JvbGtrRW9sa2tnb2xra3RvbGtrSCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1lvdSBrbm93IEkgbGlrZSB0cnlpbmcgbmV3IHRoaW5ncyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0Ml8yM2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3Uga25vdyBJIGxpa2UgdHJ5aW5nIG5ldyB0aGluZ3MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzIzYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1OCIgbmFtZT0iQW5uaWVDaGF0Ml8yMmIiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSw3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMjJiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O01heWJlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TWF5YmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O01heWJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3VvbGtrcm9sa2tPb2xra05vbGtraG9sa2tRb2xra29vbGtrQyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjdW9sa2tyb2xra09vbGtrTm9sa2tob2xra1FvbGtrb29sa2tDJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBmZWVsIGxpa2UgaXQgY291bGQgYWRkIGEgbmV3IHNwYXJrIHRvIG91ciByZWxhdGlvbnNoaXAmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMjNiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBmZWVsIGxpa2UgaXQgY291bGQgYWRkIGEgbmV3IHNwYXJrIHRvIG91ciByZWxhdGlvbnNoaXAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzIzYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1OSIgbmFtZT0iQW5uaWVDaGF0Ml8yM2EiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzIzYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZb3Uga25vdyBJIGxpa2UgdHJ5aW5nIG5ldyB0aGluZ3MmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3Uga25vdyBJIGxpa2UgdHJ5aW5nIG5ldyB0aGluZ3MmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdSBrbm93IEkgbGlrZSB0cnlpbmcgbmV3IHRoaW5ncyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0J1dCwgd291bGQgeW91IHJlYWxseSBiZSBva2F5IHdpdGggbWUgaGF2aW5nIHNleCB3aXRoIG90aGVyIG1lbj8mcXVvdDsgJnF1b3Q7aW9sa2tOb2xra21vbGtrem9sa2tRb2xra1lvbGtraG9sa2tEb2xra2dvbGtreG9sa2tOb2xra1dvbGtrSG9sa2tIb2xra2VvbGtrSCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQsIHdvdWxkIHlvdSByZWFsbHkgYmUgb2theSB3aXRoIG1lIGhhdmluZyBzZXggd2l0aCBvdGhlciBtZW4/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCdXQsIHdvdWxkIHlvdSByZWFsbHkgYmUgb2theSB3aXRoIG1lIGhhdmluZyBzZXggd2l0aCBvdGhlciBtZW4/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMnMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbm9fd29yZHMud2VicCZxdW90OyB0cnVlICZxdW90O0FubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX25vX3dvcmRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtTb2xra0tvbGtrd29sa2t4b2xra21vbGtrem9sa2tEb2xra3QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuMnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1NvbGtrS29sa2t3b2xra3hvbGtrbW9sa2t6b2xra0RvbGtrdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1dlbGwsIHllYWgsIEkgc3VwcG9zZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0Ml8yNSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1dlbGwsIHllYWgsIEkgc3VwcG9zZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMjUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNjAiIG5hbWU9IkFubmllQ2hhdDJfMjNiIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0Ml8yM2ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBmZWVsIGxpa2UgaXQgY291bGQgYWRkIGEgbmV3IHNwYXJrIHRvIG91ciByZWxhdGlvbnNoaXAmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGZlZWwgbGlrZSBpdCBjb3VsZCBhZGQgYSBuZXcgc3BhcmsgdG8gb3VyIHJlbGF0aW9uc2hpcCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBmZWVsIGxpa2UgaXQgY291bGQgYWRkIGEgbmV3IHNwYXJrIHRvIG91ciByZWxhdGlvbnNoaXAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7aG9sa2t2b2xra3FvbGtrT29sa2tPb2xra3RvbGtrT29sa2tyJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNob2xra3ZvbGtrcW9sa2tPb2xra09vbGtrdG9sa2tPb2xra3ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3Uga25vdywgd2XigJlyZSBwcmV0dHkgcHJlZGljdGFibGUgbW9zdCBvZiB0aGUgdGltZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0Ml8yNGImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3Uga25vdywgd2XigJlyZSBwcmV0dHkgcHJlZGljdGFibGUgbW9zdCBvZiB0aGUgdGltZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMjRiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjYxIiBuYW1lPSJBbm5pZUNoYXQyXzI0YiIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0Ml8yNGImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WW91IGtub3csIHdl4oCZcmUgcHJldHR5IHByZWRpY3RhYmxlIG1vc3Qgb2YgdGhlIHRpbWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3Uga25vdywgd2XigJlyZSBwcmV0dHkgcHJlZGljdGFibGUgbW9zdCBvZiB0aGUgdGltZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW91IGtub3csIHdl4oCZcmUgcHJldHR5IHByZWRpY3RhYmxlIG1vc3Qgb2YgdGhlIHRpbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4zcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtCdXQsIHdvdWxkIHlvdSByZWFsbHkgYmUgb2theSB3aXRoIG1lIGhhdmluZyBzZXggd2l0aCBvdGhlciBtZW4/JnF1b3Q7ICZxdW90O01vbGtrWm9sa2t2b2xra21vbGtrYW9sa2trb2xra0lvbGtrRW9sa2tMb2xra3BvbGtrTG9sa2tCb2xra1BvbGtrb29sa2twb2xra0UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0LCB3b3VsZCB5b3UgcmVhbGx5IGJlIG9rYXkgd2l0aCBtZSBoYXZpbmcgc2V4IHdpdGggb3RoZXIgbWVuPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QnV0LCB3b3VsZCB5b3UgcmVhbGx5IGJlIG9rYXkgd2l0aCBtZSBoYXZpbmcgc2V4IHdpdGggb3RoZXIgbWVuPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjJzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX25vX3dvcmRzLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9ub193b3Jkcy53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7aG9sa2t5b2xra0pvbGtrRW9sa2tBb2xra0pvbGtrS29sa2t4JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjJzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNob2xra3lvbGtrSm9sa2tFb2xra0FvbGtrSm9sa2tLb2xra3gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtXZWxsLCB5ZWFoLCBJIHN1cHBvc2UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMjUmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXZWxsLCB5ZWFoLCBJIHN1cHBvc2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzI1JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjYyIiBuYW1lPSJBbm5pZUNoYXQyXzI1IiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzI1JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1dlbGwsIHllYWgsIEkgc3VwcG9zZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dlbGwsIHllYWgsIEkgc3VwcG9zZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7V2VsbCwgeWVhaCwgSSBzdXBwb3NlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2dvbGtrRm9sa2twb2xra3pvbGtrWW9sa2ttb2xra1VvbGtrbyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjZ29sa2tGb2xra3BvbGtrem9sa2tZb2xra21vbGtrVW9sa2tvJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhhdOKAmXMgdGhlIGlkZWEmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMjYmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaGF04oCZcyB0aGUgaWRlYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMjYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNjMiIG5hbWU9IkFubmllQ2hhdDJfMjYiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCw4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMjYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhhdOKAmXMgdGhlIGlkZWEmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGF04oCZcyB0aGUgaWRlYSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhhdOKAmXMgdGhlIGlkZWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfc3VycHJpc2Uud2VicCZxdW90OyB0cnVlICZxdW90O0FubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX3N1cnByaXNlLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtZb3Uga25vdyBJ4oCZZCBkbyBhbnl0aGluZyBmb3IgeW91JnF1b3Q7ICZxdW90O2RvbGtrZm9sa2tFb2xra3RvbGtrVm9sa2tJb2xra2xvbGtrSm9sa2t5b2xra0tvbGtrSW9sa2tPb2xra2lvbGtrSW9sa2thb2xra3MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGtub3cgSeKAmWQgZG8gYW55dGhpbmcgZm9yIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW91IGtub3cgSeKAmWQgZG8gYW55dGhpbmcgZm9yIHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QnV0IEnigJl2ZSBuZXZlciBpbWFnaW5lZCBhbnl0aGluZyBsaWtlIHRoaXMmcXVvdDsgJnF1b3Q7TG9sa2tYb2xra09vbGtrRG9sa2tkb2xra1RvbGtraW9sa2tIb2xra1VvbGtreW9sa2tYb2xra0pvbGtrVG9sa2t6b2xra0JvbGtrUiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgSeKAmXZlIG5ldmVyIGltYWdpbmVkIGFueXRoaW5nIGxpa2UgdGhpcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QnV0IEnigJl2ZSBuZXZlciBpbWFnaW5lZCBhbnl0aGluZyBsaWtlIHRoaXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2JvbGtrRG9sa2tJb2xra0NvbGtrV29sa2tNb2xra3pvbGtrTSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy45cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjYm9sa2tEb2xra0lvbGtrQ29sa2tXb2xra01vbGtrem9sa2tNJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7TWF5YmUgd2Ugc2hvdWxkIGp1c3QgZm9yZ2V0IGl0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQyXzI3JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7TWF5YmUgd2Ugc2hvdWxkIGp1c3QgZm9yZ2V0IGl0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml8yNyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI2NCIgbmFtZT0iQW5uaWVDaGF0Ml8yNyIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0Ml8yNyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtNYXliZSB3ZSBzaG91bGQganVzdCBmb3JnZXQgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtNYXliZSB3ZSBzaG91bGQganVzdCBmb3JnZXQgaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O01heWJlIHdlIHNob3VsZCBqdXN0IGZvcmdldCBpdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtBb2xra3JvbGtram9sa2tVb2xra0hvbGtrTW9sa2tWb2xra2MmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0FvbGtrcm9sa2tqb2xra1VvbGtrSG9sa2tNb2xra1ZvbGtrYyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0xpa2UgSSBzYWlkLCBJ4oCZbSB3YXkgdG9vIHN0cmVzc2VkIHdpdGggZXZlcnl0aGluZyByaWdodCBub3cmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMjgmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtMaWtlIEkgc2FpZCwgSeKAmW0gd2F5IHRvbyBzdHJlc3NlZCB3aXRoIGV2ZXJ5dGhpbmcgcmlnaHQgbm93JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml8yOCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI2NSIgbmFtZT0iQW5uaWVDaGF0Ml8yOCIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0Ml8yOCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtMaWtlIEkgc2FpZCwgSeKAmW0gd2F5IHRvbyBzdHJlc3NlZCB3aXRoIGV2ZXJ5dGhpbmcgcmlnaHQgbm93JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGlrZSBJIHNhaWQsIEnigJltIHdheSB0b28gc3RyZXNzZWQgd2l0aCBldmVyeXRoaW5nIHJpZ2h0IG5vdyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7TGlrZSBJIHNhaWQsIEnigJltIHdheSB0b28gc3RyZXNzZWQgd2l0aCBldmVyeXRoaW5nIHJpZ2h0IG5vdyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtub2xra0pvbGtrV29sa2twb2xra0dvbGtrUW9sa2t2b2xra3QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I25vbGtrSm9sa2tXb2xra3BvbGtrR29sa2tRb2xra3ZvbGtrdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1VuZGVyIG5vcm1hbCBjaXJjdW1zdGFuY2VzLCB0aGlzIHdvdWxkbuKAmXQgaGF2ZSBldmVuIGNvbWUgdXAmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMjkmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtVbmRlciBub3JtYWwgY2lyY3Vtc3RhbmNlcywgdGhpcyB3b3VsZG7igJl0IGhhdmUgZXZlbiBjb21lIHVwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml8yOSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI2NiIgbmFtZT0iQW5uaWVDaGF0Ml8yOSIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0Ml8yOSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtVbmRlciBub3JtYWwgY2lyY3Vtc3RhbmNlcywgdGhpcyB3b3VsZG7igJl0IGhhdmUgZXZlbiBjb21lIHVwJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VW5kZXIgbm9ybWFsIGNpcmN1bXN0YW5jZXMsIHRoaXMgd291bGRu4oCZdCBoYXZlIGV2ZW4gY29tZSB1cCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VW5kZXIgbm9ybWFsIGNpcmN1bXN0YW5jZXMsIHRoaXMgd291bGRu4oCZdCBoYXZlIGV2ZW4gY29tZSB1cCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgZ2V0IHRoYXQmcXVvdDsgJnF1b3Q7Um9sa2t2b2xra1dvbGtrZ29sa2tzb2xra3dvbGtrTG9sa2tmb2xra2NvbGtrSG9sa2tCb2xra3NvbGtrUW9sa2tnb2xra1ZvbGtrZiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGdldCB0aGF0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGdldCB0aGF0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC45cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtCdXQgY2xlYXJseSwgdGhpcyBpcyBzb21ldGhpbmcgeW914oCZdmUgdGhvdWdodCBhYm91dCBiZWZvcmUmcXVvdDsgJnF1b3Q7Qm9sa2tlb2xra05vbGtreG9sa2tmb2xra3JvbGtreG9sa2ttb2xra05vbGtrU29sa2tzb2xra2RvbGtrT29sa2tZb2xra1BvbGtrbiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgY2xlYXJseSwgdGhpcyBpcyBzb21ldGhpbmcgeW914oCZdmUgdGhvdWdodCBhYm91dCBiZWZvcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0J1dCBjbGVhcmx5LCB0aGlzIGlzIHNvbWV0aGluZyB5b3XigJl2ZSB0aG91Z2h0IGFib3V0IGJlZm9yZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SXQgd2FzbuKAmXQganVzdCBhIHNwdXIgb2YgdGhlIG1vbWVudCB0aGluZyZxdW90OyAmcXVvdDtRb2xra2JvbGtrWm9sa2tpb2xra2lvbGtrSm9sa2tyb2xra3hvbGtrR29sa2tKb2xra2hvbGtrdW9sa2t5b2xra2xvbGtrY29sa2t0JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0l0IHdhc27igJl0IGp1c3QgYSBzcHVyIG9mIHRoZSBtb21lbnQgdGhpbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0l0IHdhc27igJl0IGp1c3QgYSBzcHVyIG9mIHRoZSBtb21lbnQgdGhpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3ZvbGtrem9sa2t6b2xra0hvbGtrYm9sa2tub2xra3RvbGtrWiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjdm9sa2t6b2xra3pvbGtrSG9sa2tib2xra25vbGtrdG9sa2taJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WWVhaCwgSeKAmW0gbm90IGdvaW5nIHRvIGRlbnkgaXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMzAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZZWFoLCBJ4oCZbSBub3QgZ29pbmcgdG8gZGVueSBpdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMzAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNjciIG5hbWU9IkFubmllQ2hhdDJfMzAiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCw4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMzAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WWVhaCwgSeKAmW0gbm90IGdvaW5nIHRvIGRlbnkgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFoLCBJ4oCZbSBub3QgZ29pbmcgdG8gZGVueSBpdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WWVhaCwgSeKAmW0gbm90IGdvaW5nIHRvIGRlbnkgaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4ycyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIHNlZeKApiZxdW90OyAmcXVvdDtyb2xra1FvbGtrZm9sa2tqb2xra3JvbGtrVm9sa2tDb2xra0tvbGtrZG9sa2tlb2xra3RvbGtrZW9sa2tzb2xra21vbGtrbm9sa2thJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgc2Vl4oCmJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIHNlZeKApiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SG9uZXN0bHksIHRoaXMgaXMgY2F0Y2hpbmcgbWUgb2ZmIGd1YXJkJnF1b3Q7ICZxdW90O3hvbGtrVW9sa2twb2xra0dvbGtrUm9sa2tlb2xra0VvbGtrQm9sa2tlb2xra3hvbGtrb29sa2tXb2xra3FvbGtrSW9sa2trb2xra1QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SG9uZXN0bHksIHRoaXMgaXMgY2F0Y2hpbmcgbWUgb2ZmIGd1YXJkJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIb25lc3RseSwgdGhpcyBpcyBjYXRjaGluZyBtZSBvZmYgZ3VhcmQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi40cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJltIG5vdCBnb2luZyB0byBqdWRnZSB5b3UsIEkgaGF2ZSBteSBvd24ga2lua3MgdG9vJnF1b3Q7ICZxdW90O01vbGtrYm9sa2tmb2xra3hvbGtrWW9sa2tzb2xra0FvbGtrS29sa2t4b2xra3VvbGtrWm9sa2tqb2xra1FvbGtreG9sa2thb2xra0QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gbm90IGdvaW5nIHRvIGp1ZGdlIHlvdSwgSSBoYXZlIG15IG93biBraW5rcyB0b28mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJltIG5vdCBnb2luZyB0byBqdWRnZSB5b3UsIEkgaGF2ZSBteSBvd24ga2lua3MgdG9vJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtUaG91Z2ggdGhleSBkZWZpbml0ZWx5IGRvbuKAmXQgaW52b2x2ZSBvdGhlciBwZW9wbGUmcXVvdDsgJnF1b3Q7aG9sa2tvb2xra3pvbGtrRG9sa2tub2xra21vbGtrdW9sa2tWb2xra2tvbGtrVG9sa2t5b2xra1JvbGtrV29sa2tlb2xra1RvbGtrZSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaG91Z2ggdGhleSBkZWZpbml0ZWx5IGRvbuKAmXQgaW52b2x2ZSBvdGhlciBwZW9wbGUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1Rob3VnaCB0aGV5IGRlZmluaXRlbHkgZG9u4oCZdCBpbnZvbHZlIG90aGVyIHBlb3BsZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBqdXN0IG5lZWQgc29tZSB0aW1lIHRvIHRoaW5rIGFib3V0IGFsbCBvZiB0aGlzJnF1b3Q7ICZxdW90O2xvbGtrbm9sa2t6b2xra2NvbGtraW9sa2tQb2xra0tvbGtrZG9sa2tkb2xra2ZvbGtrZG9sa2thb2xra0pvbGtrdG9sa2tZb2xra1omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBqdXN0IG5lZWQgc29tZSB0aW1lIHRvIHRoaW5rIGFib3V0IGFsbCBvZiB0aGlzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGp1c3QgbmVlZCBzb21lIHRpbWUgdG8gdGhpbmsgYWJvdXQgYWxsIG9mIHRoaXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2dvbGtrZm9sa2tMb2xra2JvbGtrRG9sa2tQb2xra3FvbGtrRyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNy4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjZ29sa2tmb2xra0xvbGtrYm9sa2tEb2xra1BvbGtrcW9sa2tHJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7T2YgY291cnNlLCBJIHVuZGVyc3RhbmQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMzEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtPZiBjb3Vyc2UsIEkgdW5kZXJzdGFuZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMzEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNjgiIG5hbWU9IkFubmllQ2hhdDJfMzEiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSw4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMzEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7T2YgY291cnNlLCBJIHVuZGVyc3RhbmQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPZiBjb3Vyc2UsIEkgdW5kZXJzdGFuZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7T2YgY291cnNlLCBJIHVuZGVyc3RhbmQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7eG9sa2tGb2xra09vbGtrSW9sa2tBb2xra0xvbGtrUG9sa2tMJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN4b2xra0ZvbGtrT29sa2tJb2xra0FvbGtrTG9sa2tQb2xra0wmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtBbnl3YXksIEkgbmVlZCB0byBrZWVwIHdvcmtpbmcgb24gdGhlc2UgcmVwb3J0cyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0Ml8zMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0FueXdheSwgSSBuZWVkIHRvIGtlZXAgd29ya2luZyBvbiB0aGVzZSByZXBvcnRzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml8zMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI2OSIgbmFtZT0iQW5uaWVDaGF0Ml8zMiIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCw4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7V2XigJlsbCB0YWxrIGxhdGVyJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2XigJlsbCB0YWxrIGxhdGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtXZeKAmWxsIHRhbGsgbGF0ZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7V2XigJlsbCB0YWxrIGxhdGVyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSA9ICZxdW90O0FubmllQ2hhdDJfMTImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfbGFzdF9ob3VyID0gJnF1b3Q7MTE6NDYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdCA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDsxMTo0NiZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7b2ZmbGluZS10ZXh0JnF1b3Q7Jmd0O0FubmllIGlzIG9mZmxpbmUmbHQ7L2RpdiZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9ub3Rlcy5wdXNoKCZxdW90O0kgYWRtaXR0ZWQgdGhhdCBteSBmYW50YXN5IGlzIGZvciBoZXIgdG8gaGF2ZSBzZXggd2l0aCBvdGhlciBtZW4uJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJE5hb21pX3Zpc2libGUgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7SG9uZXN0bHksIEkgaGF2ZSB0byBjb25ncmF0dWxhdGUgeW91JnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRKZW5uYV92aXNpYmxlID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI3MCIgbmFtZT0iQW5uaWVDaGF0M18xIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtIb25leSwgSeKAmW0gc29ycnkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvbmV5LCBJ4oCZbSBzb3JyeSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SG9uZXksIEnigJltIHNvcnJ5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBqdXN0IGZvdW5kIG91dCB0aGF0IE5hb21pIHdyb3RlIHRvIHlvdSZxdW90OyAmcXVvdDtqb2xra3BvbGtreG9sa2tZb2xra1lvbGtrQW9sa2tKb2xra3lvbGtrcW9sa2tHb2xra21vbGtrTW9sa2t5b2xra2ZvbGtrcm9sa2t6JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kganVzdCBmb3VuZCBvdXQgdGhhdCBOYW9taSB3cm90ZSB0byB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kganVzdCBmb3VuZCBvdXQgdGhhdCBOYW9taSB3cm90ZSB0byB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1NoZSB0cmllZCB0byBoaWRlIGl0IGZyb20gbWUsIGJ1dCBJIGtub3cgaGVyIHRvbyB3ZWxsJnF1b3Q7ICZxdW90O2xvbGtrTG9sa2t1b2xra0dvbGtrZm9sa2tOb2xra3hvbGtrbW9sa2tpb2xra2NvbGtrY29sa2tTb2xra3NvbGtrTG9sa2tqb2xra1cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U2hlIHRyaWVkIHRvIGhpZGUgaXQgZnJvbSBtZSwgYnV0IEkga25vdyBoZXIgdG9vIHdlbGwmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1NoZSB0cmllZCB0byBoaWRlIGl0IGZyb20gbWUsIGJ1dCBJIGtub3cgaGVyIHRvbyB3ZWxsJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtZb3Uga25vdyBJ4oCZdmUgYWx3YXlzIHRhbGtlZCBhYm91dCBldmVyeXRoaW5nIHdpdGggaGVyIHNpbmNlIGhpZ2ggc2Nob29sJnF1b3Q7ICZxdW90O3FvbGtrQW9sa2t4b2xra0NvbGtrZG9sa2t4b2xra3BvbGtrb29sa2tQb2xra0lvbGtrVW9sa2tab2xra3RvbGtrSG9sa2tJb2xra1UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGtub3cgSeKAmXZlIGFsd2F5cyB0YWxrZWQgYWJvdXQgZXZlcnl0aGluZyB3aXRoIGhlciBzaW5jZSBoaWdoIHNjaG9vbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW91IGtub3cgSeKAmXZlIGFsd2F5cyB0YWxrZWQgYWJvdXQgZXZlcnl0aGluZyB3aXRoIGhlciBzaW5jZSBoaWdoIHNjaG9vbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjhzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QnV0IEkgZGlkbuKAmXQgdGhpbmsgc2hl4oCZZCBhY3R1YWxseSBzYXkgYW55dGhpbmcgdG8geW91JnF1b3Q7ICZxdW90O3VvbGtra29sa2tvb2xra1ZvbGtrV29sa2t6b2xra09vbGtrSG9sa2tDb2xra29vbGtrWG9sa2tTb2xra2dvbGtrbG9sa2t0b2xra2UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IEkgZGlkbuKAmXQgdGhpbmsgc2hl4oCZZCBhY3R1YWxseSBzYXkgYW55dGhpbmcgdG8geW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCdXQgSSBkaWRu4oCZdCB0aGluayBzaGXigJlkIGFjdHVhbGx5IHNheSBhbnl0aGluZyB0byB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3VvbGtrSG9sa2twb2xra0JvbGtrZW9sa2tDb2xra0ZvbGtrRyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNy40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjdW9sa2tIb2xra3BvbGtrQm9sa2tlb2xra0NvbGtrRm9sa2tHJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SXTigJlzIG9rYXksIEkgdW5kZXJzdGFuZCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M18yYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0l04oCZcyBva2F5LCBJIHVuZGVyc3RhbmQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQzXzJhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3VvbGtrSG9sa2twb2xra0JvbGtrZW9sa2tDb2xra0ZvbGtrRyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgd291bGTigJl2ZSBwcmVmZXJyZWQgaWYgc2hlIGhhZG7igJl0IGZvdW5kIG91dCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M18yYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgd291bGTigJl2ZSBwcmVmZXJyZWQgaWYgc2hlIGhhZG7igJl0IGZvdW5kIG91dCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDNfMmImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI3MSIgbmFtZT0iQW5uaWVDaGF0M18yYSIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0M18yYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJdOKAmXMgb2theSwgSSB1bmRlcnN0YW5kJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXTigJlzIG9rYXksIEkgdW5kZXJzdGFuZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SXTigJlzIG9rYXksIEkgdW5kZXJzdGFuZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkZG9tc3ViID0gJGRvbXN1Yi0xJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1dvbGtrQ29sa2tMb2xra0ZvbGtraW9sa2trb2xra0xvbGtraSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjV29sa2tDb2xra0xvbGtrRm9sa2tpb2xra2tvbGtrTG9sa2tpJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBrbm93IHlvdSBnaXJscyB0ZWxsIGVhY2ggb3RoZXIgZXZlcnl0aGluZyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M18zYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kga25vdyB5b3UgZ2lybHMgdGVsbCBlYWNoIG90aGVyIGV2ZXJ5dGhpbmcmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQzXzNhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjcyIiBuYW1lPSJBbm5pZUNoYXQzXzJiIiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQzXzJiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgd291bGTigJl2ZSBwcmVmZXJyZWQgaWYgc2hlIGhhZG7igJl0IGZvdW5kIG91dCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgd291bGTigJl2ZSBwcmVmZXJyZWQgaWYgc2hlIGhhZG7igJl0IGZvdW5kIG91dCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSB3b3VsZOKAmXZlIHByZWZlcnJlZCBpZiBzaGUgaGFkbuKAmXQgZm91bmQgb3V0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRkb21zdWIgPSAkZG9tc3ViKzEmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7RG9sa2tnb2xra0JvbGtrVm9sa2tNb2xra1lvbGtrVm9sa2twJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNEb2xra2dvbGtrQm9sa2tWb2xra01vbGtrWW9sa2tWb2xra3AmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJdCBmZWVscyBzdHJhbmdlIHRoYXQgc29tZW9uZSBlbHNlIGtub3dzJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQzXzNiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SXQgZmVlbHMgc3RyYW5nZSB0aGF0IHNvbWVvbmUgZWxzZSBrbm93cyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDNfM2ImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNzMiIG5hbWU9IkFubmllQ2hhdDNfM2EiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCw5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDNfM2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBrbm93IHlvdSBnaXJscyB0ZWxsIGVhY2ggb3RoZXIgZXZlcnl0aGluZyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kga25vdyB5b3UgZ2lybHMgdGVsbCBlYWNoIG90aGVyIGV2ZXJ5dGhpbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kga25vdyB5b3UgZ2lybHMgdGVsbCBlYWNoIG90aGVyIGV2ZXJ5dGhpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJdOKAmXMganVzdCB0aGF0IHRoaXMgd2FzIHNvIHVuZXhwZWN0ZWQmcXVvdDsgJnF1b3Q7Zm9sa2twb2xra25vbGtrem9sa2tqb2xra0ZvbGtrRG9sa2tQb2xra2lvbGtrZW9sa2tCb2xra2dvbGtrcm9sa2tPb2xra1NvbGtreiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdOKAmXMganVzdCB0aGF0IHRoaXMgd2FzIHNvIHVuZXhwZWN0ZWQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0l04oCZcyBqdXN0IHRoYXQgdGhpcyB3YXMgc28gdW5leHBlY3RlZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBuZWVkZWQgdG8gaGVhciBzb21lb25lIGVsc2XigJlzIG9waW5pb24mcXVvdDsgJnF1b3Q7UG9sa2tob2xra0pvbGtrYW9sa2tFb2xra2dvbGtrQ29sa2tRb2xra2pvbGtrdG9sa2tzb2xra2xvbGtreW9sa2tMb2xra0hvbGtrbSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIG5lZWRlZCB0byBoZWFyIHNvbWVvbmUgZWxzZeKAmXMgb3BpbmlvbiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBuZWVkZWQgdG8gaGVhciBzb21lb25lIGVsc2XigJlzIG9waW5pb24mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0Zyb20gc29tZW9uZSB3aG8ga25vd3MgZXZlcnl0aGluZyBhYm91dCBtZSZxdW90OyAmcXVvdDtFb2xra0dvbGtrWG9sa2tlb2xra0JvbGtraW9sa2tjb2xra3FvbGtrcW9sa2tlb2xra3pvbGtrZW9sa2tGb2xra1hvbGtrRm9sa2tzJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0Zyb20gc29tZW9uZSB3aG8ga25vd3MgZXZlcnl0aGluZyBhYm91dCBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7RnJvbSBzb21lb25lIHdobyBrbm93cyBldmVyeXRoaW5nIGFib3V0IG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtCb2xra2dvbGtrTG9sa2tib2xra3ZvbGtrUG9sa2tRb2xra1YmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuMnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0JvbGtrZ29sa2tMb2xra2JvbGtrdm9sa2tQb2xra1FvbGtrViZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgY2FuIHVuZGVyc3RhbmQgdGhhdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M180JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBjYW4gdW5kZXJzdGFuZCB0aGF0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0M180JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9Ijc0IiBuYW1lPSJBbm5pZUNoYXQzXzNiIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQzXzNiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0l0IGZlZWxzIHN0cmFuZ2UgdGhhdCBzb21lb25lIGVsc2Uga25vd3MmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdCBmZWVscyBzdHJhbmdlIHRoYXQgc29tZW9uZSBlbHNlIGtub3dzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJdCBmZWVscyBzdHJhbmdlIHRoYXQgc29tZW9uZSBlbHNlIGtub3dzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBrbm93LCBhbmQgSeKAmW0gc29ycnkmcXVvdDsgJnF1b3Q7VG9sa2twb2xra0lvbGtrWG9sa2txb2xra2hvbGtrdG9sa2tqb2xra2JvbGtrSG9sa2t3b2xra2pvbGtrbG9sa2tJb2xra2hvbGtrTSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGtub3csIGFuZCBJ4oCZbSBzb3JyeSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBrbm93LCBhbmQgSeKAmW0gc29ycnkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS40cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0l04oCZcyBqdXN0IHRoYXQgdGhpcyB3YXMgc28gdW5leHBlY3RlZCZxdW90OyAmcXVvdDt5b2xra2pvbGtrQ29sa2t1b2xra2JvbGtrWG9sa2t6b2xra1NvbGtrdm9sa2tsb2xra3lvbGtrTm9sa2tGb2xra2xvbGtrd29sa2tmJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0l04oCZcyBqdXN0IHRoYXQgdGhpcyB3YXMgc28gdW5leHBlY3RlZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SXTigJlzIGp1c3QgdGhhdCB0aGlzIHdhcyBzbyB1bmV4cGVjdGVkJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIG5lZWRlZCB0byBoZWFyIHNvbWVvbmUgZWxzZeKAmXMgb3BpbmlvbiZxdW90OyAmcXVvdDtYb2xra2lvbGtrYm9sa2tEb2xra3lvbGtrWm9sa2t6b2xra2RvbGtrU29sa2tab2xra1hvbGtrc29sa2tXb2xra0xvbGtrWm9sa2tVJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbmVlZGVkIHRvIGhlYXIgc29tZW9uZSBlbHNl4oCZcyBvcGluaW9uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIG5lZWRlZCB0byBoZWFyIHNvbWVvbmUgZWxzZeKAmXMgb3BpbmlvbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7RnJvbSBzb21lb25lIHdobyBrbm93cyBldmVyeXRoaW5nIGFib3V0IG1lJnF1b3Q7ICZxdW90O2ZvbGtrZG9sa2tqb2xra2JvbGtrS29sa2t1b2xra0xvbGtreG9sa2tOb2xra25vbGtrQm9sa2t3b2xra0dvbGtrdG9sa2t5b2xra2EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RnJvbSBzb21lb25lIHdobyBrbm93cyBldmVyeXRoaW5nIGFib3V0IG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtGcm9tIHNvbWVvbmUgd2hvIGtub3dzIGV2ZXJ5dGhpbmcgYWJvdXQgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1JvbGtrTG9sa2tFb2xra2dvbGtrSm9sa2tKb2xra0FvbGtrWCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNS4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjUm9sa2tMb2xra0VvbGtrZ29sa2tKb2xra0pvbGtrQW9sa2tYJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBjYW4gdW5kZXJzdGFuZCB0aGF0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQzXzQmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGNhbiB1bmRlcnN0YW5kIHRoYXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQzXzQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNzUiIG5hbWU9IkFubmllQ2hhdDNfNCIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0M180JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgY2FuIHVuZGVyc3RhbmQgdGhhdCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgY2FuIHVuZGVyc3RhbmQgdGhhdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBjYW4gdW5kZXJzdGFuZCB0aGF0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7VGhlIGxhc3QgdGhpbmcgeW91IHByb2JhYmx5IG5lZWRlZCB3aXRoIGFsbCB0aGlzIHdvcmsgc3RyZXNzIHdhcyB0aGlzIGRyYW1hJnF1b3Q7ICZxdW90O1dvbGtrUW9sa2tBb2xra1lvbGtrUm9sa2tUb2xra2RvbGtrU29sa2tVb2xra0VvbGtrdW9sa2tvb2xra1FvbGtrSW9sa2ttb2xra2cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhlIGxhc3QgdGhpbmcgeW91IHByb2JhYmx5IG5lZWRlZCB3aXRoIGFsbCB0aGlzIHdvcmsgc3RyZXNzIHdhcyB0aGlzIGRyYW1hJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUaGUgbGFzdCB0aGluZyB5b3UgcHJvYmFibHkgbmVlZGVkIHdpdGggYWxsIHRoaXMgd29yayBzdHJlc3Mgd2FzIHRoaXMgZHJhbWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJltIHJlYWxseSBzb3JyeSZxdW90OyAmcXVvdDtLb2xra3VvbGtrS29sa2tRb2xra0dvbGtra29sa2t6b2xra0pvbGtrb29sa2t1b2xra3FvbGtrUm9sa2tHb2xra1lvbGtrWW9sa2t0JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJltIHJlYWxseSBzb3JyeSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmW0gcmVhbGx5IHNvcnJ5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtjb2xra3JvbGtrcW9sa2tpb2xra0FvbGtrTG9sa2t5b2xra1MmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuMnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2NvbGtrcm9sa2txb2xra2lvbGtrQW9sa2tMb2xra3lvbGtrUyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O05vLCBpdOKAmXMgb2theSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M181JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7Tm8sIGl04oCZcyBva2F5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0M181JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9Ijc2IiBuYW1lPSJBbm5pZUNoYXQzXzUiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSw5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDNfNSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtObywgaXTigJlzIG9rYXkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtObywgaXTigJlzIG9rYXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O05vLCBpdOKAmXMgb2theSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDttb2xra05vbGtrYW9sa2tJb2xra3hvbGtrV29sa2t5b2xra3AmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I21vbGtrTm9sa2thb2xra0lvbGtreG9sa2tXb2xra3lvbGtrcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0nigJltIHRoZSBvbmUgd2hvIHN1ZGRlbmx5IGJyb3VnaHQgdXAgdGhpcyB1bmZ1bGZpbGxlZCBmZXRpc2ggb2YgbWluZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M182JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SeKAmW0gdGhlIG9uZSB3aG8gc3VkZGVubHkgYnJvdWdodCB1cCB0aGlzIHVuZnVsZmlsbGVkIGZldGlzaCBvZiBtaW5lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0M182JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9Ijc3IiBuYW1lPSJBbm5pZUNoYXQzXzYiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCw5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDNfNiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJ4oCZbSB0aGUgb25lIHdobyBzdWRkZW5seSBicm91Z2h0IHVwIHRoaXMgdW5mdWxmaWxsZWQgZmV0aXNoIG9mIG1pbmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSB0aGUgb25lIHdobyBzdWRkZW5seSBicm91Z2h0IHVwIHRoaXMgdW5mdWxmaWxsZWQgZmV0aXNoIG9mIG1pbmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJltIHRoZSBvbmUgd2hvIHN1ZGRlbmx5IGJyb3VnaHQgdXAgdGhpcyB1bmZ1bGZpbGxlZCBmZXRpc2ggb2YgbWluZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtZb2xra0NvbGtrbW9sa2tyb2xra2pvbGtrYW9sa2tGb2xra2QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1lvbGtrQ29sa2ttb2xra3JvbGtram9sa2thb2xra0ZvbGtrZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgdGhpbmsgeW91ciByZWFjdGlvbiBpcyBjb21wbGV0ZWx5IG5vcm1hbCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M183JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSB0aGluayB5b3VyIHJlYWN0aW9uIGlzIGNvbXBsZXRlbHkgbm9ybWFsJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0M183JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9Ijc4IiBuYW1lPSJBbm5pZUNoYXQzXzciIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSw5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDNfNyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIHRoaW5rIHlvdXIgcmVhY3Rpb24gaXMgY29tcGxldGVseSBub3JtYWwmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHRoaW5rIHlvdXIgcmVhY3Rpb24gaXMgY29tcGxldGVseSBub3JtYWwmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgdGhpbmsgeW91ciByZWFjdGlvbiBpcyBjb21wbGV0ZWx5IG5vcm1hbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtSb2xra3hvbGtrWW9sa2t5b2xra2lvbGtra29sa2tNb2xra3omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1JvbGtreG9sa2tZb2xra3lvbGtraW9sa2trb2xra01vbGtreiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O01heWJlIGl04oCZcyBiZXN0IGlmIHdlIGp1c3QgZm9yZ2V0IHRoZSB3aG9sZSB0aGluZyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M184JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7TWF5YmUgaXTigJlzIGJlc3QgaWYgd2UganVzdCBmb3JnZXQgdGhlIHdob2xlIHRoaW5nJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0M184JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9Ijc5IiBuYW1lPSJBbm5pZUNoYXQzXzgiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQzXzgmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TWF5YmUgaXTigJlzIGJlc3QgaWYgd2UganVzdCBmb3JnZXQgdGhlIHdob2xlIHRoaW5nJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TWF5YmUgaXTigJlzIGJlc3QgaWYgd2UganVzdCBmb3JnZXQgdGhlIHdob2xlIHRoaW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtNYXliZSBpdOKAmXMgYmVzdCBpZiB3ZSBqdXN0IGZvcmdldCB0aGUgd2hvbGUgdGhpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC45cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtObywgeW914oCZdmUgYWx3YXlzIGRvbmUgZXZlcnl0aGluZyB0byBtYWtlIG1lIGhhcHB5JnF1b3Q7ICZxdW90O0hvbGtrbW9sa2tTb2xra1dvbGtrQm9sa2tzb2xra2FvbGtrZG9sa2tQb2xra2xvbGtrSW9sa2tDb2xra2RvbGtraW9sa2tlb2xra3cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm8sIHlvdeKAmXZlIGFsd2F5cyBkb25lIGV2ZXJ5dGhpbmcgdG8gbWFrZSBtZSBoYXBweSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7Tm8sIHlvdeKAmXZlIGFsd2F5cyBkb25lIGV2ZXJ5dGhpbmcgdG8gbWFrZSBtZSBoYXBweSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjhzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7WW914oCZcmUgZXZlbiBvdXQgdGhlcmUgYWNyb3NzIHRoZSBjb3VudHJ5IHRyeWluZyB0byBpbXByb3ZlIG91ciBmaW5hbmNlcyZxdW90OyAmcXVvdDtKb2xra1dvbGtrY29sa2tZb2xra0xvbGtrcW9sa2tib2xra3hvbGtrUW9sa2tZb2xra0pvbGtrTm9sa2tlb2xra3JvbGtrUm9sa2thJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdeKAmXJlIGV2ZW4gb3V0IHRoZXJlIGFjcm9zcyB0aGUgY291bnRyeSB0cnlpbmcgdG8gaW1wcm92ZSBvdXIgZmluYW5jZXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdeKAmXJlIGV2ZW4gb3V0IHRoZXJlIGFjcm9zcyB0aGUgY291bnRyeSB0cnlpbmcgdG8gaW1wcm92ZSBvdXIgZmluYW5jZXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjVzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0lmIHRoaXMgaXMgc29tZXRoaW5nIHlvdSB0cnVseSB3YW50LCBJ4oCZbGwgbWFrZSBhbiBlZmZvcnQgdG8gc2F0aXNmeSB5b3VyIGRlc2lyZSZxdW90OyAmcXVvdDtOb2xra3pvbGtrb29sa2tJb2xra2VvbGtrYm9sa2tZb2xra0VvbGtrRm9sa2tEb2xra1RvbGtrQm9sa2tWb2xra0dvbGtrZW9sa2t4JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0lmIHRoaXMgaXMgc29tZXRoaW5nIHlvdSB0cnVseSB3YW50LCBJ4oCZbGwgbWFrZSBhbiBlZmZvcnQgdG8gc2F0aXNmeSB5b3VyIGRlc2lyZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SWYgdGhpcyBpcyBzb21ldGhpbmcgeW91IHRydWx5IHdhbnQsIEnigJlsbCBtYWtlIGFuIGVmZm9ydCB0byBzYXRpc2Z5IHlvdXIgZGVzaXJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDUuN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS44cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJ4oCZdmUgYWxzbyBiZWVuIHRhbGtpbmcgdG8gTmFvbWksIGFuZCBzaGUgbWFkZSBtZSBzZWUgdGhhdCBpdOKAmXMgbm90IHN1Y2ggYSBzdHJhbmdlIHRoaW5nJnF1b3Q7ICZxdW90O2JvbGtram9sa2tpb2xra0ZvbGtrY29sa2tqb2xra1RvbGtrd29sa2tNb2xra0dvbGtreG9sa2twb2xra0xvbGtrVW9sa2t4b2xra1UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmXZlIGFsc28gYmVlbiB0YWxraW5nIHRvIE5hb21pLCBhbmQgc2hlIG1hZGUgbWUgc2VlIHRoYXQgaXTigJlzIG5vdCBzdWNoIGEgc3RyYW5nZSB0aGluZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmXZlIGFsc28gYmVlbiB0YWxraW5nIHRvIE5hb21pLCBhbmQgc2hlIG1hZGUgbWUgc2VlIHRoYXQgaXTigJlzIG5vdCBzdWNoIGEgc3RyYW5nZSB0aGluZyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA4LjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7U2hlIGV2ZW4gc2F5cyBzaGUgZmluZHMgaXQgcmVhbGx5IGV4Y2l0aW5nJnF1b3Q7ICZxdW90O25vbGtrQ29sa2tlb2xra2tvbGtrRm9sa2tmb2xra0JvbGtrRG9sa2tnb2xra0xvbGtrYW9sa2tab2xra0NvbGtrTG9sa2tTb2xra1UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U2hlIGV2ZW4gc2F5cyBzaGUgZmluZHMgaXQgcmVhbGx5IGV4Y2l0aW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtTaGUgZXZlbiBzYXlzIHNoZSBmaW5kcyBpdCByZWFsbHkgZXhjaXRpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgOS41cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjZzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgc3RpbGwgZG9u4oCZdCBzZWUgYWxsIHRoZSBhcHBlYWwsIGJ1dCBpdOKAmXMgd29ydGggdHJ5aW5nIGFuZCBzZWVpbmcgaG93IGl0IGZlZWxzJnF1b3Q7ICZxdW90O0lvbGtrZW9sa2t2b2xra2JvbGtraG9sa2tYb2xra1pvbGtrSm9sa2tib2xra01vbGtrWm9sa2ttb2xra3dvbGtrRG9sa2t4b2xra3UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBzdGlsbCBkb27igJl0IHNlZSBhbGwgdGhlIGFwcGVhbCwgYnV0IGl04oCZcyB3b3J0aCB0cnlpbmcgYW5kIHNlZWluZyBob3cgaXQgZmVlbHMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgc3RpbGwgZG9u4oCZdCBzZWUgYWxsIHRoZSBhcHBlYWwsIGJ1dCBpdOKAmXMgd29ydGggdHJ5aW5nIGFuZCBzZWVpbmcgaG93IGl0IGZlZWxzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDExLjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7VGhlIG9ubHkgdGhpbmcgSeKAmWxsIGFzayBpZiB3ZeKAmXJlIGdvaW5nIHRvIGRvIHRoaXMgaXMgbm90IHRvIHJ1c2ggbWUmcXVvdDsgJnF1b3Q7Vm9sa2tFb2xra2xvbGtrYW9sa2tnb2xra3JvbGtrTW9sa2tyb2xra2xvbGtrSG9sa2tDb2xra0tvbGtreW9sa2t3b2xra0hvbGtrWiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGUgb25seSB0aGluZyBJ4oCZbGwgYXNrIGlmIHdl4oCZcmUgZ29pbmcgdG8gZG8gdGhpcyBpcyBub3QgdG8gcnVzaCBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhlIG9ubHkgdGhpbmcgSeKAmWxsIGFzayBpZiB3ZeKAmXJlIGdvaW5nIHRvIGRvIHRoaXMgaXMgbm90IHRvIHJ1c2ggbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMTMuOXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJ4oCZbSBub3Qgc3VyZSBJ4oCZbGwgYmUgYWJsZSB0byBnbyB0aHJvdWdoIHdpdGggaXQmcXVvdDsgJnF1b3Q7U29sa2tCb2xra1FvbGtrZG9sa2tWb2xra3NvbGtraG9sa2tPb2xra0xvbGtrWW9sa2tZb2xra0xvbGtrdG9sa2twb2xra2RvbGtrYyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBub3Qgc3VyZSBJ4oCZbGwgYmUgYWJsZSB0byBnbyB0aHJvdWdoIHdpdGggaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJltIG5vdCBzdXJlIEnigJlsbCBiZSBhYmxlIHRvIGdvIHRocm91Z2ggd2l0aCBpdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxNS42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0J1dCB5b3UgY2FuIGNvdW50IG9uIG1lIHRvIHRyeSZxdW90OyAmcXVvdDtGb2xra0RvbGtrQ29sa2tub2xra21vbGtrTm9sa2tKb2xra3FvbGtrcG9sa2tBb2xra09vbGtrSW9sa2tWb2xra0JvbGtrUm9sa2tFJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCB5b3UgY2FuIGNvdW50IG9uIG1lIHRvIHRyeSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QnV0IHlvdSBjYW4gY291bnQgb24gbWUgdG8gdHJ5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtGb2xra3NvbGtrWG9sa2tKb2xra2VvbGtrUG9sa2tDb2xra1ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDE3LjBzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNGb2xra3NvbGtrWG9sa2tKb2xra2VvbGtrUG9sa2tDb2xra1ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGFua3MgYmFiZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M185YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoYW5rcyBiYWJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0M185YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNGb2xra3NvbGtrWG9sa2tKb2xra2VvbGtrUG9sa2tDb2xra1ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3XigJlsbCBzZWUsIHlvdeKAmXJlIGdvaW5nIHRvIGxpa2UgaXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDNfOWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3XigJlsbCBzZWUsIHlvdeKAmXJlIGdvaW5nIHRvIGxpa2UgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQzXzliJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjgwIiBuYW1lPSJBbm5pZUNoYXQzXzlhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0M185YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGFua3MgYmFiZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYW5rcyBiYWJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUaGFua3MgYmFiZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkZG9tc3ViID0gJGRvbXN1Yi0xJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O29vbGtrYm9sa2tWb2xra3hvbGtraG9sa2tJb2xra29vbGtrWiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjb29sa2tib2xra1ZvbGtreG9sa2tob2xra0lvbGtrb29sa2taJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WW914oCZbGwgc2VlLCB5b3XigJlyZSBnb2luZyB0byBsaWtlIGl0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQzXzEwYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdeKAmWxsIHNlZSwgeW914oCZcmUgZ29pbmcgdG8gbGlrZSBpdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDNfMTBhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjgxIiBuYW1lPSJBbm5pZUNoYXQzXzliIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMTEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0M185YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZb3XigJlsbCBzZWUsIHlvdeKAmXJlIGdvaW5nIHRvIGxpa2UgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3XigJlsbCBzZWUsIHlvdeKAmXJlIGdvaW5nIHRvIGxpa2UgaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdeKAmWxsIHNlZSwgeW914oCZcmUgZ29pbmcgdG8gbGlrZSBpdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkZG9tc3ViID0gJGRvbXN1YisxJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O25vbGtrYm9sa2tRb2xra1hvbGtrZ29sa2thb2xra3JvbGtrRyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjbm9sa2tib2xra1FvbGtrWG9sa2tnb2xra2FvbGtrcm9sa2tHJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBoYXZlIG5vIGRvdWJ0IGFib3V0IGl0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQzXzEwYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgaGF2ZSBubyBkb3VidCBhYm91dCBpdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDNfMTBiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjgyIiBuYW1lPSJBbm5pZUNoYXQzXzEwYSIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDExMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDNfMTBhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgcmVhbGx5IGFwcHJlY2lhdGUgeW91IGRvaW5nIHRoaXMgZm9yIG1lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSByZWFsbHkgYXBwcmVjaWF0ZSB5b3UgZG9pbmcgdGhpcyBmb3IgbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgcmVhbGx5IGFwcHJlY2lhdGUgeW91IGRvaW5nIHRoaXMgZm9yIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7WW91IGtub3cgSeKAmWQgZG8gYW55dGhpbmcgZm9yIHlvdSZxdW90OyAmcXVvdDtqb2xra0FvbGtrSG9sa2tyb2xra1RvbGtrU29sa2tGb2xra3dvbGtrYW9sa2tGb2xra3pvbGtrVm9sa2t5b2xra1NvbGtrd29sa2tlJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBrbm93IEnigJlkIGRvIGFueXRoaW5nIGZvciB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdSBrbm93IEnigJlkIGRvIGFueXRoaW5nIGZvciB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0FsdGhvdWdoIEnigJlsbCBhZG1pdCBJIHN0aWxsIGhhdmUgbXkgZG91YnRzJnF1b3Q7ICZxdW90O2xvbGtrUm9sa2txb2xra3JvbGtrZW9sa2tGb2xra1ZvbGtrSm9sa2t1b2xra2xvbGtrd29sa2tIb2xra0FvbGtrUW9sa2tub2xra2ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QWx0aG91Z2ggSeKAmWxsIGFkbWl0IEkgc3RpbGwgaGF2ZSBteSBkb3VidHMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0FsdGhvdWdoIEnigJlsbCBhZG1pdCBJIHN0aWxsIGhhdmUgbXkgZG91YnRzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC45cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtCdXQgeW91IGFuZCBOYW9taSBrbm93IG1lIGJldHRlciB0aGFuIGFueW9uZSZxdW90OyAmcXVvdDtBb2xra25vbGtrZ29sa2tPb2xra09vbGtrV29sa2tvb2xra2tvbGtra29sa2tnb2xra1RvbGtrRG9sa2tQb2xra2xvbGtrdG9sa2txJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCB5b3UgYW5kIE5hb21pIGtub3cgbWUgYmV0dGVyIHRoYW4gYW55b25lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCdXQgeW91IGFuZCBOYW9taSBrbm93IG1lIGJldHRlciB0aGFuIGFueW9uZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QW5kIHlvdSBib3RoIGFncmVlLCBzbyBJ4oCZbGwgZGVmaW5pdGVseSBnaXZlIHRoaXMgYSBjaGFuY2UmcXVvdDsgJnF1b3Q7am9sa2tob2xra0lvbGtra29sa2tIb2xra3lvbGtrRW9sa2t0b2xra1dvbGtrRm9sa2tWb2xra09vbGtrQm9sa2tmb2xra21vbGtrViZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbmQgeW91IGJvdGggYWdyZWUsIHNvIEnigJlsbCBkZWZpbml0ZWx5IGdpdmUgdGhpcyBhIGNoYW5jZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QW5kIHlvdSBib3RoIGFncmVlLCBzbyBJ4oCZbGwgZGVmaW5pdGVseSBnaXZlIHRoaXMgYSBjaGFuY2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3dvbGtraG9sa2tib2xra3NvbGtrdG9sa2tZb2xra3VvbGtrdCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNi4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjd29sa2tob2xra2JvbGtrc29sa2t0b2xra1lvbGtrdW9sa2t0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBoYXZlIHRvIHNheSwgdGhpcyBoYXMgbWFkZSBteSBkYXkgc28gbXVjaCBiZXR0ZXImcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDNfMTEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGhhdmUgdG8gc2F5LCB0aGlzIGhhcyBtYWRlIG15IGRheSBzbyBtdWNoIGJldHRlciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDNfMTEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iODMiIG5hbWU9IkFubmllQ2hhdDNfMTBiIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsMTEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0M18xMGImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBoYXZlIG5vIGRvdWJ0IGFib3V0IGl0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBoYXZlIG5vIGRvdWJ0IGFib3V0IGl0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGhhdmUgbm8gZG91YnQgYWJvdXQgaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtIb25lc3RseSwgSSBkbyZxdW90OyAmcXVvdDtOb2xra3pvbGtreW9sa2tMb2xra3hvbGtrd29sa2tib2xra3RvbGtrTm9sa2tvb2xra0ZvbGtrbG9sa2tSb2xra0NvbGtrc29sa2tRJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvbmVzdGx5LCBJIGRvJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIb25lc3RseSwgSSBkbyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QnV0IHlvdSBhbmQgTmFvbWkga25vdyBtZSBiZXR0ZXIgdGhhbiBhbnlvbmUmcXVvdDsgJnF1b3Q7RG9sa2tKb2xra25vbGtrQW9sa2t0b2xra3hvbGtrVm9sa2trb2xra2RvbGtraW9sa2tWb2xra1pvbGtrc29sa2tFb2xra2FvbGtrSiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgeW91IGFuZCBOYW9taSBrbm93IG1lIGJldHRlciB0aGFuIGFueW9uZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QnV0IHlvdSBhbmQgTmFvbWkga25vdyBtZSBiZXR0ZXIgdGhhbiBhbnlvbmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi43cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0FuZCB5b3UgYm90aCBhZ3JlZSwgc28gSeKAmWxsIGRlZmluaXRlbHkgZ2l2ZSB0aGlzIGEgY2hhbmNlJnF1b3Q7ICZxdW90O0JvbGtrcG9sa2t5b2xra0xvbGtrZG9sa2tsb2xra2lvbGtrQm9sa2tHb2xra1lvbGtrRG9sa2tHb2xra1JvbGtrQW9sa2trb2xra3omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5kIHlvdSBib3RoIGFncmVlLCBzbyBJ4oCZbGwgZGVmaW5pdGVseSBnaXZlIHRoaXMgYSBjaGFuY2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0FuZCB5b3UgYm90aCBhZ3JlZSwgc28gSeKAmWxsIGRlZmluaXRlbHkgZ2l2ZSB0aGlzIGEgY2hhbmNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtRb2xra29vbGtreW9sa2tXb2xra1NvbGtrbW9sa2tYb2xra3YmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuNHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1FvbGtrb29sa2t5b2xra1dvbGtrU29sa2ttb2xra1hvbGtrdiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgaGF2ZSB0byBzYXksIHRoaXMgaGFzIG1hZGUgbXkgZGF5IHNvIG11Y2ggYmV0dGVyJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQzXzExJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBoYXZlIHRvIHNheSwgdGhpcyBoYXMgbWFkZSBteSBkYXkgc28gbXVjaCBiZXR0ZXImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQzXzExJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9Ijg0IiBuYW1lPSJBbm5pZUNoYXQzXzExIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMTEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0M18xMSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGhhdmUgdG8gc2F5LCB0aGlzIGhhcyBtYWRlIG15IGRheSBzbyBtdWNoIGJldHRlciZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgaGF2ZSB0byBzYXksIHRoaXMgaGFzIG1hZGUgbXkgZGF5IHNvIG11Y2ggYmV0dGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGhhdmUgdG8gc2F5LCB0aGlzIGhhcyBtYWRlIG15IGRheSBzbyBtdWNoIGJldHRlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt5b2xra2tvbGtrSG9sa2t2b2xra21vbGtrZ29sa2tQb2xra2UmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3lvbGtra29sa2tIb2xra3ZvbGtrbW9sa2tnb2xra1BvbGtrZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgZmVlbCBsaWtlIGEgd2VpZ2h0IGhhcyBiZWVuIGxpZnRlZCBvZmYgbXkgc2hvdWxkZXJzIGFmdGVyIGNvbmZlc3NpbmcgdGhpcyB0byB5b3UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDNfMTImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGZlZWwgbGlrZSBhIHdlaWdodCBoYXMgYmVlbiBsaWZ0ZWQgb2ZmIG15IHNob3VsZGVycyBhZnRlciBjb25mZXNzaW5nIHRoaXMgdG8geW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0M18xMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI4NSIgbmFtZT0iQW5uaWVDaGF0M18xMiIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDExMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDNfMTImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBmZWVsIGxpa2UgYSB3ZWlnaHQgaGFzIGJlZW4gbGlmdGVkIG9mZiBteSBzaG91bGRlcnMgYWZ0ZXIgY29uZmVzc2luZyB0aGlzIHRvIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZmVlbCBsaWtlIGEgd2VpZ2h0IGhhcyBiZWVuIGxpZnRlZCBvZmYgbXkgc2hvdWxkZXJzIGFmdGVyIGNvbmZlc3NpbmcgdGhpcyB0byB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgZmVlbCBsaWtlIGEgd2VpZ2h0IGhhcyBiZWVuIGxpZnRlZCBvZmYgbXkgc2hvdWxkZXJzIGFmdGVyIGNvbmZlc3NpbmcgdGhpcyB0byB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtIb25leSwgeW91IHNob3VsZOKAmXZlIHRvbGQgbWUgc29vbmVyJnF1b3Q7ICZxdW90O05vbGtrcW9sa2tmb2xra3pvbGtrVG9sa2tsb2xra3JvbGtrbG9sa2tob2xra3pvbGtrVG9sa2tQb2xra3JvbGtrcG9sa2tnb2xra0EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SG9uZXksIHlvdSBzaG91bGTigJl2ZSB0b2xkIG1lIHNvb25lciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SG9uZXksIHlvdSBzaG91bGTigJl2ZSB0b2xkIG1lIHNvb25lciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuM3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgeW914oCZdmUgYmVlbiBjYXJyeWluZyBhbGwgdGhpcyB3aXRob3V0IHRlbGxpbmcgbWUgYWJvdXQgaXQuJnF1b3Q7ICZxdW90O0ZvbGtrUm9sa2tyb2xra2RvbGtrVG9sa2tub2xra1pvbGtrd29sa2tab2xra0RvbGtrbG9sa2tqb2xra2pvbGtrU29sa2tTb2xra0smcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgeW914oCZdmUgYmVlbiBjYXJyeWluZyBhbGwgdGhpcyB3aXRob3V0IHRlbGxpbmcgbWUgYWJvdXQgaXQuJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGNhbuKAmXQgYmVsaWV2ZSB5b3XigJl2ZSBiZWVuIGNhcnJ5aW5nIGFsbCB0aGlzIHdpdGhvdXQgdGVsbGluZyBtZSBhYm91dCBpdC4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy40cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjZzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0FuZCBhYm91dCB3b3JrLCBkbyB5b3UgdGhpbmsgeW914oCZbGwgYmUgYWJsZSB0byBmaW5pc2ggYWxsIHlvdXIgd29yayBieSBGcmlkYXk/JnF1b3Q7ICZxdW90O3dvbGtrRW9sa2tCb2xra05vbGtrbG9sa2ttb2xra0dvbGtrSm9sa2tBb2xra2xvbGtrTW9sa2tLb2xra0lvbGtrUm9sa2tIb2xra2cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5kIGFib3V0IHdvcmssIGRvIHlvdSB0aGluayB5b3XigJlsbCBiZSBhYmxlIHRvIGZpbmlzaCBhbGwgeW91ciB3b3JrIGJ5IEZyaWRheT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0FuZCBhYm91dCB3b3JrLCBkbyB5b3UgdGhpbmsgeW914oCZbGwgYmUgYWJsZSB0byBmaW5pc2ggYWxsIHlvdXIgd29yayBieSBGcmlkYXk/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt2b2xra01vbGtrTm9sa2tib2xra1dvbGtrTW9sa2tKb2xra3AmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDUuNnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3ZvbGtrTW9sa2tOb2xra2JvbGtrV29sa2tNb2xra0pvbGtrcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0RvbuKAmXQgd29ycnkgYWJvdXQgaXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDNfMTNhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7RG9u4oCZdCB3b3JyeSBhYm91dCBpdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDNfMTNhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3ZvbGtrTW9sa2tOb2xra2JvbGtrV29sa2tNb2xra0pvbGtrcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0hvbmVzdGx5LCBJ4oCZbSBub3Qgc3VyZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M18xM2ImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtIb25lc3RseSwgSeKAmW0gbm90IHN1cmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQzXzEzYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI4NiIgbmFtZT0iQW5uaWVDaGF0M18xM2EiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwxMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQzXzEzYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtEb27igJl0IHdvcnJ5IGFib3V0IGl0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RG9u4oCZdCB3b3JyeSBhYm91dCBpdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7RG9u4oCZdCB3b3JyeSBhYm91dCBpdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkZG9tc3ViID0gJGRvbXN1YisxJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3pvbGtrb29sa2tXb2xra1FvbGtrbm9sa2tqb2xra3JvbGtrbCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjem9sa2tvb2xra1dvbGtrUW9sa2tub2xra2pvbGtrcm9sa2tsJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SeKAmW0gZ29pbmcgdG8gZ2V0IGl0IGRvbmUgYnkgRnJpZGF5LCBubyBtYXR0ZXIgd2hhdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M18xNGEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJ4oCZbSBnb2luZyB0byBnZXQgaXQgZG9uZSBieSBGcmlkYXksIG5vIG1hdHRlciB3aGF0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0M18xNGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iODciIG5hbWU9IkFubmllQ2hhdDNfMTNiIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMTEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0M18xM2ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SG9uZXN0bHksIEnigJltIG5vdCBzdXJlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SG9uZXN0bHksIEnigJltIG5vdCBzdXJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIb25lc3RseSwgSeKAmW0gbm90IHN1cmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGRvbXN1YiA9ICRkb21zdWItMSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtKb2xra0dvbGtrem9sa2tGb2xra3FvbGtrUm9sa2tYb2xra1cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0pvbGtrR29sa2t6b2xra0ZvbGtrcW9sa2tSb2xra1hvbGtrVyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0J1dCBJ4oCZbGwgZG8gbXkgYmVzdCB0byBtYWtlIGl0IGhhcHBlbiZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M18xNGImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtCdXQgSeKAmWxsIGRvIG15IGJlc3QgdG8gbWFrZSBpdCBoYXBwZW4mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQzXzE0YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI4OCIgbmFtZT0iQW5uaWVDaGF0M18xNGEiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSwxMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQzXzE0YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJ4oCZbSBnb2luZyB0byBnZXQgaXQgZG9uZSBieSBGcmlkYXksIG5vIG1hdHRlciB3aGF0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gZ29pbmcgdG8gZ2V0IGl0IGRvbmUgYnkgRnJpZGF5LCBubyBtYXR0ZXIgd2hhdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmW0gZ29pbmcgdG8gZ2V0IGl0IGRvbmUgYnkgRnJpZGF5LCBubyBtYXR0ZXIgd2hhdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJltIGdsYWQgdG8gaGVhciB0aGF0JnF1b3Q7ICZxdW90O1VvbGtrTW9sa2tQb2xra2ZvbGtreG9sa2tPb2xra1JvbGtrQm9sa2tKb2xra0RvbGtrdm9sa2tZb2xra2lvbGtrYW9sa2twb2xra3MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gZ2xhZCB0byBoZWFyIHRoYXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJltIGdsYWQgdG8gaGVhciB0aGF0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtZb3Uga25vdyBJIGJlbGlldmUgaW4geW91JnF1b3Q7ICZxdW90O3dvbGtreG9sa2tab2xra1BvbGtraW9sa2t2b2xra2JvbGtrcG9sa2tPb2xra2FvbGtrT29sa2tpb2xra25vbGtrRm9sa2ttb2xra0MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGtub3cgSSBiZWxpZXZlIGluIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW91IGtub3cgSSBiZWxpZXZlIGluIHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjZzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtnb2xra05vbGtrUG9sa2tyb2xra2VvbGtrdm9sa2tZb2xra3ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuNnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2dvbGtrTm9sa2tQb2xra3JvbGtrZW9sa2t2b2xra1lvbGtrciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgbG92ZSB5b3UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDNfMTVhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBsb3ZlIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDNfMTVhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9Ijg5IiBuYW1lPSJBbm5pZUNoYXQzXzE0YiIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwxMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQzXzE0YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtCdXQgSeKAmWxsIGRvIG15IGJlc3QgdG8gbWFrZSBpdCBoYXBwZW4mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgSeKAmWxsIGRvIG15IGJlc3QgdG8gbWFrZSBpdCBoYXBwZW4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0J1dCBJ4oCZbGwgZG8gbXkgYmVzdCB0byBtYWtlIGl0IGhhcHBlbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kga25vdyB5b3Ugd2lsbCZxdW90OyAmcXVvdDtMb2xra0NvbGtrVm9sa2trb2xra21vbGtra29sa2tYb2xra1BvbGtrWW9sa2trb2xra0VvbGtrdm9sa2txb2xra3JvbGtrRW9sa2tGJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kga25vdyB5b3Ugd2lsbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBrbm93IHlvdSB3aWxsJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtZb3XigJl2ZSBhbHdheXMgYmVlbiBzdWNoIGEgaGFyZHdvcmtpbmcgbWFuJnF1b3Q7ICZxdW90O0RvbGtrZ29sa2t5b2xra1RvbGtrVG9sa2tkb2xra2NvbGtrUm9sa2ttb2xra1BvbGtrYW9sa2tYb2xra29vbGtrY29sa2tqb2xra0EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW914oCZdmUgYWx3YXlzIGJlZW4gc3VjaCBhIGhhcmR3b3JraW5nIG1hbiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW914oCZdmUgYWx3YXlzIGJlZW4gc3VjaCBhIGhhcmR3b3JraW5nIG1hbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SXTigJlzIG9uZSBvZiB0aGUgdGhpbmdzIEkgbG92ZSBhYm91dCB5b3UmcXVvdDsgJnF1b3Q7c29sa2tnb2xra1BvbGtrdG9sa2tPb2xra2pvbGtrV29sa2tZb2xra2tvbGtrTG9sa2tUb2xra1hvbGtrUW9sa2t4b2xra0ZvbGtreCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdOKAmXMgb25lIG9mIHRoZSB0aGluZ3MgSSBsb3ZlIGFib3V0IHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SXTigJlzIG9uZSBvZiB0aGUgdGhpbmdzIEkgbG92ZSBhYm91dCB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC4xcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90OyB0cnVlICZxdW90O0FubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7SG9sa2trb2xra21vbGtraW9sa2tkb2xra1RvbGtrV29sa2tjJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA1LjFzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNIb2xra2tvbGtrbW9sa2tpb2xra2RvbGtrVG9sa2tXb2xra2MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGxvdmUgeW91LCBBbm5pZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M18xNWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGxvdmUgeW91LCBBbm5pZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDNfMTViJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjkwIiBuYW1lPSJBbm5pZUNoYXQzXzE1YSIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSwxMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQzXzE1YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGxvdmUgeW91JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBsb3ZlIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBsb3ZlIHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgbG92ZSB5b3UgbW9yZSZxdW90OyAmcXVvdDtlb2xra0lvbGtraG9sa2thb2xra2xvbGtrQ29sa2tJb2xra2xvbGtrSG9sa2tPb2xra3ZvbGtrdW9sa2tHb2xra2RvbGtrYm9sa2taJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbG92ZSB5b3UgbW9yZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBsb3ZlIHlvdSBtb3JlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgbG92ZSB5b3UgbW9yZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgPSAmcXVvdDtBbm5pZUNoYXQzXzhhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2xhc3RfaG91ciA9ICZxdW90OzExOjU4JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXQgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRob3VyID0gJnF1b3Q7MTE6NTgmcXVvdDsmZ3Q7Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O29mZmxpbmUtdGV4dCZxdW90OyZndDtBbm5pZSBpcyBvZmZsaW5lJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtIZXkgJG5hbWUsIGhvd+KAmXMgZXZlcnl0aGluZz8mcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJFZhbmVzc2FfdmlzaWJsZSA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdCA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdFN0YXRlID0gJnF1b3Q7VmFuZXNzYUludHJvMSZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI5MSIgbmFtZT0iQW5uaWVDaGF0M18xNWIiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCwxMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQzXzE1YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGxvdmUgeW91LCBBbm5pZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbG92ZSB5b3UsIEFubmllJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGxvdmUgeW91LCBBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtIb2xra0hvbGtrc29sa2tob2xra1NvbGtrU29sa2tpb2xra1UmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0hvbGtrSG9sa2tzb2xra2hvbGtrU29sa2tTb2xra2lvbGtrVSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgZG9u4oCZdCBrbm93IHdoYXQgSeKAmWQgZG8gd2l0aG91dCB5b3UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDNfMTYmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGRvbuKAmXQga25vdyB3aGF0IEnigJlkIGRvIHdpdGhvdXQgeW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0M18xNiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI5MiIgbmFtZT0iQW5uaWVDaGF0M18xNiIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDEyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDNfMTYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBkb27igJl0IGtub3cgd2hhdCBJ4oCZZCBkbyB3aXRob3V0IHlvdSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZG9u4oCZdCBrbm93IHdoYXQgSeKAmWQgZG8gd2l0aG91dCB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgZG9u4oCZdCBrbm93IHdoYXQgSeKAmWQgZG8gd2l0aG91dCB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGxvdmUgeW91IG1vcmUmcXVvdDsgJnF1b3Q7S29sa2tOb2xra2lvbGtrSm9sa2tDb2xra1VvbGtrTG9sa2tZb2xra0NvbGtrYW9sa2t1b2xra2RvbGtrTm9sa2tkb2xra1VvbGtrciZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGxvdmUgeW91IG1vcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgbG92ZSB5b3UgbW9yZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGxvdmUgeW91IG1vcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVDaGF0M184YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0X2hvdXIgPSAmcXVvdDsxMTo1OCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkaG91ciA9ICZxdW90OzExOjU4JnF1b3Q7Jmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtvZmZsaW5lLXRleHQmcXVvdDsmZ3Q7QW5uaWUgaXMgb2ZmbGluZSZsdDsvZGl2Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX25vdGVzLnB1c2goJnF1b3Q7QW5uaWUgdG9sZCBtZSBzaGXigJlsbCBkbyBldmVyeXRoaW5nIHNoZSBjYW4gdG8gbWFrZSBtZSBoYXBweSBhbmQgd2lsbCB0cnkgdG8gbWFrZSBhbiBlZmZvcnQgdG8gZnVsZmlsbCBteSBmYW50YXN5LiZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtIZXkgJG5hbWUsIGhvd+KAmXMgZXZlcnl0aGluZz8mcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJFZhbmVzc2FfdmlzaWJsZSA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdCA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdFN0YXRlID0gJnF1b3Q7VmFuZXNzYUludHJvMSZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI5MyIgbmFtZT0iQW5uaWVDaGF0RXAyXzFfMSIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDEyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SG9uZXksIGhvd+KAmXMgZXZlcnl0aGluZyBnb2luZyBvdmVyIHRoZXJlPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SG9uZXksIGhvd+KAmXMgZXZlcnl0aGluZyBnb2luZyBvdmVyIHRoZXJlPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SG9uZXksIGhvd+KAmXMgZXZlcnl0aGluZyBnb2luZyBvdmVyIHRoZXJlPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O09vbGtrcW9sa2t4b2xra2hvbGtrSW9sa2ttb2xra1FvbGtrZCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjT29sa2txb2xra3hvbGtraG9sa2tJb2xra21vbGtrUW9sa2tkJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7U3RpbGwgd29ya2luZyBvbiB0aGUgcmVwb3J0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMV8yJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7U3RpbGwgd29ya2luZyBvbiB0aGUgcmVwb3J0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzFfMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9Ijk0IiBuYW1lPSJBbm5pZUNoYXRFcDJfMV8yIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMTIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzFfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtTdGlsbCB3b3JraW5nIG9uIHRoZSByZXBvcnQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTdGlsbCB3b3JraW5nIG9uIHRoZSByZXBvcnQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1N0aWxsIHdvcmtpbmcgb24gdGhlIHJlcG9ydCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtWb2xra3JvbGtraG9sa2trb2xra0VvbGtraW9sa2tob2xra28mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1ZvbGtrcm9sa2tob2xra2tvbGtrRW9sa2tpb2xra2hvbGtrbyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1doYXQgYWJvdXQgeW91PyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzFfMyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1doYXQgYWJvdXQgeW91PyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8xXzMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iOTUiIG5hbWU9IkFubmllQ2hhdEVwMl8xXzMiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCwxMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMV8zJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1doYXQgYWJvdXQgeW91PyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1doYXQgYWJvdXQgeW91PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7V2hhdCBhYm91dCB5b3U/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7V2VsbCwgSeKAmW0gb24gbXkgYnJlYWsgcmlnaHQgbm93JnF1b3Q7ICZxdW90O1FvbGtrWW9sa2tMb2xra3pvbGtram9sa2tSb2xra1ZvbGtrUW9sa2tVb2xra0JvbGtrem9sa2tmb2xra2tvbGtrbW9sa2tJb2xra3QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2VsbCwgSeKAmW0gb24gbXkgYnJlYWsgcmlnaHQgbm93JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtXZWxsLCBJ4oCZbSBvbiBteSBicmVhayByaWdodCBub3cmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1RoZSBnaXJscyBzYXkgaGkmcXVvdDsgJnF1b3Q7WW9sa2tBb2xra2xvbGtrRG9sa2t0b2xra3dvbGtrVm9sa2t4b2xra0VvbGtrZW9sa2tZb2xra2hvbGtrRm9sa2tzb2xra1VvbGtrYSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGUgZ2lybHMgc2F5IGhpJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUaGUgZ2lybHMgc2F5IGhpJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMXMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfaW1nICZxdW90O2Fzc2V0cy9pbWcvZXAyL2FubmllX3Bob3RvXzMud2VicCZxdW90OyB0cnVlICZxdW90O2xvbGtrUW9sa2tQb2xra3pvbGtrc29sa2tZb2xra3lvbGtrSm9sa2tMb2xra3hvbGtrT29sa2tGb2xra2hvbGtrYW9sa2tOb2xra3EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMiwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lcDIvYW5uaWVfcGhvdG9fMy53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkcGhvdG9zLnB1c2goJnF1b3Q7YXNzZXRzL2ltZy9lcDIvYW5uaWVfcGhvdG9fMy53ZWJwJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7UG9sa2tSb2xra1JvbGtrb29sa2tMb2xra1hvbGtrd29sa2tTJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjFzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNQb2xra1JvbGtrUm9sa2tvb2xra0xvbGtrWG9sa2t3b2xra1MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUZWxsIHRoZW0gSSBzYXkgaGkgYmFjayZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzFfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RlbGwgdGhlbSBJIHNheSBoaSBiYWNrJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzFfNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI5NiIgbmFtZT0iQW5uaWVDaGF0RXAyXzFfNCIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDEyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8xXzQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGVsbCB0aGVtIEkgc2F5IGhpIGJhY2smcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUZWxsIHRoZW0gSSBzYXkgaGkgYmFjayZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGVsbCB0aGVtIEkgc2F5IGhpIGJhY2smcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4ycyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIHdpbGwmcXVvdDsgJnF1b3Q7eG9sa2tUb2xra3RvbGtrT29sa2tXb2xra3BvbGtrTG9sa2tJb2xra0ZvbGtram9sa2tib2xra3dvbGtrSW9sa2ttb2xra1pvbGtreiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHdpbGwmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgd2lsbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SeKAmW0gYWxyZWFkeSBtaXNzaW5nIHlvdSwgaG9uZXkmcXVvdDsgJnF1b3Q7SG9sa2t6b2xra1VvbGtra29sa2tVb2xra0VvbGtrb29sa2tFb2xra21vbGtrbW9sa2tUb2xra2FvbGtrdW9sa2tRb2xra1VvbGtrcSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBhbHJlYWR5IG1pc3NpbmcgeW91LCBob25leSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmW0gYWxyZWFkeSBtaXNzaW5nIHlvdSwgaG9uZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4ycyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAyLjBzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgc3RpbGwgY2Fu4oCZdCB3cmFwIG15IGhlYWQgYXJvdW5kIHRoZSBmYWN0IHRoYXQgd2hlbiBJIGdldCBob21lIGFmdGVyIHdvcmssIHlvdSB3b27igJl0IGJlIHRoZXJlJnF1b3Q7ICZxdW90O3pvbGtrRG9sa2tCb2xra0JvbGtrWW9sa2tmb2xra0FvbGtrQW9sa2tNb2xra1ZvbGtrbW9sa2tzb2xra3dvbGtrcm9sa2tyb2xra24mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBzdGlsbCBjYW7igJl0IHdyYXAgbXkgaGVhZCBhcm91bmQgdGhlIGZhY3QgdGhhdCB3aGVuIEkgZ2V0IGhvbWUgYWZ0ZXIgd29yaywgeW91IHdvbuKAmXQgYmUgdGhlcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgc3RpbGwgY2Fu4oCZdCB3cmFwIG15IGhlYWQgYXJvdW5kIHRoZSBmYWN0IHRoYXQgd2hlbiBJIGdldCBob21lIGFmdGVyIHdvcmssIHlvdSB3b27igJl0IGJlIHRoZXJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuOHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfY3J5aW5nLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9jcnlpbmcud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1ZvbGtram9sa2t6b2xra1lvbGtrUW9sa2tjb2xra1VvbGtrdyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNS44cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjVm9sa2tqb2xra3pvbGtrWW9sa2tRb2xra2NvbGtrVW9sa2t3JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBtaXNzIHlvdSB0b28mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8xXzVhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBtaXNzIHlvdSB0b28mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMV81YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNWb2xra2pvbGtrem9sa2tZb2xra1FvbGtrY29sa2tVb2xra3cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJdOKAmXMgb25seSBmb3IgYSBsaXR0bGUgd2hpbGUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8xXzViJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SXTigJlzIG9ubHkgZm9yIGEgbGl0dGxlIHdoaWxlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzFfNWImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iOTciIG5hbWU9IkFubmllQ2hhdEVwMl8xXzVhIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMTIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzFfNWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBtaXNzIHlvdSB0b28mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIG1pc3MgeW91IHRvbyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBtaXNzIHlvdSB0b28mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGFubmllX3JvbWFuY2UgPSAkYW5uaWVfcm9tYW5jZSsxJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3VvbGtrZG9sa2tlb2xra1JvbGtrWm9sa2tIb2xra0VvbGtrTiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjdW9sa2tkb2xra2VvbGtrUm9sa2tab2xra0hvbGtrRW9sa2tOJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q78J+YpSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzFfNmEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDvwn5ilJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzFfNmEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iOTgiIG5hbWU9IkFubmllQ2hhdEVwMl8xXzViIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMTIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzFfNWImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SXTigJlzIG9ubHkgZm9yIGEgbGl0dGxlIHdoaWxlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXTigJlzIG9ubHkgZm9yIGEgbGl0dGxlIHdoaWxlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJdOKAmXMgb25seSBmb3IgYSBsaXR0bGUgd2hpbGUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7bG9sa2tUb2xra1ZvbGtrT29sa2tSb2xra29vbGtrRW9sa2t3JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNsb2xra1RvbGtrVm9sa2tPb2xra1JvbGtrb29sa2tFb2xra3cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJbiBhIGZldyBtb250aHMsIEnigJlsbCBiZSByaWdodCBiYWNrIGJ5IHlvdXIgc2lkZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzFfNmImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJbiBhIGZldyBtb250aHMsIEnigJlsbCBiZSByaWdodCBiYWNrIGJ5IHlvdXIgc2lkZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8xXzZiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9Ijk5IiBuYW1lPSJBbm5pZUNoYXRFcDJfMV82YSIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwxMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMV82YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX3N0cmVzc2VkLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX3N0cmVzc2VkLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O2pvbGtrQW9sa2tTb2xra3lvbGtrWG9sa2tzb2xra3dvbGtrSiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjam9sa2tBb2xra1NvbGtreW9sa2tYb2xra3NvbGtrd29sa2tKJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QnV0IGhleSwgaXTigJlzIG9ubHkgZm9yIGEgbGl0dGxlIHdoaWxlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMV83YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0J1dCBoZXksIGl04oCZcyBvbmx5IGZvciBhIGxpdHRsZSB3aGlsZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8xXzdhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEwMCIgbmFtZT0iQW5uaWVDaGF0RXAyXzFfNmIiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMTIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzFfNmImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SW4gYSBmZXcgbW9udGhzLCBJ4oCZbGwgYmUgcmlnaHQgYmFjayBieSB5b3VyIHNpZGUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJbiBhIGZldyBtb250aHMsIEnigJlsbCBiZSByaWdodCBiYWNrIGJ5IHlvdXIgc2lkZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SW4gYSBmZXcgbW9udGhzLCBJ4oCZbGwgYmUgcmlnaHQgYmFjayBieSB5b3VyIHNpZGUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGtub3csIGhvbmV5JnF1b3Q7ICZxdW90O2RvbGtrTG9sa2tlb2xra2tvbGtrSW9sa2t2b2xra1JvbGtrUm9sa2tIb2xra0ZvbGtrS29sa2tvb2xra1hvbGtrQm9sa2tZb2xra1YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBrbm93LCBob25leSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBrbm93LCBob25leSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7VGhhdOKAmXMgd2hhdCBrZWVwcyBtZSBnb2luZywga25vd2luZyBpdOKAmXMganVzdCBhIG1hdHRlciBvZiB0aW1lIHVudGlsIHlvdeKAmXJlIGJhY2sgaGVyZSZxdW90OyAmcXVvdDtCb2xra0hvbGtrY29sa2tWb2xra0NvbGtraG9sa2tFb2xra05vbGtrRW9sa2ttb2xra3lvbGtrU29sa2t0b2xra01vbGtrbG9sa2tzJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYXTigJlzIHdoYXQga2VlcHMgbWUgZ29pbmcsIGtub3dpbmcgaXTigJlzIGp1c3QgYSBtYXR0ZXIgb2YgdGltZSB1bnRpbCB5b3XigJlyZSBiYWNrIGhlcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1RoYXTigJlzIHdoYXQga2VlcHMgbWUgZ29pbmcsIGtub3dpbmcgaXTigJlzIGp1c3QgYSBtYXR0ZXIgb2YgdGltZSB1bnRpbCB5b3XigJlyZSBiYWNrIGhlcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0hvbGtra29sa2tGb2xra2hvbGtrVG9sa2t5b2xra2ZvbGtrSiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjSG9sa2trb2xra0ZvbGtraG9sa2tUb2xra3lvbGtrZm9sa2tKJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7T2YgY291cnNlIGJhYmUuIEJlZm9yZSB5b3Uga25vdyBpdCwgSeKAmWxsIGJlIHRoZXJlIHdpdGggeW91JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMV84JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7T2YgY291cnNlIGJhYmUuIEJlZm9yZSB5b3Uga25vdyBpdCwgSeKAmWxsIGJlIHRoZXJlIHdpdGggeW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzFfOCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMDEiIG5hbWU9IkFubmllQ2hhdEVwMl8xXzdhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMTM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzFfN2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7QnV0IGhleSwgaXTigJlzIG9ubHkgZm9yIGEgbGl0dGxlIHdoaWxlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IGhleSwgaXTigJlzIG9ubHkgZm9yIGEgbGl0dGxlIHdoaWxlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCdXQgaGV5LCBpdOKAmXMgb25seSBmb3IgYSBsaXR0bGUgd2hpbGUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGtub3csIGhvbmV5JnF1b3Q7ICZxdW90O2ZvbGtrWm9sa2tib2xra3NvbGtrZ29sa2ttb2xra3FvbGtrcm9sa2tEb2xra01vbGtrem9sa2tVb2xra2VvbGtrVm9sa2tNb2xra2UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBrbm93LCBob25leSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBrbm93LCBob25leSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7VGhhdOKAmXMgd2hhdCBrZWVwcyBtZSBnb2luZywga25vd2luZyBpdOKAmXMganVzdCBhIG1hdHRlciBvZiB0aW1lIHVudGlsIHlvdeKAmXJlIGJhY2sgaGVyZSZxdW90OyAmcXVvdDtmb2xra29vbGtrT29sa2ttb2xra1ZvbGtrYW9sa2tVb2xra1dvbGtrQm9sa2t5b2xra1NvbGtrSm9sa2tVb2xra3NvbGtrQW9sa2tzJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYXTigJlzIHdoYXQga2VlcHMgbWUgZ29pbmcsIGtub3dpbmcgaXTigJlzIGp1c3QgYSBtYXR0ZXIgb2YgdGltZSB1bnRpbCB5b3XigJlyZSBiYWNrIGhlcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1RoYXTigJlzIHdoYXQga2VlcHMgbWUgZ29pbmcsIGtub3dpbmcgaXTigJlzIGp1c3QgYSBtYXR0ZXIgb2YgdGltZSB1bnRpbCB5b3XigJlyZSBiYWNrIGhlcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0lvbGtrVW9sa2tib2xra2RvbGtrZW9sa2tYb2xra1dvbGtrRyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjSW9sa2tVb2xra2JvbGtrZG9sa2tlb2xra1hvbGtrV29sa2tHJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7T2YgY291cnNlIGJhYmUuIEJlZm9yZSB5b3Uga25vdyBpdCwgSeKAmWxsIGJlIHRoZXJlIHdpdGggeW91JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMV84JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7T2YgY291cnNlIGJhYmUuIEJlZm9yZSB5b3Uga25vdyBpdCwgSeKAmWxsIGJlIHRoZXJlIHdpdGggeW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzFfOCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMDIiIG5hbWU9IkFubmllQ2hhdEVwMl8xXzgiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSwxMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMV84JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O09mIGNvdXJzZSBiYWJlLiBCZWZvcmUgeW91IGtub3cgaXQsIEnigJlsbCBiZSB0aGVyZSB3aXRoIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09mIGNvdXJzZSBiYWJlLiBCZWZvcmUgeW91IGtub3cgaXQsIEnigJlsbCBiZSB0aGVyZSB3aXRoIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7T2YgY291cnNlIGJhYmUuIEJlZm9yZSB5b3Uga25vdyBpdCwgSeKAmWxsIGJlIHRoZXJlIHdpdGggeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtPaCwgYnkgdGhlIHdheS4uLiZxdW90OyAmcXVvdDtJb2xra01vbGtraW9sa2tlb2xra2lvbGtrTG9sa2t0b2xra3BvbGtrS29sa2tVb2xra3pvbGtrbm9sa2tPb2xra01vbGtrRm9sa2toJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09oLCBieSB0aGUgd2F5Li4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtPaCwgYnkgdGhlIHdheS4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7VGhlcmXigJlzIHNvbWV0aGluZyBJIHdhbnRlZCB0byBhc2sgeW91JnF1b3Q7ICZxdW90O1VvbGtrWW9sa2tBb2xra0JvbGtrZG9sa2tVb2xra1hvbGtrU29sa2twb2xra1lvbGtrbG9sa2tWb2xra2RvbGtrdm9sa2tRb2xra08mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhlcmXigJlzIHNvbWV0aGluZyBJIHdhbnRlZCB0byBhc2sgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUaGVyZeKAmXMgc29tZXRoaW5nIEkgd2FudGVkIHRvIGFzayB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1RoZSBnaXJscyB3YW50IHRvIGdvIG91dCB0b21vcnJvdyBuaWdodCZxdW90OyAmcXVvdDtYb2xra3VvbGtrZG9sa2t5b2xra25vbGtrUW9sa2tBb2xra29vbGtrVG9sa2tQb2xra0xvbGtreG9sa2tFb2xra1BvbGtraG9sa2tPJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoZSBnaXJscyB3YW50IHRvIGdvIG91dCB0b21vcnJvdyBuaWdodCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhlIGdpcmxzIHdhbnQgdG8gZ28gb3V0IHRvbW9ycm93IG5pZ2h0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDUuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtUbyBiZSBtb3JlIHNwZWNpZmljYWxseSwgTmFvbWkgd2FudHMgdG8gaGl0IGEgbmlnaHRjbHViJnF1b3Q7ICZxdW90O1JvbGtrYm9sa2t6b2xra3BvbGtrUW9sa2tQb2xra2tvbGtrdG9sa2tib2xra3NvbGtrZm9sa2t3b2xra2lvbGtrTW9sa2tjb2xra0EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VG8gYmUgbW9yZSBzcGVjaWZpY2FsbHksIE5hb21pIHdhbnRzIHRvIGhpdCBhIG5pZ2h0Y2x1YiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VG8gYmUgbW9yZSBzcGVjaWZpY2FsbHksIE5hb21pIHdhbnRzIHRvIGhpdCBhIG5pZ2h0Y2x1YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA2LjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuM3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SeKAmXZlIG5ldmVyIHJlYWxseSB0aG91Z2h0IGFib3V0IGdvaW5nIHRvIGEgcGxhY2UgbGlrZSB0aGF0IHdpdGhvdXQgeW91JnF1b3Q7ICZxdW90O3hvbGtreG9sa2tRb2xra1NvbGtrTG9sa2t1b2xra3NvbGtrTG9sa2tpb2xra1lvbGtreW9sa2tPb2xra0xvbGtrY29sa2tJb2xra1gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmXZlIG5ldmVyIHJlYWxseSB0aG91Z2h0IGFib3V0IGdvaW5nIHRvIGEgcGxhY2UgbGlrZSB0aGF0IHdpdGhvdXQgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJ4oCZdmUgbmV2ZXIgcmVhbGx5IHRob3VnaHQgYWJvdXQgZ29pbmcgdG8gYSBwbGFjZSBsaWtlIHRoYXQgd2l0aG91dCB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgOC41cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0J1dCBjb25zaWRlcmluZyB3aGF0IHlvdSB0b2xkIG1lLi4uJnF1b3Q7ICZxdW90O3BvbGtrRm9sa2tPb2xra0NvbGtrZW9sa2tpb2xra0tvbGtrU29sa2tkb2xra1BvbGtrcm9sa2tUb2xra21vbGtrRm9sa2t3b2xra0MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IGNvbnNpZGVyaW5nIHdoYXQgeW91IHRvbGQgbWUuLi4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0J1dCBjb25zaWRlcmluZyB3aGF0IHlvdSB0b2xkIG1lLi4uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtyb2xra0xvbGtrcG9sa2tEb2xra3NvbGtrem9sa2t4b2xra0omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDkuN3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3JvbGtrTG9sa2twb2xra0RvbGtrc29sa2t6b2xra3hvbGtrSiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O09mIGNvdXJzZSwgeW91IHNob3VsZCBnbyBvdXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8xXzlhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7T2YgY291cnNlLCB5b3Ugc2hvdWxkIGdvIG91dCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8xXzlhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3JvbGtrTG9sa2twb2xra0RvbGtrc29sa2t6b2xra3hvbGtrSiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0lmIHlvdSB3YW50IHRvLCBJIHRoaW5rIGl04oCZcyBmaW5lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMV85YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0lmIHlvdSB3YW50IHRvLCBJIHRoaW5rIGl04oCZcyBmaW5lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzFfOWImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTAzIiBuYW1lPSJBbm5pZUNoYXRFcDJfMV85YSIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDEzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8xXzlhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRkb21zdWIgPSAkZG9tc3ViKzEmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O09mIGNvdXJzZSwgeW91IHNob3VsZCBnbyBvdXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPZiBjb3Vyc2UsIHlvdSBzaG91bGQgZ28gb3V0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtPZiBjb3Vyc2UsIHlvdSBzaG91bGQgZ28gb3V0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7RG9u4oCZdCBnZXQgbWUgd3JvbmcuLi4mcXVvdDsgJnF1b3Q7d29sa2tWb2xra0ZvbGtrT29sa2tab2xra3JvbGtrU29sa2tpb2xra0ZvbGtrQ29sa2tpb2xra05vbGtrem9sa2t3b2xra1NvbGtrZyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEb27igJl0IGdldCBtZSB3cm9uZy4uLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7RG9u4oCZdCBnZXQgbWUgd3JvbmcuLi4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJltIG5vdCBzYXlpbmcgSSB3b3VsZCBiZSB3aXRoIGFub3RoZXIgZ3V5IG9yIGFueXRoaW5nJnF1b3Q7ICZxdW90O0ZvbGtrcW9sa2tzb2xra2JvbGtrYm9sa2tZb2xra21vbGtrTG9sa2tWb2xra1pvbGtrc29sa2tib2xra2pvbGtrQW9sa2t6b2xra2ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gbm90IHNheWluZyBJIHdvdWxkIGJlIHdpdGggYW5vdGhlciBndXkgb3IgYW55dGhpbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJltIG5vdCBzYXlpbmcgSSB3b3VsZCBiZSB3aXRoIGFub3RoZXIgZ3V5IG9yIGFueXRoaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJ4oCZZCBqdXN0IGJlIGdvaW5nIG91dCB3aXRoIG15IGZyaWVuZHMmcXVvdDsgJnF1b3Q7am9sa2tJb2xra1RvbGtrSG9sa2ttb2xra0hvbGtrQW9sa2tjb2xra2lvbGtrYW9sa2tFb2xra0tvbGtrRm9sa2thb2xra1NvbGtrdSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZZCBqdXN0IGJlIGdvaW5nIG91dCB3aXRoIG15IGZyaWVuZHMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJlkIGp1c3QgYmUgZ29pbmcgb3V0IHdpdGggbXkgZnJpZW5kcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7U29sa2tBb2xra29vbGtrVG9sa2tQb2xra1dvbGtrUW9sa2tzJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjRzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNTb2xra0FvbGtrb29sa2tUb2xra1BvbGtrV29sa2tRb2xra3MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGdldCBpdC4gWW91IGhhdmVu4oCZdCBnb25lIG91dCBpbiBhIHdoaWxlLCB5b3Ugc2hvdWxkIGVuam95IHlvdXJzZWxmIHdpdGggeW91ciBmcmllbmRzJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMV8xMCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgZ2V0IGl0LiBZb3UgaGF2ZW7igJl0IGdvbmUgb3V0IGluIGEgd2hpbGUsIHlvdSBzaG91bGQgZW5qb3kgeW91cnNlbGYgd2l0aCB5b3VyIGZyaWVuZHMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMV8xMCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMDQiIG5hbWU9IkFubmllQ2hhdEVwMl8xXzliIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMTM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzFfOWImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGRvbXN1YiA9ICRkb21zdWItMSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SWYgeW91IHdhbnQgdG8sIEkgdGhpbmsgaXTigJlzIGZpbmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJZiB5b3Ugd2FudCB0bywgSSB0aGluayBpdOKAmXMgZmluZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SWYgeW91IHdhbnQgdG8sIEkgdGhpbmsgaXTigJlzIGZpbmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtEb27igJl0IGdldCBtZSB3cm9uZy4uLiZxdW90OyAmcXVvdDt5b2xra09vbGtrb29sa2tWb2xra2tvbGtrQ29sa2tDb2xra3ZvbGtrcG9sa2tub2xra0NvbGtrRm9sa2t6b2xra3JvbGtrUW9sa2tzJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0RvbuKAmXQgZ2V0IG1lIHdyb25nLi4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtEb27igJl0IGdldCBtZSB3cm9uZy4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SeKAmW0gbm90IHNheWluZyBJIHdvdWxkIGJlIHdpdGggYW5vdGhlciBndXkgb3IgYW55dGhpbmcmcXVvdDsgJnF1b3Q7ZW9sa2tsb2xra2dvbGtrbm9sa2tSb2xra0RvbGtrUG9sa2t6b2xra1JvbGtrcG9sa2t3b2xra1BvbGtraG9sa2t5b2xra2VvbGtrayZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBub3Qgc2F5aW5nIEkgd291bGQgYmUgd2l0aCBhbm90aGVyIGd1eSBvciBhbnl0aGluZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmW0gbm90IHNheWluZyBJIHdvdWxkIGJlIHdpdGggYW5vdGhlciBndXkgb3IgYW55dGhpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJlkIGp1c3QgYmUgZ29pbmcgb3V0IHdpdGggbXkgZnJpZW5kcyZxdW90OyAmcXVvdDtHb2xra3pvbGtrVG9sa2tVb2xra1ZvbGtrT29sa2tMb2xra01vbGtreW9sa2tLb2xra1lvbGtrU29sa2tob2xra3dvbGtrcW9sa2tpJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJlkIGp1c3QgYmUgZ29pbmcgb3V0IHdpdGggbXkgZnJpZW5kcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmWQganVzdCBiZSBnb2luZyBvdXQgd2l0aCBteSBmcmllbmRzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtab2xra0lvbGtraG9sa2txb2xra3pvbGtrSW9sa2t3b2xra1cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuNHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1pvbGtrSW9sa2tob2xra3FvbGtrem9sa2tJb2xra3dvbGtrVyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgZ2V0IGl0LiBZb3UgaGF2ZW7igJl0IGdvbmUgb3V0IGluIGEgd2hpbGUsIHlvdSBzaG91bGQgZW5qb3kgeW91cnNlbGYgd2l0aCB5b3VyIGZyaWVuZHMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8xXzEwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBnZXQgaXQuIFlvdSBoYXZlbuKAmXQgZ29uZSBvdXQgaW4gYSB3aGlsZSwgeW91IHNob3VsZCBlbmpveSB5b3Vyc2VsZiB3aXRoIHlvdXIgZnJpZW5kcyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8xXzEwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEwNSIgbmFtZT0iQW5uaWVDaGF0RXAyXzFfMTAiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCwxMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMV8xMCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGdldCBpdC4gWW91IGhhdmVu4oCZdCBnb25lIG91dCBpbiBhIHdoaWxlLCB5b3Ugc2hvdWxkIGVuam95IHlvdXJzZWxmIHdpdGggeW91ciBmcmllbmRzJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBnZXQgaXQuIFlvdSBoYXZlbuKAmXQgZ29uZSBvdXQgaW4gYSB3aGlsZSwgeW91IHNob3VsZCBlbmpveSB5b3Vyc2VsZiB3aXRoIHlvdXIgZnJpZW5kcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBnZXQgaXQuIFlvdSBoYXZlbuKAmXQgZ29uZSBvdXQgaW4gYSB3aGlsZSwgeW91IHNob3VsZCBlbmpveSB5b3Vyc2VsZiB3aXRoIHlvdXIgZnJpZW5kcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1RoYW5rcyBob25leSwgeW914oCZcmUgYWx3YXlzIHNvIHVuZGVyc3RhbmRpbmcmcXVvdDsgJnF1b3Q7UW9sa2tab2xra2xvbGtrVW9sa2tyb2xra1RvbGtrbm9sa2tGb2xra2JvbGtrS29sa2t4b2xra1BvbGtrT29sa2tSb2xra0FvbGtrSCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGFua3MgaG9uZXksIHlvdeKAmXJlIGFsd2F5cyBzbyB1bmRlcnN0YW5kaW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUaGFua3MgaG9uZXksIHlvdeKAmXJlIGFsd2F5cyBzbyB1bmRlcnN0YW5kaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNXMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1JvbGtrSG9sa2tSb2xra1dvbGtreG9sa2thb2xra3BvbGtrWCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi41cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjUm9sa2tIb2xra1JvbGtrV29sa2t4b2xra2FvbGtrcG9sa2tYJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBsb3ZlIHlvdSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzFfMTFhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBsb3ZlIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8xXzExYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNSb2xra0hvbGtrUm9sa2tXb2xra3hvbGtrYW9sa2twb2xra1gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDvwn6WwJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMV8xMWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDvwn6WwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzFfMTFiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEwNiIgbmFtZT0iQW5uaWVDaGF0RXAyXzFfMTFhIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsMTM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzFfMTFhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgbG92ZSB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGxvdmUgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGxvdmUgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7VGhlIGJyZWFr4oCZcyBhbG1vc3Qgb3ZlciZxdW90OyAmcXVvdDt0b2xra2lvbGtrRm9sa2trb2xra0tvbGtraG9sa2tIb2xra0lvbGtrbW9sa2tPb2xra3BvbGtrZG9sa2tVb2xra05vbGtrWG9sa2tBJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoZSBicmVha+KAmXMgYWxtb3N0IG92ZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1RoZSBicmVha+KAmXMgYWxtb3N0IG92ZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1dlIGhhdmUgdG8gZ28gYmFjayB0byB0aGUgb2ZmaWNlJnF1b3Q7ICZxdW90O2NvbGtrbm9sa2tvb2xra3JvbGtrZm9sa2tGb2xra0lvbGtrS29sa2trb2xra25vbGtrV29sa2tzb2xra21vbGtrTm9sa2tWb2xra2UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2UgaGF2ZSB0byBnbyBiYWNrIHRvIHRoZSBvZmZpY2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1dlIGhhdmUgdG8gZ28gYmFjayB0byB0aGUgb2ZmaWNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtob2xra1NvbGtrRm9sa2tab2xra1NvbGtrcG9sa2tmb2xra3kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuN3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2hvbGtrU29sa2tGb2xra1pvbGtrU29sa2twb2xra2ZvbGtreSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1llYWgsIEnigJl2ZSBnb3QgdG8ga2VlcCB3b3JraW5nIHRvbyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzFfMTImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZZWFoLCBJ4oCZdmUgZ290IHRvIGtlZXAgd29ya2luZyB0b28mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMV8xMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMDciIG5hbWU9IkFubmllQ2hhdEVwMl8xXzExYiIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDEzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8xXzExYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7WW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtUaGUgYnJlYWvigJlzIGFsbW9zdCBvdmVyJnF1b3Q7ICZxdW90O3pvbGtrUm9sa2tTb2xra2hvbGtrRm9sa2tNb2xra2xvbGtrZG9sa2tRb2xra1lvbGtrUW9sa2thb2xra3FvbGtrZG9sa2tZb2xra3YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhlIGJyZWFr4oCZcyBhbG1vc3Qgb3ZlciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhlIGJyZWFr4oCZcyBhbG1vc3Qgb3ZlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7V2UgaGF2ZSB0byBnbyBiYWNrIHRvIHRoZSBvZmZpY2UmcXVvdDsgJnF1b3Q7bm9sa2tub2xra2JvbGtrZW9sa2tmb2xra01vbGtrY29sa2tob2xra2FvbGtrWG9sa2tyb2xra2pvbGtrd29sa2t0b2xra0VvbGtrTyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZSBoYXZlIHRvIGdvIGJhY2sgdG8gdGhlIG9mZmljZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7V2UgaGF2ZSB0byBnbyBiYWNrIHRvIHRoZSBvZmZpY2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3VvbGtrUm9sa2tmb2xra2RvbGtraW9sa2tsb2xra3BvbGtrUSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjdW9sa2tSb2xra2ZvbGtrZG9sa2tpb2xra2xvbGtrcG9sa2tRJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WWVhaCwgSeKAmXZlIGdvdCB0byBrZWVwIHdvcmtpbmcgdG9vJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMV8xMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1llYWgsIEnigJl2ZSBnb3QgdG8ga2VlcCB3b3JraW5nIHRvbyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8xXzEyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEwOCIgbmFtZT0iQW5uaWVDaGF0RXAyXzFfMTIiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSwxMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMV8xMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZZWFoLCBJ4oCZdmUgZ290IHRvIGtlZXAgd29ya2luZyB0b28mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFoLCBJ4oCZdmUgZ290IHRvIGtlZXAgd29ya2luZyB0b28mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1llYWgsIEnigJl2ZSBnb3QgdG8ga2VlcCB3b3JraW5nIHRvbyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtDb2xra0xvbGtrcG9sa2tvb2xra0NvbGtrZG9sa2tzb2xra1cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0NvbGtrTG9sa2twb2xra29vbGtrQ29sa2tkb2xra3NvbGtrVyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1dl4oCZbGwgdGFsayBsYXRlciZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzFfMTMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXZeKAmWxsIHRhbGsgbGF0ZXImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMV8xMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMDkiIG5hbWU9IkFubmllQ2hhdEVwMl8xXzEzIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDEzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8xXzEzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1dl4oCZbGwgdGFsayBsYXRlciZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dl4oCZbGwgdGFsayBsYXRlciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7V2XigJlsbCB0YWxrIGxhdGVyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuMnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7UGVyZmVjdCBob25leSZxdW90OyAmcXVvdDtzb2xra2lvbGtrTW9sa2tlb2xra2xvbGtrbW9sa2tXb2xra1ZvbGtrVG9sa2tjb2xra2xvbGtreG9sa2thb2xra2JvbGtrbW9sa2tsJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1BlcmZlY3QgaG9uZXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1BlcmZlY3QgaG9uZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJlsbCB0ZXh0IHlvdSBhZnRlciB3b3JrJnF1b3Q7ICZxdW90O0VvbGtrc29sa2tEb2xra2xvbGtrUG9sa2tUb2xra2lvbGtrRG9sa2tEb2xra01vbGtrT29sa2tLb2xra3VvbGtrbW9sa2tRb2xra0kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmWxsIHRleHQgeW91IGFmdGVyIHdvcmsmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJlsbCB0ZXh0IHlvdSBhZnRlciB3b3JrJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMnMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMy4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q78J+lsCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMV8xMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0X2hvdXIgPSAmcXVvdDsxNzo0NiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkaG91ciA9ICZxdW90OzE3OjQ2JnF1b3Q7Jmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtvZmZsaW5lLXRleHQmcXVvdDsmZ3Q7QW5uaWUgaXMgb2ZmbGluZSZsdDsvZGl2Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjJzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX25vdGVzLnB1c2goJnF1b3Q7QW5uaWUgYXNrZWQgbWUgaWYgSSB3YXMgb2theSB3aXRoIGhlciBnb2luZyBvdXQgd2l0aCBoZXIgZnJpZW5kcyB0aGUgbmV4dCBuaWdodC4gT2YgY291cnNlLCBJIHRvbGQgaGVyIHllcy4mcXVvdDspJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjJzJmd0OyZndDsKJmx0OyZsdDtpZiAkbmFvbWlfb2ZmZXIgPT0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkTmFvbWlfY2hhdCA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4ycyZndDsmZ3Q7CiZsdDsmbHQ7aWYgJG5hb21pX29mZmVyID09IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRTdGF0ZSA9ICZxdW90O05hb21pQ2hhdEVwMl8xXzEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4ycyZndDsmZ3Q7CiZsdDsmbHQ7aWYgJG5hb21pX29mZmVyID09IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtIZXksIGl04oCZcyBtZSBhZ2Fpbi4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjJzJmd0OyZndDsKJmx0OyZsdDtpZiAkbmFvbWlfb2ZmZXIgPT0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkaG91ciA9ICZxdW90OzE0OjQwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMnMmZ3Q7Jmd0OwombHQ7Jmx0O2lmICRuYW9taV9vZmZlciA9PSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nID0gJE5hb21pX2NoYXRMb2cuc2xpY2UoLTUpJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMnMmZ3Q7Jmd0OwombHQ7Jmx0O2lmICRuYW9taV9vZmZlciA9PSB0cnVlJmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXQgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMnMmZ3Q7Jmd0OwombHQ7Jmx0O2lmICRuYW9taV9vZmZlciA9PSB0cnVlJmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSA9ICZxdW90O0FubmllQ2hhdEVwMl8yXzEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4ycyZndDsmZ3Q7CiZsdDsmbHQ7aWYgJG5hb21pX29mZmVyID09IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hleSBob25leSwganVzdCBnb3QgaG9tZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjJzJmd0OyZndDsKJmx0OyZsdDtpZiAkbmFvbWlfb2ZmZXIgPT0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICR0cmFuc2l0aW9uID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjJzJmd0OyZndDsKJmx0OyZsdDtpZiAkbmFvbWlfb2ZmZXIgPT0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICR0cmFuc2l0aW9uVGV4dCA9ICZxdW90O0EgZmV3IGhvdXJzIGxhdGVyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjExMCIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfMSIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSwxMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0hleSBob25leSwganVzdCBnb3QgaG9tZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGV5IGhvbmV5LCBqdXN0IGdvdCBob21lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIZXkgaG9uZXksIGp1c3QgZ290IGhvbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtIb3figJlzIGV2ZXJ5dGhpbmcgZ29pbmcgb3ZlciB0aGVyZT8mcXVvdDsgJnF1b3Q7am9sa2thb2xra0pvbGtrQW9sa2tpb2xra0ZvbGtrS29sa2tpb2xra1RvbGtrSW9sa2tob2xra2JvbGtrc29sa2tTb2xra3BvbGtrSCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIb3figJlzIGV2ZXJ5dGhpbmcgZ29pbmcgb3ZlciB0aGVyZT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hvd+KAmXMgZXZlcnl0aGluZyBnb2luZyBvdmVyIHRoZXJlPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Um9sa2tHb2xra1hvbGtrQm9sa2tXb2xra0hvbGtrWW9sa2tmJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjdzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNSb2xra0dvbGtrWG9sa2tCb2xra1dvbGtrSG9sa2tZb2xra2YmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtTdGlsbCBzdHJlc3NlZCwgd29ya2luZyBvbiB0aGlzJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl8yJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7U3RpbGwgc3RyZXNzZWQsIHdvcmtpbmcgb24gdGhpcyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMTEiIG5hbWU9IkFubmllQ2hhdEVwMl8yXzIiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCwxNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8yJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1N0aWxsIHN0cmVzc2VkLCB3b3JraW5nIG9uIHRoaXMmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTdGlsbCBzdHJlc3NlZCwgd29ya2luZyBvbiB0aGlzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtTdGlsbCBzdHJlc3NlZCwgd29ya2luZyBvbiB0aGlzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2xvbGtrRG9sa2tYb2xra0ZvbGtrUm9sa2tib2xra1hvbGtrcCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjbG9sa2tEb2xra1hvbGtrRm9sa2tSb2xra2JvbGtrWG9sa2twJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QnV0IHRhbGtpbmcgdG8geW91IGhlbHBzIG1lIHJlbGF4JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl8zJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QnV0IHRhbGtpbmcgdG8geW91IGhlbHBzIG1lIHJlbGF4JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMTIiIG5hbWU9IkFubmllQ2hhdEVwMl8yXzMiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSwxNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8zJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0J1dCB0YWxraW5nIHRvIHlvdSBoZWxwcyBtZSByZWxheCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCB0YWxraW5nIHRvIHlvdSBoZWxwcyBtZSByZWxheCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QnV0IHRhbGtpbmcgdG8geW91IGhlbHBzIG1lIHJlbGF4JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt1b2xra0ZvbGtrYW9sa2tTb2xra2pvbGtrQ29sa2tJb2xra2smcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3VvbGtrRm9sa2thb2xra1NvbGtram9sa2tDb2xra0lvbGtrayZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1NvLCBob3cgYXJlIHlvdT8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzQmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtTbywgaG93IGFyZSB5b3U/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMTMiIG5hbWU9IkFubmllQ2hhdEVwMl8yXzQiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCwxNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl80JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1NvLCBob3cgYXJlIHlvdT8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTbywgaG93IGFyZSB5b3U/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtTbywgaG93IGFyZSB5b3U/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7WW91IGtub3csIEnigJltIGdvb2QmcXVvdDsgJnF1b3Q7QW9sa2t5b2xra3BvbGtrRG9sa2tZb2xra0VvbGtrd29sa2tDb2xra2RvbGtrWG9sa2tUb2xra1pvbGtrd29sa2tob2xra2NvbGtrWCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3Uga25vdywgSeKAmW0gZ29vZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW91IGtub3csIEnigJltIGdvb2QmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0FsdGhvdWdoIHRvZGF54oCZcyBiZWVuLi4uIGludGVyZXN0aW5nIGJlY2F1c2Ugb2Ygd2hhdCB5b3UgdG9sZCBtZSZxdW90OyAmcXVvdDtKb2xra0lvbGtrSW9sa2tsb2xra3NvbGtrSm9sa2tVb2xra05vbGtrUG9sa2tvb2xra0pvbGtrdG9sa2tBb2xra21vbGtrVG9sa2tkJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FsdGhvdWdoIHRvZGF54oCZcyBiZWVuLi4uIGludGVyZXN0aW5nIGJlY2F1c2Ugb2Ygd2hhdCB5b3UgdG9sZCBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QWx0aG91Z2ggdG9kYXnigJlzIGJlZW4uLi4gaW50ZXJlc3RpbmcgYmVjYXVzZSBvZiB3aGF0IHlvdSB0b2xkIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuOXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtBY3R1YWxseSwgdGhhdOKAmXMgd2hhdCBJIHdhbnRlZCB0byB0YWxrIGFib3V0JnF1b3Q7ICZxdW90O0tvbGtrbW9sa2tsb2xra1dvbGtrTW9sa2twb2xra3BvbGtrVm9sa2tRb2xra2dvbGtrQ29sa2tMb2xra2NvbGtrem9sa2tab2xra0kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QWN0dWFsbHksIHRoYXTigJlzIHdoYXQgSSB3YW50ZWQgdG8gdGFsayBhYm91dCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QWN0dWFsbHksIHRoYXTigJlzIHdoYXQgSSB3YW50ZWQgdG8gdGFsayBhYm91dCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QnV0IEkgd2FudCB5b3UgdG8gYmUgaG9uZXN0IHdpdGggbWUsIG9rYXk/JnF1b3Q7ICZxdW90O0RvbGtrZm9sa2t2b2xra3ZvbGtrbG9sa2tBb2xra3hvbGtram9sa2ttb2xra3FvbGtrWG9sa2tIb2xra0hvbGtrSm9sa2tBb2xra2UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IEkgd2FudCB5b3UgdG8gYmUgaG9uZXN0IHdpdGggbWUsIG9rYXk/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCdXQgSSB3YW50IHlvdSB0byBiZSBob25lc3Qgd2l0aCBtZSwgb2theT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2lvbGtrTG9sa2tSb2xra3JvbGtrcm9sa2tZb2xra3hvbGtrYSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNS45cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjaW9sa2tMb2xra1JvbGtrcm9sa2tyb2xra1lvbGtreG9sa2thJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7T2YgY291cnNlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl81YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O09mIGNvdXJzZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzVhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2lvbGtrTG9sa2tSb2xra3JvbGtrcm9sa2tZb2xra3hvbGtrYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgaGF2ZSBhbHdheXMgYmVlbiZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfNWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGhhdmUgYWx3YXlzIGJlZW4mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl81YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMTQiIG5hbWU9IkFubmllQ2hhdEVwMl8yXzVhIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMTQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfNWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7T2YgY291cnNlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2YgY291cnNlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtPZiBjb3Vyc2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC45cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtIb3cgbG9uZyBoYXZlIHlvdSBiZWVuIHdhbnRpbmcgdG8gdHJ5IOKAnHRoaXPigJ0/JnF1b3Q7ICZxdW90O3dvbGtrVW9sa2tab2xra29vbGtrZm9sa2t1b2xra0pvbGtraW9sa2tab2xra2pvbGtrZm9sa2ttb2xra25vbGtrUG9sa2thb2xra0ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SG93IGxvbmcgaGF2ZSB5b3UgYmVlbiB3YW50aW5nIHRvIHRyeSDigJx0aGlz4oCdPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SG93IGxvbmcgaGF2ZSB5b3UgYmVlbiB3YW50aW5nIHRvIHRyeSDigJx0aGlz4oCdPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7QW9sa2tFb2xra0hvbGtrS29sa2t5b2xra0dvbGtrUG9sa2t6JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjhzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNBb2xra0VvbGtrSG9sa2tLb2xra3lvbGtrR29sa2tQb2xra3omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtGb3IgYSBsb25nIHRpbWUgdG8gYmUgaG9uZXN0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl82YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0ZvciBhIGxvbmcgdGltZSB0byBiZSBob25lc3QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl82YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNBb2xra0VvbGtrSG9sa2tLb2xra3lvbGtrR29sa2tQb2xra3omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtKdXN0IHJlY2VudGx5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl82YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0p1c3QgcmVjZW50bHkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl82YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMTUiIG5hbWU9IkFubmllQ2hhdEVwMl8yXzViIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsMTQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfNWImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBoYXZlIGFsd2F5cyBiZWVuJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBoYXZlIGFsd2F5cyBiZWVuJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGhhdmUgYWx3YXlzIGJlZW4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SG93IGxvbmcgaGF2ZSB5b3UgYmVlbiB3YW50aW5nIHRvIHRyeSDigJx0aGlz4oCdPyZxdW90OyAmcXVvdDtQb2xra3VvbGtrSW9sa2tVb2xra0FvbGtrTG9sa2tUb2xra2hvbGtrR29sa2twb2xra3VvbGtrRW9sa2tZb2xra1BvbGtrT29sa2tiJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvdyBsb25nIGhhdmUgeW91IGJlZW4gd2FudGluZyB0byB0cnkg4oCcdGhpc+KAnT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hvdyBsb25nIGhhdmUgeW91IGJlZW4gd2FudGluZyB0byB0cnkg4oCcdGhpc+KAnT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O05vbGtrVm9sa2tYb2xra0xvbGtrZW9sa2tMb2xra2hvbGtrdCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi4xcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjTm9sa2tWb2xra1hvbGtrTG9sa2tlb2xra0xvbGtraG9sa2t0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7Rm9yIGEgbG9uZyB0aW1lIHRvIGJlIGhvbmVzdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfNmEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtGb3IgYSBsb25nIHRpbWUgdG8gYmUgaG9uZXN0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfNmEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjTm9sa2tWb2xra1hvbGtrTG9sa2tlb2xra0xvbGtraG9sa2t0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SnVzdCByZWNlbnRseSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfNmImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtKdXN0IHJlY2VudGx5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfNmImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTE2IiBuYW1lPSJBbm5pZUNoYXRFcDJfMl82YSIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDE0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8yXzZhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0ZvciBhIGxvbmcgdGltZSB0byBiZSBob25lc3QmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtGb3IgYSBsb25nIHRpbWUgdG8gYmUgaG9uZXN0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtGb3IgYSBsb25nIHRpbWUgdG8gYmUgaG9uZXN0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuMnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBzZWUmcXVvdDsgJnF1b3Q7dG9sa2tib2xra1RvbGtra29sa2tLb2xra2ZvbGtrUG9sa2tib2xra2JvbGtrVG9sa2tNb2xra3JvbGtrR29sa2tqb2xra0pvbGtrdCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHNlZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBzZWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1doYXTigJlzIHRoZSBsaW1pdD8mcXVvdDsgJnF1b3Q7Q29sa2tqb2xra3JvbGtreW9sa2thb2xra3dvbGtrem9sa2tGb2xra1pvbGtrTm9sa2tDb2xra2FvbGtrcm9sa2tOb2xra1NvbGtrRyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXaGF04oCZcyB0aGUgbGltaXQ/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtXaGF04oCZcyB0aGUgbGltaXQ/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtIb3cgZmFyIHdvdWxkIHlvdSB3YW50IG1lIHRvIGdvIHdpdGggYW5vdGhlciBndXk/JnF1b3Q7ICZxdW90O1BvbGtrWW9sa2tib2xra05vbGtreG9sa2tXb2xra3lvbGtrc29sa2tKb2xra3hvbGtrV29sa2tub2xra1ZvbGtrd29sa2tCb2xra24mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SG93IGZhciB3b3VsZCB5b3Ugd2FudCBtZSB0byBnbyB3aXRoIGFub3RoZXIgZ3V5PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SG93IGZhciB3b3VsZCB5b3Ugd2FudCBtZSB0byBnbyB3aXRoIGFub3RoZXIgZ3V5PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7RG8geW91IHdhbnQgbWUgdG8ga2lzcyBvdGhlciBndXlzPyZxdW90OyAmcXVvdDtkb2xra1FvbGtrRm9sa2tVb2xra0NvbGtrSG9sa2tyb2xra1dvbGtrd29sa2tPb2xra0tvbGtrcG9sa2tnb2xra3dvbGtrWW9sa2tEJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0RvIHlvdSB3YW50IG1lIHRvIGtpc3Mgb3RoZXIgZ3V5cz8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0RvIHlvdSB3YW50IG1lIHRvIGtpc3Mgb3RoZXIgZ3V5cz8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1RvbGtraG9sa2trb2xra3lvbGtrd29sa2tzb2xra09vbGtrdSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNS4xcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjVG9sa2tob2xra2tvbGtreW9sa2t3b2xra3NvbGtrT29sa2t1JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WWVzLCBhYnNvbHV0ZWx5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl83YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1llcywgYWJzb2x1dGVseSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzdhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1RvbGtraG9sa2trb2xra3lvbGtrd29sa2tzb2xra09vbGtrdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O05vLCBJIHdvdWxkbuKAmXQgd2FudCB0aGF0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl83YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O05vLCBJIHdvdWxkbuKAmXQgd2FudCB0aGF0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfN2ImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTE3IiBuYW1lPSJBbm5pZUNoYXRFcDJfMl82YiIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDE0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8yXzZiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0p1c3QgcmVjZW50bHkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtKdXN0IHJlY2VudGx5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtKdXN0IHJlY2VudGx5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuMnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBzZWUmcXVvdDsgJnF1b3Q7dW9sa2tWb2xra2RvbGtrR29sa2txb2xra2dvbGtrbW9sa2tLb2xra21vbGtrem9sa2tIb2xra29vbGtrd29sa2tjb2xra09vbGtrayZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHNlZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBzZWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1doYXTigJlzIHRoZSBsaW1pdD8mcXVvdDsgJnF1b3Q7Y29sa2tjb2xra1RvbGtrUG9sa2trb2xra0dvbGtrd29sa2tyb2xra1ZvbGtrd29sa2tmb2xra0tvbGtrdW9sa2tFb2xra2dvbGtrUCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXaGF04oCZcyB0aGUgbGltaXQ/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtXaGF04oCZcyB0aGUgbGltaXQ/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtIb3cgZmFyIHdvdWxkIHlvdSB3YW50IG1lIHRvIGdvIHdpdGggYW5vdGhlciBndXk/JnF1b3Q7ICZxdW90O1RvbGtrd29sa2tob2xra2lvbGtrTW9sa2txb2xra0ZvbGtrcG9sa2tpb2xra0xvbGtrcm9sa2tPb2xra3JvbGtra29sa2t2b2xra0YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SG93IGZhciB3b3VsZCB5b3Ugd2FudCBtZSB0byBnbyB3aXRoIGFub3RoZXIgZ3V5PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SG93IGZhciB3b3VsZCB5b3Ugd2FudCBtZSB0byBnbyB3aXRoIGFub3RoZXIgZ3V5PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7RG8geW91IHdhbnQgbWUgdG8ga2lzcyBvdGhlciBndXlzPyZxdW90OyAmcXVvdDt1b2xra0RvbGtrTW9sa2tyb2xra2NvbGtrSW9sa2tJb2xra2RvbGtrcG9sa2tBb2xra3BvbGtrWW9sa2tnb2xra1FvbGtrWW9sa2tjJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0RvIHlvdSB3YW50IG1lIHRvIGtpc3Mgb3RoZXIgZ3V5cz8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0RvIHlvdSB3YW50IG1lIHRvIGtpc3Mgb3RoZXIgZ3V5cz8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1ZvbGtrZG9sa2tab2xra25vbGtreG9sa2tGb2xra1dvbGtrbSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNS4xcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjVm9sa2tkb2xra1pvbGtrbm9sa2t4b2xra0ZvbGtrV29sa2ttJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WWVzLCBhYnNvbHV0ZWx5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl83YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1llcywgYWJzb2x1dGVseSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzdhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1ZvbGtrZG9sa2tab2xra25vbGtreG9sa2tGb2xra1dvbGtrbSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O05vLCBJIHdvdWxkbuKAmXQgd2FudCB0aGF0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl83YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O05vLCBJIHdvdWxkbuKAmXQgd2FudCB0aGF0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfN2ImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTE4IiBuYW1lPSJBbm5pZUNoYXRFcDJfMl83YSIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDE0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8yXzdhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRraXNzaW5nID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WWVzLCBhYnNvbHV0ZWx5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WWVzLCBhYnNvbHV0ZWx5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtZZXMsIGFic29sdXRlbHkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7c29sa2t4b2xra1VvbGtrTm9sa2tRb2xra3VvbGtrYm9sa2twJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNzb2xra3hvbGtrVW9sa2tOb2xra1FvbGtrdW9sa2tib2xra3AmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIHdvdWxkbuKAmXQgbWluZCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfOGEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIHdvdWxkbuKAmXQgbWluZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzhhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjExOSIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfN2IiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsMTQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfN2ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7Tm8sIEkgd291bGRu4oCZdCB3YW50IHRoYXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtObywgSSB3b3VsZG7igJl0IHdhbnQgdGhhdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7Tm8sIEkgd291bGRu4oCZdCB3YW50IHRoYXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7am9sa2tib2xra3pvbGtrRG9sa2t4b2xra0tvbGtrZW9sa2t5JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNqb2xra2JvbGtrem9sa2tEb2xra3hvbGtrS29sa2tlb2xra3kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIHdvdWxkbuKAmXQgbGlrZSB5b3UgdG8ga2lzcyBvdGhlciBtZW4gcm9tYW50aWNhbGx5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl84YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgd291bGRu4oCZdCBsaWtlIHlvdSB0byBraXNzIG90aGVyIG1lbiByb21hbnRpY2FsbHkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl84YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMjAiIG5hbWU9IkFubmllQ2hhdEVwMl8yXzhhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDE0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8yXzhhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgd291bGRu4oCZdCBtaW5kJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB3b3VsZG7igJl0IG1pbmQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgd291bGRu4oCZdCBtaW5kJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuMnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBzZWUmcXVvdDsgJnF1b3Q7VW9sa2thb2xra3hvbGtrVm9sa2tCb2xra25vbGtrdW9sa2tub2xra0JvbGtrd29sa2tCb2xra2dvbGtra29sa2tub2xra1JvbGtrbCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHNlZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBzZWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgZG9u4oCZdCBmdWxseSB1bmRlcnN0YW5kIHlvdXIgZmFudGFzeSZxdW90OyAmcXVvdDtKb2xra1ZvbGtrUm9sa2tTb2xra29vbGtrVG9sa2t0b2xra0ZvbGtrbm9sa2tWb2xra0dvbGtrUG9sa2tyb2xra3hvbGtrVm9sa2thJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZG9u4oCZdCBmdWxseSB1bmRlcnN0YW5kIHlvdXIgZmFudGFzeSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBkb27igJl0IGZ1bGx5IHVuZGVyc3RhbmQgeW91ciBmYW50YXN5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtXb3VsZCB5b3UgbGlrZSBtdWx0aXBsZSBtZW4gdG8gaGF2ZSBzZXggd2l0aCBtZT8mcXVvdDsgJnF1b3Q7Tm9sa2tmb2xra1NvbGtrT29sa2tqb2xra0dvbGtrZ29sa2tPb2xra0VvbGtrdW9sa2tob2xra2FvbGtrZW9sa2tEb2xra0JvbGtrVyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXb3VsZCB5b3UgbGlrZSBtdWx0aXBsZSBtZW4gdG8gaGF2ZSBzZXggd2l0aCBtZT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1dvdWxkIHlvdSBsaWtlIG11bHRpcGxlIG1lbiB0byBoYXZlIHNleCB3aXRoIG1lPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7T3IganVzdCBvbmUgcGVyc29uPyZxdW90OyAmcXVvdDtEb2xra05vbGtrRm9sa2tmb2xra3FvbGtram9sa2tRb2xra2FvbGtrWm9sa2tjb2xra1RvbGtrbm9sa2tjb2xra2RvbGtrZ29sa2tIJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09yIGp1c3Qgb25lIHBlcnNvbj8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O09yIGp1c3Qgb25lIHBlcnNvbj8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2ZvbGtrVG9sa2tub2xra05vbGtrdW9sa2tjb2xra2NvbGtrciZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC45cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjZm9sa2tUb2xra25vbGtrTm9sa2t1b2xra2NvbGtrY29sa2tyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QmVpbmcgaG9uZXN0LCBJ4oCZZCBsb3ZlIGl0IGlmIGEgZ3JvdXAgb2YgbWVuIGRpZCB3aGF0ZXZlciB0aGV5IHdhbnRlZCB3aXRoIHlvdSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTBhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QmVpbmcgaG9uZXN0LCBJ4oCZZCBsb3ZlIGl0IGlmIGEgZ3JvdXAgb2YgbWVuIGRpZCB3aGF0ZXZlciB0aGV5IHdhbnRlZCB3aXRoIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzEwYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNmb2xra1RvbGtrbm9sa2tOb2xra3VvbGtrY29sa2tjb2xra3ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtKdXN0IG9uZSBndXksIG1heWJlIHNvbWVvbmUgd2UgYm90aCBjaG9vc2UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzEwYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0p1c3Qgb25lIGd1eSwgbWF5YmUgc29tZW9uZSB3ZSBib3RoIGNob29zZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzEwYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMjEiIG5hbWU9IkFubmllQ2hhdEVwMl8yXzhiIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMTYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfOGImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSB3b3VsZG7igJl0IGxpa2UgeW91IHRvIGtpc3Mgb3RoZXIgbWVuIHJvbWFudGljYWxseSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgd291bGRu4oCZdCBsaWtlIHlvdSB0byBraXNzIG90aGVyIG1lbiByb21hbnRpY2FsbHkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgd291bGRu4oCZdCBsaWtlIHlvdSB0byBraXNzIG90aGVyIG1lbiByb21hbnRpY2FsbHkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7UW9sa2tkb2xra0FvbGtrTG9sa2tkb2xra0FvbGtrYm9sa2tiJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNRb2xra2RvbGtrQW9sa2tMb2xra2RvbGtrQW9sa2tib2xra2ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGp1c3Qgd2FudCB5b3UgdG8gaGF2ZSBzZXggd2l0aCB0aGVtJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl85YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kganVzdCB3YW50IHlvdSB0byBoYXZlIHNleCB3aXRoIHRoZW0mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl85YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMjIiIG5hbWU9IkFubmllQ2hhdEVwMl8yXzliIiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsMTYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfOWImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBqdXN0IHdhbnQgeW91IHRvIGhhdmUgc2V4IHdpdGggdGhlbSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kganVzdCB3YW50IHlvdSB0byBoYXZlIHNleCB3aXRoIHRoZW0mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kganVzdCB3YW50IHlvdSB0byBoYXZlIHNleCB3aXRoIHRoZW0mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4ycyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIHNlZSZxdW90OyAmcXVvdDtvb2xra0tvbGtra29sa2t3b2xra09vbGtrV29sa2tub2xra2pvbGtrZW9sa2tmb2xra3hvbGtrcG9sa2t4b2xra3pvbGtrVG9sa2tLJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgc2VlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIHNlZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBkb27igJl0IGZ1bGx5IHVuZGVyc3RhbmQgeW91ciBmYW50YXN5JnF1b3Q7ICZxdW90O2VvbGtrcW9sa2tKb2xra0dvbGtreW9sa2t5b2xra1lvbGtreW9sa2t6b2xra0xvbGtrRG9sa2trb2xra2RvbGtrYW9sa2t6b2xra0YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBkb27igJl0IGZ1bGx5IHVuZGVyc3RhbmQgeW91ciBmYW50YXN5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGRvbuKAmXQgZnVsbHkgdW5kZXJzdGFuZCB5b3VyIGZhbnRhc3kmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1dvdWxkIHlvdSBsaWtlIG11bHRpcGxlIG1lbiB0byBoYXZlIHNleCB3aXRoIG1lPyZxdW90OyAmcXVvdDtpb2xra2VvbGtrVG9sa2t4b2xra09vbGtrbG9sa2txb2xra3BvbGtrZm9sa2thb2xra3dvbGtram9sa2tJb2xra0JvbGtrQ29sa2tCJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dvdWxkIHlvdSBsaWtlIG11bHRpcGxlIG1lbiB0byBoYXZlIHNleCB3aXRoIG1lPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7V291bGQgeW91IGxpa2UgbXVsdGlwbGUgbWVuIHRvIGhhdmUgc2V4IHdpdGggbWU/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuOXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtPciBqdXN0IG9uZSBwZXJzb24/JnF1b3Q7ICZxdW90O2hvbGtrZ29sa2tab2xra3ZvbGtrRW9sa2thb2xra1ZvbGtrZW9sa2t2b2xra3hvbGtrbG9sa2thb2xra2VvbGtrS29sa2tNb2xra1AmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T3IganVzdCBvbmUgcGVyc29uPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7T3IganVzdCBvbmUgcGVyc29uPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7cW9sa2tWb2xra1pvbGtrdm9sa2tWb2xra2RvbGtrdW9sa2tJJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjlzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNxb2xra1ZvbGtrWm9sa2t2b2xra1ZvbGtrZG9sa2t1b2xra0kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtCZWluZyBob25lc3QsIEnigJlkIGxvdmUgaXQgaWYgYSBncm91cCBvZiBtZW4gZGlkIHdoYXRldmVyIHRoZXkgd2FudGVkIHdpdGggeW91JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xMGEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtCZWluZyBob25lc3QsIEnigJlkIGxvdmUgaXQgaWYgYSBncm91cCBvZiBtZW4gZGlkIHdoYXRldmVyIHRoZXkgd2FudGVkIHdpdGggeW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTBhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3FvbGtrVm9sa2tab2xra3ZvbGtrVm9sa2tkb2xra3VvbGtrSSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0p1c3Qgb25lIGd1eSwgbWF5YmUgc29tZW9uZSB3ZSBib3RoIGNob29zZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTBiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SnVzdCBvbmUgZ3V5LCBtYXliZSBzb21lb25lIHdlIGJvdGggY2hvb3NlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTBiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEyMyIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfMTBhIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsMTYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTBhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRnYW5nYmFuZyA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0JlaW5nIGhvbmVzdCwgSeKAmWQgbG92ZSBpdCBpZiBhIGdyb3VwIG9mIG1lbiBkaWQgd2hhdGV2ZXIgdGhleSB3YW50ZWQgd2l0aCB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCZWluZyBob25lc3QsIEnigJlkIGxvdmUgaXQgaWYgYSBncm91cCBvZiBtZW4gZGlkIHdoYXRldmVyIHRoZXkgd2FudGVkIHdpdGggeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCZWluZyBob25lc3QsIEnigJlkIGxvdmUgaXQgaWYgYSBncm91cCBvZiBtZW4gZGlkIHdoYXRldmVyIHRoZXkgd2FudGVkIHdpdGggeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX25vX3dvcmRzLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9ub193b3Jkcy53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuMnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7V293LCB0aGF04oCZcy4uLiZxdW90OyAmcXVvdDtZb2xra2FvbGtrUG9sa2tsb2xra1dvbGtrZm9sa2tXb2xra0hvbGtrZG9sa2tNb2xra1pvbGtrdm9sa2tQb2xra0dvbGtrUG9sa2tWJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dvdywgdGhhdOKAmXMuLi4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1dvdywgdGhhdOKAmXMuLi4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O05vdCB3aGF0IEkgZXhwZWN0ZWQmcXVvdDsgJnF1b3Q7Zm9sa2tRb2xra2NvbGtrS29sa2tab2xra3RvbGtrem9sa2tTb2xra2JvbGtrRG9sa2trb2xra3NvbGtreW9sa2tQb2xra1VvbGtrcCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtOb3Qgd2hhdCBJIGV4cGVjdGVkJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtOb3Qgd2hhdCBJIGV4cGVjdGVkJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt4b2xra1ZvbGtrQm9sa2t3b2xra0xvbGtrQ29sa2tEb2xra3AmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuMXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3hvbGtrVm9sa2tCb2xra3dvbGtrTG9sa2tDb2xra0RvbGtrcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0lmIHlvdSB3YW50LCB3ZSBjYW4gc3RvcCBoZXJlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xMWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJZiB5b3Ugd2FudCwgd2UgY2FuIHN0b3AgaGVyZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzExYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN4b2xra1ZvbGtrQm9sa2t3b2xra0xvbGtrQ29sa2tEb2xra3AmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJbiBsaWZlLCB5b3UgaGF2ZSB0byBleHBlcmltZW50JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xMWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJbiBsaWZlLCB5b3UgaGF2ZSB0byBleHBlcmltZW50JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTFiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEyNCIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfMTBiIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMTYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTBiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0p1c3Qgb25lIGd1eSwgbWF5YmUgc29tZW9uZSB3ZSBib3RoIGNob29zZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0p1c3Qgb25lIGd1eSwgbWF5YmUgc29tZW9uZSB3ZSBib3RoIGNob29zZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SnVzdCBvbmUgZ3V5LCBtYXliZSBzb21lb25lIHdlIGJvdGggY2hvb3NlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuMnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBzZWUmcXVvdDsgJnF1b3Q7UW9sa2t3b2xra3JvbGtrZG9sa2tHb2xra3dvbGtrSG9sa2t3b2xra0JvbGtrRm9sa2tTb2xra3BvbGtrc29sa2tVb2xra09vbGtraCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHNlZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBzZWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0V2ZW4gc28sIGFsbCBvZiB0aGlzIHN0aWxsIHN1cnByaXNlcyBtZSZxdW90OyAmcXVvdDtNb2xra1dvbGtrbm9sa2t6b2xra1lvbGtrcW9sa2tSb2xra3JvbGtrYW9sa2tSb2xra0dvbGtrdG9sa2tzb2xra2ZvbGtrUG9sa2taJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0V2ZW4gc28sIGFsbCBvZiB0aGlzIHN0aWxsIHN1cnByaXNlcyBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7RXZlbiBzbywgYWxsIG9mIHRoaXMgc3RpbGwgc3VycHJpc2VzIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtQb2xra1RvbGtrTm9sa2t2b2xra0hvbGtrTm9sa2tFb2xra3ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuNXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1BvbGtrVG9sa2tOb2xra3ZvbGtrSG9sa2tOb2xra0VvbGtrciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0lmIHlvdSB3YW50LCB3ZSBjYW4gc3RvcCBoZXJlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xMWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJZiB5b3Ugd2FudCwgd2UgY2FuIHN0b3AgaGVyZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzExYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNQb2xra1RvbGtrTm9sa2t2b2xra0hvbGtrTm9sa2tFb2xra3ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJbiBsaWZlLCB5b3UgaGF2ZSB0byBleHBlcmltZW50JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xMWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJbiBsaWZlLCB5b3UgaGF2ZSB0byBleHBlcmltZW50JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTFiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEyNSIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfMTFhIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsMTYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTFhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRkb21zdWIgPSAkZG9tc3ViLTEmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0lmIHlvdSB3YW50LCB3ZSBjYW4gc3RvcCBoZXJlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SWYgeW91IHdhbnQsIHdlIGNhbiBzdG9wIGhlcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0lmIHlvdSB3YW50LCB3ZSBjYW4gc3RvcCBoZXJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2RvbGtrUm9sa2tFb2xra3BvbGtrYm9sa2t0b2xra3lvbGtrQSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjZG9sa2tSb2xra0VvbGtrcG9sa2tib2xra3RvbGtreW9sa2tBJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7TGlrZSBJIHNhaWQgZWFybGllciB0b2RheSwgaWYgeW91IGZlZWwgcHJlc3N1cmVkLCB3ZSBjYW4gZm9yZ2V0IGFsbCBhYm91dCB0aGlzJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xMmEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtMaWtlIEkgc2FpZCBlYXJsaWVyIHRvZGF5LCBpZiB5b3UgZmVlbCBwcmVzc3VyZWQsIHdlIGNhbiBmb3JnZXQgYWxsIGFib3V0IHRoaXMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xMmEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTI2IiBuYW1lPSJBbm5pZUNoYXRFcDJfMl8xMWIiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwxNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xMWImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGRvbXN1YiA9ICRkb21zdWIrMSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SW4gbGlmZSwgeW91IGhhdmUgdG8gZXhwZXJpbWVudCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0luIGxpZmUsIHlvdSBoYXZlIHRvIGV4cGVyaW1lbnQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0luIGxpZmUsIHlvdSBoYXZlIHRvIGV4cGVyaW1lbnQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Tm9sa2tPb2xra2pvbGtrWm9sa2t4b2xra21vbGtrT29sa2tBJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNOb2xra09vbGtram9sa2tab2xra3hvbGtrbW9sa2tPb2xra0EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGUgd2F5IEkgc2VlIGl0LCB3ZSB3ZXJlIGhlYWRpbmcgdG93YXJkIGJlaW5nIGEgYm9yaW5nIGNvdXBsZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTJiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhlIHdheSBJIHNlZSBpdCwgd2Ugd2VyZSBoZWFkaW5nIHRvd2FyZCBiZWluZyBhIGJvcmluZyBjb3VwbGUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xMmImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTI3IiBuYW1lPSJBbm5pZUNoYXRFcDJfMl8xMmEiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCwxNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xMmEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TGlrZSBJIHNhaWQgZWFybGllciB0b2RheSwgaWYgeW91IGZlZWwgcHJlc3N1cmVkLCB3ZSBjYW4gZm9yZ2V0IGFsbCBhYm91dCB0aGlzJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGlrZSBJIHNhaWQgZWFybGllciB0b2RheSwgaWYgeW91IGZlZWwgcHJlc3N1cmVkLCB3ZSBjYW4gZm9yZ2V0IGFsbCBhYm91dCB0aGlzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtMaWtlIEkgc2FpZCBlYXJsaWVyIHRvZGF5LCBpZiB5b3UgZmVlbCBwcmVzc3VyZWQsIHdlIGNhbiBmb3JnZXQgYWxsIGFib3V0IHRoaXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtZb3Uga25vdz8gSSBmZWVsIGxpa2UgaXTigJlzIHRvbyBsYXRlIGZvciB0aGF0JnF1b3Q7ICZxdW90O2pvbGtreG9sa2trb2xra3JvbGtrQm9sa2tXb2xra21vbGtrWW9sa2tqb2xra2lvbGtrSW9sa2txb2xra3JvbGtrem9sa2tZb2xra0kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGtub3c/IEkgZmVlbCBsaWtlIGl04oCZcyB0b28gbGF0ZSBmb3IgdGhhdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW91IGtub3c/IEkgZmVlbCBsaWtlIGl04oCZcyB0b28gbGF0ZSBmb3IgdGhhdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuOHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBkb27igJl0IHRoaW5rIEkgY2FuIGdvIGJhY2sgdG8gdGhlIG9sZCBtZSBrbm93aW5nIHRoaXMgaXMgc29tZXRoaW5nIGhpZGRlbiBpbnNpZGUgeW91JnF1b3Q7ICZxdW90O0tvbGtrUG9sa2tjb2xra3VvbGtrZm9sa2tZb2xra2hvbGtrR29sa2tOb2xra0FvbGtrS29sa2tQb2xra09vbGtrU29sa2tYb2xra3YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBkb27igJl0IHRoaW5rIEkgY2FuIGdvIGJhY2sgdG8gdGhlIG9sZCBtZSBrbm93aW5nIHRoaXMgaXMgc29tZXRoaW5nIGhpZGRlbiBpbnNpZGUgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGRvbuKAmXQgdGhpbmsgSSBjYW4gZ28gYmFjayB0byB0aGUgb2xkIG1lIGtub3dpbmcgdGhpcyBpcyBzb21ldGhpbmcgaGlkZGVuIGluc2lkZSB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgdGhpbmsgdGhlIGJlc3QgdGhpbmcgaXMgdG8gZXhwZXJpbWVudCwgbGlrZSBOYW9taSBzYWlkJnF1b3Q7ICZxdW90O3ZvbGtrS29sa2tTb2xra0lvbGtrT29sa2tVb2xra25vbGtrdm9sa2tab2xra2RvbGtrbW9sa2t5b2xra0ZvbGtrQW9sa2tQb2xra04mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB0aGluayB0aGUgYmVzdCB0aGluZyBpcyB0byBleHBlcmltZW50LCBsaWtlIE5hb21pIHNhaWQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgdGhpbmsgdGhlIGJlc3QgdGhpbmcgaXMgdG8gZXhwZXJpbWVudCwgbGlrZSBOYW9taSBzYWlkJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDYuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtBbmQgc2VlIGhvdyBpdCB0dXJucyBvdXQmcXVvdDsgJnF1b3Q7WW9sa2tKb2xra0pvbGtrRm9sa2txb2xra2lvbGtrQ29sa2thb2xra2NvbGtrcm9sa2tFb2xra0FvbGtrWG9sa2trb2xra2RvbGtraiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbmQgc2VlIGhvdyBpdCB0dXJucyBvdXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0FuZCBzZWUgaG93IGl0IHR1cm5zIG91dCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Q29sa2tEb2xra0lvbGtrVW9sa2t2b2xra2RvbGtrQW9sa2tPJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA3LjJzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNDb2xra0RvbGtrSW9sa2tVb2xra3ZvbGtrZG9sa2tBb2xra08mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtTb3VuZHMgZ29vZCB0byBtZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTNhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7U291bmRzIGdvb2QgdG8gbWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xM2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTI4IiBuYW1lPSJBbm5pZUNoYXRFcDJfMl8xM2EiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSwxNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xM2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7U291bmRzIGdvb2QgdG8gbWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTb3VuZHMgZ29vZCB0byBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7U291bmRzIGdvb2QgdG8gbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Y29sa2tTb2xra0FvbGtraW9sa2tjb2xra3NvbGtrWG9sa2taJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNjb2xra1NvbGtrQW9sa2tpb2xra2NvbGtrc29sa2tYb2xra1omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGxvdmUgeW91LCBiYWJlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xNGEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGxvdmUgeW91LCBiYWJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTRhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEyOSIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfMTRhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDE2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8yXzE0YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGxvdmUgeW91LCBiYWJlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBsb3ZlIHlvdSwgYmFiZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBsb3ZlIHlvdSwgYmFiZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgbG92ZSB5b3UgbW9yZSwgaG9uZXkmcXVvdDsgJnF1b3Q7T29sa2tCb2xra2pvbGtrRW9sa2tqb2xra2RvbGtrbm9sa2tOb2xra0tvbGtrc29sa2tlb2xra3lvbGtrTG9sa2tMb2xra3dvbGtrUiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGxvdmUgeW91IG1vcmUsIGhvbmV5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGxvdmUgeW91IG1vcmUsIGhvbmV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtYb2xra0tvbGtrc29sa2tVb2xra1FvbGtrVG9sa2tSb2xra3EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuNHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1hvbGtrS29sa2tzb2xra1VvbGtrUW9sa2tUb2xra1JvbGtrcSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O05vdyBJIGhhdmUgdG8gZ2V0IGJhY2sgdG8gdGhlc2UgcmVwb3J0cyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTVhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7Tm93IEkgaGF2ZSB0byBnZXQgYmFjayB0byB0aGVzZSByZXBvcnRzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTVhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEzMCIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfMTJiIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDE2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8yXzEyYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGUgd2F5IEkgc2VlIGl0LCB3ZSB3ZXJlIGhlYWRpbmcgdG93YXJkIGJlaW5nIGEgYm9yaW5nIGNvdXBsZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoZSB3YXkgSSBzZWUgaXQsIHdlIHdlcmUgaGVhZGluZyB0b3dhcmQgYmVpbmcgYSBib3JpbmcgY291cGxlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUaGUgd2F5IEkgc2VlIGl0LCB3ZSB3ZXJlIGhlYWRpbmcgdG93YXJkIGJlaW5nIGEgYm9yaW5nIGNvdXBsZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtkb2xra1JvbGtrZG9sa2tDb2xra2xvbGtrUG9sa2tab2xra0UmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2RvbGtrUm9sa2tkb2xra0NvbGtrbG9sa2tQb2xra1pvbGtrRSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1lvdeKAmWxsIHNlZSBob3cgZXhjaXRpbmcgdGhpcyB3aWxsIGJlIG9uY2Ugd2Ugc3RhcnQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzEzYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdeKAmWxsIHNlZSBob3cgZXhjaXRpbmcgdGhpcyB3aWxsIGJlIG9uY2Ugd2Ugc3RhcnQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xM2ImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTMxIiBuYW1lPSJBbm5pZUNoYXRFcDJfMl8xM2IiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCwxNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xM2ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WW914oCZbGwgc2VlIGhvdyBleGNpdGluZyB0aGlzIHdpbGwgYmUgb25jZSB3ZSBzdGFydCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdeKAmWxsIHNlZSBob3cgZXhjaXRpbmcgdGhpcyB3aWxsIGJlIG9uY2Ugd2Ugc3RhcnQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdeKAmWxsIHNlZSBob3cgZXhjaXRpbmcgdGhpcyB3aWxsIGJlIG9uY2Ugd2Ugc3RhcnQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtZZWFoLCBJIGhhZCBteSBkb3VidHMsIGJ1dCBOYW9taSB0YWxrZWQgYSBsb3Qgd2l0aCBtZSZxdW90OyAmcXVvdDtYb2xra0xvbGtrVW9sa2tVb2xra21vbGtrQm9sa2tFb2xra1RvbGtrTW9sa2tsb2xra0lvbGtraG9sa2t5b2xra2pvbGtrWG9sa2tCJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1llYWgsIEkgaGFkIG15IGRvdWJ0cywgYnV0IE5hb21pIHRhbGtlZCBhIGxvdCB3aXRoIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtZZWFoLCBJIGhhZCBteSBkb3VidHMsIGJ1dCBOYW9taSB0YWxrZWQgYSBsb3Qgd2l0aCBtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBkb27igJl0IHRoaW5rIEkgZXZlciBzYXcgbXlzZWxmIGFzIHNvbWVvbmUgY2FwYWJsZSBvZiB0aGlzJnF1b3Q7ICZxdW90O3pvbGtrT29sa2tab2xra2ZvbGtrRm9sa2tPb2xra2JvbGtrQW9sa2tRb2xra3BvbGtram9sa2tnb2xra05vbGtrUm9sa2tPb2xra1QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBkb27igJl0IHRoaW5rIEkgZXZlciBzYXcgbXlzZWxmIGFzIHNvbWVvbmUgY2FwYWJsZSBvZiB0aGlzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGRvbuKAmXQgdGhpbmsgSSBldmVyIHNhdyBteXNlbGYgYXMgc29tZW9uZSBjYXBhYmxlIG9mIHRoaXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0J1dCBJIHNob3VsZCBzdGVwIG91dCBvZiBteSBjb21mb3J0IHpvbmUgYW5kIHNlZSBob3cgaXQgZ29lcyZxdW90OyAmcXVvdDtZb2xra2lvbGtrYm9sa2tob2xra1lvbGtrQW9sa2tsb2xra3NvbGtrRG9sa2tIb2xra0pvbGtra29sa2tWb2xra0pvbGtrQ29sa2tGJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCBJIHNob3VsZCBzdGVwIG91dCBvZiBteSBjb21mb3J0IHpvbmUgYW5kIHNlZSBob3cgaXQgZ29lcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QnV0IEkgc2hvdWxkIHN0ZXAgb3V0IG9mIG15IGNvbWZvcnQgem9uZSBhbmQgc2VlIGhvdyBpdCBnb2VzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtEb2xra0FvbGtrTG9sa2tHb2xra3JvbGtrcG9sa2tvb2xra0MmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDUuOXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0RvbGtrQW9sa2tMb2xra0dvbGtrcm9sa2twb2xra29vbGtrQyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RvdGFsbHkuIEnigJltIHN1cmUgdGhpcyB3aWxsIHN0cmVuZ3RoZW4gdXMgYXMgYSBjb3VwbGUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzE0YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RvdGFsbHkuIEnigJltIHN1cmUgdGhpcyB3aWxsIHN0cmVuZ3RoZW4gdXMgYXMgYSBjb3VwbGUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xNGImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTMyIiBuYW1lPSJBbm5pZUNoYXRFcDJfMl8xNGIiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSwxNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xNGImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VG90YWxseS4gSeKAmW0gc3VyZSB0aGlzIHdpbGwgc3RyZW5ndGhlbiB1cyBhcyBhIGNvdXBsZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RvdGFsbHkuIEnigJltIHN1cmUgdGhpcyB3aWxsIHN0cmVuZ3RoZW4gdXMgYXMgYSBjb3VwbGUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1RvdGFsbHkuIEnigJltIHN1cmUgdGhpcyB3aWxsIHN0cmVuZ3RoZW4gdXMgYXMgYSBjb3VwbGUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGhvcGUgeW914oCZcmUgcmlnaHQmcXVvdDsgJnF1b3Q7SG9sa2ttb2xra2ZvbGtrZ29sa2t3b2xra0VvbGtrWW9sa2tvb2xra2hvbGtreW9sa2tWb2xra2pvbGtrSW9sa2twb2xra3lvbGtraSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGhvcGUgeW914oCZcmUgcmlnaHQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgaG9wZSB5b3XigJlyZSByaWdodCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBsb3ZlIHlvdSwgJG5hbWUmcXVvdDsgJnF1b3Q7Ym9sa2tsb2xra0ZvbGtram9sa2tvb2xra3dvbGtrRm9sa2tvb2xra21vbGtrUm9sa2t2b2xra01vbGtrZ29sa2twb2xra3NvbGtrTyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGxvdmUgeW91LCAkbmFtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBsb3ZlIHlvdSwgJG5hbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1dvbGtrY29sa2tWb2xra2tvbGtrd29sa2tIb2xra3dvbGtrYSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjV29sa2tjb2xra1ZvbGtra29sa2t3b2xra0hvbGtrd29sa2thJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBsb3ZlIHlvdSwgQW5uaWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzE1YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgbG92ZSB5b3UsIEFubmllJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTViJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEzMyIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfMTVhIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsMTcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTVhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O05vdyBJIGhhdmUgdG8gZ2V0IGJhY2sgdG8gdGhlc2UgcmVwb3J0cyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O05vdyBJIGhhdmUgdG8gZ2V0IGJhY2sgdG8gdGhlc2UgcmVwb3J0cyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7Tm93IEkgaGF2ZSB0byBnZXQgYmFjayB0byB0aGVzZSByZXBvcnRzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O29vbGtrdm9sa2tyb2xra3dvbGtrdW9sa2tob2xra09vbGtrcCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjb29sa2t2b2xra3JvbGtrd29sa2t1b2xra2hvbGtrT29sa2twJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7TGV04oCZcyB0YWxrIGFnYWluIGJlZm9yZSBnb2luZyB0byBzbGVlcCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTcmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtMZXTigJlzIHRhbGsgYWdhaW4gYmVmb3JlIGdvaW5nIHRvIHNsZWVwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTM0IiBuYW1lPSJBbm5pZUNoYXRFcDJfMl8xNWIiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwxNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xNWImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBsb3ZlIHlvdSwgQW5uaWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGxvdmUgeW91LCBBbm5pZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBsb3ZlIHlvdSwgQW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7c29sa2t6b2xra3BvbGtrc29sa2tEb2xra2FvbGtraW9sa2tZJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNzb2xra3pvbGtrcG9sa2tzb2xra0RvbGtrYW9sa2tpb2xra1kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtOb3cgSSBoYXZlIHRvIGdldCBiYWNrIHRvIHRoZXNlIHJlcG9ydHMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzE2YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O05vdyBJIGhhdmUgdG8gZ2V0IGJhY2sgdG8gdGhlc2UgcmVwb3J0cyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzE2YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMzUiIG5hbWU9IkFubmllQ2hhdEVwMl8yXzE2YiIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDE3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8yXzE2YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtOb3cgSSBoYXZlIHRvIGdldCBiYWNrIHRvIHRoZXNlIHJlcG9ydHMmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtOb3cgSSBoYXZlIHRvIGdldCBiYWNrIHRvIHRoZXNlIHJlcG9ydHMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O05vdyBJIGhhdmUgdG8gZ2V0IGJhY2sgdG8gdGhlc2UgcmVwb3J0cyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtrb2xra0JvbGtrbW9sa2tJb2xra1dvbGtrZW9sa2trb2xra1QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2tvbGtrQm9sa2ttb2xra0lvbGtrV29sa2tlb2xra2tvbGtrVCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0xldOKAmXMgdGFsayBhZ2FpbiBiZWZvcmUgZ29pbmcgdG8gc2xlZXAmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzE3JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7TGV04oCZcyB0YWxrIGFnYWluIGJlZm9yZSBnb2luZyB0byBzbGVlcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzE3JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEzNiIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfMTciIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwxNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xNyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtMZXTigJlzIHRhbGsgYWdhaW4gYmVmb3JlIGdvaW5nIHRvIHNsZWVwJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGV04oCZcyB0YWxrIGFnYWluIGJlZm9yZSBnb2luZyB0byBzbGVlcCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7TGV04oCZcyB0YWxrIGFnYWluIGJlZm9yZSBnb2luZyB0byBzbGVlcCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjFzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1BlcmZlY3QmcXVvdDsgJnF1b3Q7Vm9sa2tmb2xra0tvbGtrUW9sa2t2b2xra2RvbGtrT29sa2tyb2xra1NvbGtrem9sa2tRb2xra1dvbGtrWG9sa2tUb2xra2hvbGtrYSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtQZXJmZWN0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtQZXJmZWN0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMi4wcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q78J+lsCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xNyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0X2hvdXIgPSAmcXVvdDsyMTozNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkaG91ciA9ICZxdW90OzIxOjM0JnF1b3Q7Jmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtvZmZsaW5lLXRleHQmcXVvdDsmZ3Q7QW5uaWUgaXMgb2ZmbGluZSZsdDsvZGl2Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjBzJmd0OyZndDsmbHQ7Jmx0O3NldCAkdHJhbnNpdGlvbiA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4wcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJHRyYW5zaXRpb25UZXh0ID0gJnF1b3Q7YXQgbmlnaHQmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4wcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJFRvYXN0QW5uaWUyID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjBzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdCA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4wcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSA9ICZxdW90O0FubmllQ2hhdEVwMl8zXzEmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4wcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIZXkgaG9uZXkmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTM3IiBuYW1lPSJBbm5pZUNoYXRFcDJfM18xIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMTcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtIZXkgaG9uZXkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hleSBob25leSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SGV5IGhvbmV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7RGlkIHlvdSBhbHJlYWR5IGdvIHRvIGJlZD8mcXVvdDsgJnF1b3Q7c29sa2tYb2xra2JvbGtrbW9sa2tNb2xra1RvbGtrZm9sa2tBb2xra2xvbGtrZW9sa2tpb2xra3VvbGtrem9sa2tZb2xra1ZvbGtrRyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEaWQgeW91IGFscmVhZHkgZ28gdG8gYmVkPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7RGlkIHlvdSBhbHJlYWR5IGdvIHRvIGJlZD8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2dvbGtrVG9sa2tCb2xra0JvbGtrTW9sa2tjb2xra05vbGtrQSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS44cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjZ29sa2tUb2xra0JvbGtrQm9sa2tNb2xra2NvbGtrTm9sa2tBJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VG8gYmUgaG9uZXN0LCBJ4oCZbSBzdGlsbCBhdCB0aGUgb2ZmaWNlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfM18yJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VG8gYmUgaG9uZXN0LCBJ4oCZbSBzdGlsbCBhdCB0aGUgb2ZmaWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEzOCIgbmFtZT0iQW5uaWVDaGF0RXAyXzNfMiIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDE3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8zXzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VG8gYmUgaG9uZXN0LCBJ4oCZbSBzdGlsbCBhdCB0aGUgb2ZmaWNlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VG8gYmUgaG9uZXN0LCBJ4oCZbSBzdGlsbCBhdCB0aGUgb2ZmaWNlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUbyBiZSBob25lc3QsIEnigJltIHN0aWxsIGF0IHRoZSBvZmZpY2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Um9sa2tLb2xra1lvbGtrZ29sa2tYb2xra3lvbGtrZG9sa2tDJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNSb2xra0tvbGtrWW9sa2tnb2xra1hvbGtreW9sa2tkb2xra0MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtKdXN0IHdyYXBwaW5nIHVwIGEgZmV3IHRoaW5ncy4gSeKAmWxsIGhlYWQgYmFjayB0byB0aGUgaG90ZWwgaW4gYSBiaXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8zXzMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtKdXN0IHdyYXBwaW5nIHVwIGEgZmV3IHRoaW5ncy4gSeKAmWxsIGhlYWQgYmFjayB0byB0aGUgaG90ZWwgaW4gYSBiaXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfM18zJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEzOSIgbmFtZT0iQW5uaWVDaGF0RXAyXzNfMyIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwxNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfM18zJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0p1c3Qgd3JhcHBpbmcgdXAgYSBmZXcgdGhpbmdzLiBJ4oCZbGwgaGVhZCBiYWNrIHRvIHRoZSBob3RlbCBpbiBhIGJpdCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0p1c3Qgd3JhcHBpbmcgdXAgYSBmZXcgdGhpbmdzLiBJ4oCZbGwgaGVhZCBiYWNrIHRvIHRoZSBob3RlbCBpbiBhIGJpdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SnVzdCB3cmFwcGluZyB1cCBhIGZldyB0aGluZ3MuIEnigJlsbCBoZWFkIGJhY2sgdG8gdGhlIGhvdGVsIGluIGEgYml0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgeW914oCZcmUgc3RpbGwgd29ya2luZyBhdCB0aGlzIGhvdXImcXVvdDsgJnF1b3Q7RG9sa2tGb2xra3VvbGtreG9sa2ttb2xra1RvbGtrSm9sa2tqb2xra0xvbGtreG9sa2tUb2xra3RvbGtrb29sa2tXb2xra1VvbGtrcyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGNhbuKAmXQgYmVsaWV2ZSB5b3XigJlyZSBzdGlsbCB3b3JraW5nIGF0IHRoaXMgaG91ciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgeW914oCZcmUgc3RpbGwgd29ya2luZyBhdCB0aGlzIGhvdXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS44cyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9jcnlpbmcud2VicCZxdW90OyB0cnVlICZxdW90O0FubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2NyeWluZy53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7ZW9sa2tib2xra0ZvbGtrYm9sa2t5b2xra1NvbGtrTW9sa2tPJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjhzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNlb2xra2JvbGtrRm9sa2tib2xra3lvbGtrU29sa2tNb2xra08mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtEb27igJl0IHdvcnJ5LCBpdOKAmXMganVzdCB0ZW1wb3JhcnkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8zXzQmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtEb27igJl0IHdvcnJ5LCBpdOKAmXMganVzdCB0ZW1wb3JhcnkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfM180JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE0MCIgbmFtZT0iQW5uaWVDaGF0RXAyXzNfNCIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSwxNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfM180JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0RvbuKAmXQgd29ycnksIGl04oCZcyBqdXN0IHRlbXBvcmFyeSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0RvbuKAmXQgd29ycnksIGl04oCZcyBqdXN0IHRlbXBvcmFyeSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7RG9u4oCZdCB3b3JyeSwgaXTigJlzIGp1c3QgdGVtcG9yYXJ5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3dvbGtrWW9sa2t6b2xra2NvbGtraG9sa2tEb2xra1FvbGtraSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjd29sa2tZb2xra3pvbGtrY29sa2tob2xra0RvbGtrUW9sa2tpJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SW4gYSBmZXcgbW9udGhzLCBJ4oCZbGwgbG9vayBiYWNrIGFuZCBzZWUgdGhpcyBhcyBwYXJ0IG9mIHRoZSBwYXN0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfM181JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SW4gYSBmZXcgbW9udGhzLCBJ4oCZbGwgbG9vayBiYWNrIGFuZCBzZWUgdGhpcyBhcyBwYXJ0IG9mIHRoZSBwYXN0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzNfNSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNDEiIG5hbWU9IkFubmllQ2hhdEVwMl8zXzUiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCwxODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfM181JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0luIGEgZmV3IG1vbnRocywgSeKAmWxsIGxvb2sgYmFjayBhbmQgc2VlIHRoaXMgYXMgcGFydCBvZiB0aGUgcGFzdCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0luIGEgZmV3IG1vbnRocywgSeKAmWxsIGxvb2sgYmFjayBhbmQgc2VlIHRoaXMgYXMgcGFydCBvZiB0aGUgcGFzdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SW4gYSBmZXcgbW9udGhzLCBJ4oCZbGwgbG9vayBiYWNrIGFuZCBzZWUgdGhpcyBhcyBwYXJ0IG9mIHRoZSBwYXN0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuMXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7Li4uJnF1b3Q7ICZxdW90O2lvbGtrcm9sa2txb2xra3ZvbGtrc29sa2tDb2xra2lvbGtrY29sa2tTb2xra3FvbGtrTm9sa2tJb2xra3pvbGtrV29sa2tzb2xra2QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Li4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDsuLi4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0NvdW50IG9uIG1lJnF1b3Q7ICZxdW90O01vbGtrV29sa2twb2xra2NvbGtrWm9sa2tyb2xra1dvbGtrRm9sa2tFb2xra2pvbGtraG9sa2txb2xra0ZvbGtrWm9sa2tob2xra1UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Q291bnQgb24gbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0NvdW50IG9uIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtzb2xra1RvbGtrYW9sa2tvb2xra2lvbGtraG9sa2tQb2xra1QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuOXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3NvbGtrVG9sa2thb2xra29vbGtraW9sa2tob2xra1BvbGtrVCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1doYXQgZG8geW91IG1lYW4/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfM182JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7V2hhdCBkbyB5b3UgbWVhbj8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfM182JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE0MiIgbmFtZT0iQW5uaWVDaGF0RXAyXzNfNiIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDE4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8zXzYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7V2hhdCBkbyB5b3UgbWVhbj8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXaGF0IGRvIHlvdSBtZWFuPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7V2hhdCBkbyB5b3UgbWVhbj8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtDb3VudCBvbiBtZSwgSeKAmW0gZ29pbmcgdG8gZnVsZmlsbCB0aG9zZSBmYW50YXNpZXMgb2YgeW91cnMmcXVvdDsgJnF1b3Q7QW9sa2tpb2xra1hvbGtrYm9sa2tkb2xra0FvbGtrZG9sa2tib2xra3BvbGtrVm9sa2tRb2xra1hvbGtrS29sa2tNb2xra3VvbGtrZCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtDb3VudCBvbiBtZSwgSeKAmW0gZ29pbmcgdG8gZnVsZmlsbCB0aG9zZSBmYW50YXNpZXMgb2YgeW91cnMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0NvdW50IG9uIG1lLCBJ4oCZbSBnb2luZyB0byBmdWxmaWxsIHRob3NlIGZhbnRhc2llcyBvZiB5b3VycyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7TGVhdmUgaXQgdG8gbWUmcXVvdDsgJnF1b3Q7b29sa2tWb2xra3pvbGtrSG9sa2tub2xra0tvbGtrTG9sa2tZb2xra25vbGtrVW9sa2tVb2xra0lvbGtrcW9sa2tib2xra3BvbGtrRiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtMZWF2ZSBpdCB0byBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7TGVhdmUgaXQgdG8gbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJlsbCBkbyBteSBiZXN0IHRvIG1ha2Ugc3VyZSB3ZSBib3RoIGVuam95IHRoaXMmcXVvdDsgJnF1b3Q7Z29sa2twb2xra3dvbGtrUG9sa2tZb2xra09vbGtrS29sa2t6b2xra2NvbGtrdm9sa2tXb2xra1ZvbGtrWW9sa2t1b2xra1lvbGtrTCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbGwgZG8gbXkgYmVzdCB0byBtYWtlIHN1cmUgd2UgYm90aCBlbmpveSB0aGlzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJ4oCZbGwgZG8gbXkgYmVzdCB0byBtYWtlIHN1cmUgd2UgYm90aCBlbmpveSB0aGlzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtKb2xra3pvbGtraG9sa2tLb2xra3ZvbGtrR29sa2t5b2xra3YmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuN3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0pvbGtrem9sa2tob2xra0tvbGtrdm9sa2tHb2xra3lvbGtrdiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0FyZSB5b3Ugc2VyaW91cz8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8zXzcmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtBcmUgeW91IHNlcmlvdXM/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzNfNyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNDMiIG5hbWU9IkFubmllQ2hhdEVwMl8zXzciIHRhZ3M9IiIgcG9zaXRpb249IjM1MCwxODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfM183JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0FyZSB5b3Ugc2VyaW91cz8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBcmUgeW91IHNlcmlvdXM/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtBcmUgeW91IHNlcmlvdXM/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuMnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7T2YgY291cnNlJnF1b3Q7ICZxdW90O0NvbGtrR29sa2tnb2xra2lvbGtrTm9sa2tib2xra2dvbGtrQm9sa2tzb2xra1BvbGtrR29sa2t1b2xra25vbGtrem9sa2t1b2xra0YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2YgY291cnNlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtPZiBjb3Vyc2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0l04oCZcyB0aGUgbGVhc3QgSSBjYW4gZG8mcXVvdDsgJnF1b3Q7SW9sa2ttb2xra2xvbGtrUm9sa2t6b2xra1lvbGtrUm9sa2tDb2xra09vbGtrQm9sa2tXb2xra2FvbGtrdG9sa2tQb2xra0dvbGtrViZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdOKAmXMgdGhlIGxlYXN0IEkgY2FuIGRvJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJdOKAmXMgdGhlIGxlYXN0IEkgY2FuIGRvJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtXb2xra1VvbGtrcW9sa2tlb2xra3dvbGtrT29sa2tsb2xra2smcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1dvbGtrVW9sa2txb2xra2VvbGtrd29sa2tPb2xra2xvbGtrayZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoYXQgbWFrZXMgbWUgc28gaGFwcHkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8zXzgmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaGF0IG1ha2VzIG1lIHNvIGhhcHB5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzNfOCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNDQiIG5hbWU9IkFubmllQ2hhdEVwMl8zXzgiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwxODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfM184JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RoYXQgbWFrZXMgbWUgc28gaGFwcHkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGF0IG1ha2VzIG1lIHNvIGhhcHB5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUaGF0IG1ha2VzIG1lIHNvIGhhcHB5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SeKAmW0gZ2xhZCB0byBoZWFyIHRoYXQmcXVvdDsgJnF1b3Q7dW9sa2tVb2xra1RvbGtrRm9sa2tHb2xra21vbGtrWG9sa2tnb2xra3pvbGtrQm9sa2tVb2xra1RvbGtrVW9sa2t6b2xra0FvbGtrRSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBnbGFkIHRvIGhlYXIgdGhhdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmW0gZ2xhZCB0byBoZWFyIHRoYXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS40cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0dldCByZWFkeSAkbmFtZSwgYmVjYXVzZSBhIG5ldyBjaGFwdGVyIGluIG91ciBsaXZlcyBpcyBhYm91dCB0byBiZWdpbiZxdW90OyAmcXVvdDt1b2xra3VvbGtrUm9sa2trb2xra1RvbGtrRW9sa2txb2xra0dvbGtrQ29sa2tNb2xra3pvbGtrUm9sa2tEb2xra1JvbGtrYW9sa2tQJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0dldCByZWFkeSAkbmFtZSwgYmVjYXVzZSBhIG5ldyBjaGFwdGVyIGluIG91ciBsaXZlcyBpcyBhYm91dCB0byBiZWdpbiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7R2V0IHJlYWR5ICRuYW1lLCBiZWNhdXNlIGEgbmV3IGNoYXB0ZXIgaW4gb3VyIGxpdmVzIGlzIGFib3V0IHRvIGJlZ2luJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtDb2xra3pvbGtrV29sa2tYb2xra3lvbGtrSW9sa2t4b2xra2gmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuNHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0NvbGtrem9sa2tXb2xra1hvbGtreW9sa2tJb2xra3hvbGtraCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1lvdSBiZXQsIGJhYmUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8zXzkmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3UgYmV0LCBiYWJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzNfOSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNDUiIG5hbWU9IkFubmllQ2hhdEVwMl8zXzkiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCwxODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfM185JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdSBiZXQsIGJhYmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3UgYmV0LCBiYWJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtZb3UgYmV0LCBiYWJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjhzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2ltZyAmcXVvdDthc3NldHMvaW1nL2VwMi9hbm5pZV9waG90b180LndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtxb2xra3FvbGtrdG9sa2tJb2xra2ZvbGtrdW9sa2txb2xra1ZvbGtrQ29sa2tib2xra3BvbGtrTm9sa2tqb2xra3VvbGtrbm9sa2t1JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDIsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZXAyL2FubmllX3Bob3RvXzQud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzZXQgJHBob3Rvcy5wdXNoKCZxdW90O2Fzc2V0cy9pbWcvZXAyL2FubmllX3Bob3RvXzQud2VicCZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1NvLCBhcmUgeW91IHJlYWxseSBnb2luZyB0byBsZXQgb3RoZXIgbWVuIHRha2UgeW91ciBnaXJsPyZxdW90OyAmcXVvdDtob2xra0FvbGtrTG9sa2tub2xra0FvbGtrTW9sa2tCb2xra0VvbGtrc29sa2twb2xra0ZvbGtrV29sa2tyb2xra2RvbGtrR29sa2tSJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1NvLCBhcmUgeW91IHJlYWxseSBnb2luZyB0byBsZXQgb3RoZXIgbWVuIHRha2UgeW91ciBnaXJsPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7U28sIGFyZSB5b3UgcmVhbGx5IGdvaW5nIHRvIGxldCBvdGhlciBtZW4gdGFrZSB5b3VyIGdpcmw/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtEbyB5b3UgcmVhbGx5IHdhbnQgYW5vdGhlciBtYW4gdG8gdGFrZSBtZSBmb3JjZWZ1bGx5PyZxdW90OyAmcXVvdDtnb2xra2VvbGtrSm9sa2trb2xra3RvbGtram9sa2tTb2xra1lvbGtreW9sa2t4b2xra0pvbGtrRW9sa2tsb2xra2VvbGtrdm9sa2tjJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0RvIHlvdSByZWFsbHkgd2FudCBhbm90aGVyIG1hbiB0byB0YWtlIG1lIGZvcmNlZnVsbHk/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtEbyB5b3UgcmVhbGx5IHdhbnQgYW5vdGhlciBtYW4gdG8gdGFrZSBtZSBmb3JjZWZ1bGx5PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7R29sa2tpb2xra0hvbGtrY29sa2t1b2xra2hvbGtrRG9sa2t6JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA1LjJzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNHb2xra2lvbGtrSG9sa2tjb2xra3VvbGtraG9sa2tEb2xra3omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtOb3RoaW5nIHdvdWxkIG1ha2UgbWUgaGFwcGllciZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTBhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7Tm90aGluZyB3b3VsZCBtYWtlIG1lIGhhcHBpZXImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfM18xMGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjR29sa2tpb2xra0hvbGtrY29sa2t1b2xra2hvbGtrRG9sa2t6JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q78J+ltSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTBiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q78J+ltSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8zXzEwYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNDYiIG5hbWU9IkFubmllQ2hhdEVwMl8zXzEwYSIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDE4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8zXzEwYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtOb3RoaW5nIHdvdWxkIG1ha2UgbWUgaGFwcGllciZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O05vdGhpbmcgd291bGQgbWFrZSBtZSBoYXBwaWVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtOb3RoaW5nIHdvdWxkIG1ha2UgbWUgaGFwcGllciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt3b2xra25vbGtrTG9sa2tYb2xra1BvbGtrVm9sa2tXb2xra0cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3dvbGtrbm9sa2tMb2xra1hvbGtrUG9sa2tWb2xra1dvbGtrRyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1Nvb24sIHlvdeKAmWxsIGJlIHVzZWQgYnkgb3RoZXIgbWVuIHRvIHNhdGlzZnkgdGhlaXIgZGVzaXJlcyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTFhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7U29vbiwgeW914oCZbGwgYmUgdXNlZCBieSBvdGhlciBtZW4gdG8gc2F0aXNmeSB0aGVpciBkZXNpcmVzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTFhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE0NyIgbmFtZT0iQW5uaWVDaGF0RXAyXzNfMTBiIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMTg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTBiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbGV3ZF9mYWNlLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xld2RfZmFjZS53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgY2Fu4oCZdCB3YWl0IGZvciBteSBib2R5IHRvIGJlIHVzZWQgYnkgc29tZW9uZSB3aG8gaXNu4oCZdCB5b3UmcXVvdDsgJnF1b3Q7VW9sa2tBb2xra1FvbGtreW9sa2t0b2xra3hvbGtrT29sa2tYb2xra01vbGtrdG9sa2tzb2xra3NvbGtrUm9sa2tCb2xra3RvbGtrbSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGNhbuKAmXQgd2FpdCBmb3IgbXkgYm9keSB0byBiZSB1c2VkIGJ5IHNvbWVvbmUgd2hvIGlzbuKAmXQgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGNhbuKAmXQgd2FpdCBmb3IgbXkgYm9keSB0byBiZSB1c2VkIGJ5IHNvbWVvbmUgd2hvIGlzbuKAmXQgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtPb2xra2NvbGtrY29sa2tZb2xra0FvbGtrUW9sa2tib2xra3omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuMHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I09vbGtrY29sa2tjb2xra1lvbGtrQW9sa2tRb2xra2JvbGtreiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O/CfmLYmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8zXzEyJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q78J+YtiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8zXzEyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE0OCIgbmFtZT0iQW5uaWVDaGF0RXAyXzNfMTFhIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMTg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTFhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1Nvb24sIHlvdeKAmWxsIGJlIHVzZWQgYnkgb3RoZXIgbWVuIHRvIHNhdGlzZnkgdGhlaXIgZGVzaXJlcyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1Nvb24sIHlvdeKAmWxsIGJlIHVzZWQgYnkgb3RoZXIgbWVuIHRvIHNhdGlzZnkgdGhlaXIgZGVzaXJlcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7U29vbiwgeW914oCZbGwgYmUgdXNlZCBieSBvdGhlciBtZW4gdG8gc2F0aXNmeSB0aGVpciBkZXNpcmVzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBjYW7igJl0IHdhaXQgZm9yIG15IGJvZHkgdG8gYmUgdXNlZCBieSBzb21lb25lIHdobyBpc27igJl0IHlvdSZxdW90OyAmcXVvdDttb2xra2NvbGtrRG9sa2tvb2xra1ZvbGtrcW9sa2tSb2xra2dvbGtrem9sa2tNb2xra2xvbGtraG9sa2tFb2xra25vbGtrQW9sa2tvJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgY2Fu4oCZdCB3YWl0IGZvciBteSBib2R5IHRvIGJlIHVzZWQgYnkgc29tZW9uZSB3aG8gaXNu4oCZdCB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgY2Fu4oCZdCB3YWl0IGZvciBteSBib2R5IHRvIGJlIHVzZWQgYnkgc29tZW9uZSB3aG8gaXNu4oCZdCB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O21vbGtrSW9sa2tQb2xra21vbGtrcm9sa2tLb2xra1VvbGtrcSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjbW9sa2tJb2xra1BvbGtrbW9sa2tyb2xra0tvbGtrVW9sa2txJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q78J+YtiZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDvwn5i2JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTQ5IiBuYW1lPSJBbm5pZUNoYXRFcDJfM18xMiIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwxODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfM18xMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX25vX3dvcmRzLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX25vX3dvcmRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuMnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SeKAmW0gc29ycnkmcXVvdDsgJnF1b3Q7YW9sa2tOb2xra0lvbGtrcG9sa2tkb2xra2NvbGtrSm9sa2thb2xra1pvbGtrTm9sa2tPb2xra2ZvbGtrbW9sa2tGb2xra3NvbGtraiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBzb3JyeSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmW0gc29ycnkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1dhcyB0aGF0IHRvbyBtdWNoPyZxdW90OyAmcXVvdDtKb2xra0pvbGtreW9sa2tob2xra0tvbGtrVm9sa2tYb2xra1dvbGtrQW9sa2t6b2xra3lvbGtrTm9sa2tRb2xra05vbGtrVW9sa2tzJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dhcyB0aGF0IHRvbyBtdWNoPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7V2FzIHRoYXQgdG9vIG11Y2g/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuOHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJ4oCZbSBqdXN0IHRyeWluZyB0byBnZXQgdXNlZCB0byBpdCZxdW90OyAmcXVvdDtlb2xra3lvbGtrV29sa2txb2xra0lvbGtrd29sa2tBb2xra09vbGtrTm9sa2tyb2xra1lvbGtrVG9sa2tMb2xra0lvbGtrWW9sa2twJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJltIGp1c3QgdHJ5aW5nIHRvIGdldCB1c2VkIHRvIGl0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJ4oCZbSBqdXN0IHRyeWluZyB0byBnZXQgdXNlZCB0byBpdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7RG9sa2tVb2xra1RvbGtrbW9sa2tzb2xra3dvbGtrZ29sa2t4JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjJzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNEb2xra1VvbGtrVG9sa2ttb2xra3NvbGtrd29sa2tnb2xra3gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtOYWgsIGl0IHdhcyBwZXJmZWN0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfM18xMyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O05haCwgaXQgd2FzIHBlcmZlY3QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfM18xMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNTAiIG5hbWU9IkFubmllQ2hhdEVwMl8zXzEzIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDE4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8zXzEzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O05haCwgaXQgd2FzIHBlcmZlY3QmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtOYWgsIGl0IHdhcyBwZXJmZWN0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtOYWgsIGl0IHdhcyBwZXJmZWN0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O25vbGtrVG9sa2t2b2xra1JvbGtrWG9sa2t1b2xra2lvbGtreCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjbm9sa2tUb2xra3ZvbGtrUm9sa2tYb2xra3VvbGtraW9sa2t4JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SXTigJlzIGp1c3QgdGhhdCBJ4oCZbSBnZXR0aW5nIHVzZWQgdG8gaXQgdG9vJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfM18xNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0l04oCZcyBqdXN0IHRoYXQgSeKAmW0gZ2V0dGluZyB1c2VkIHRvIGl0IHRvbyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8zXzE0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE1MSIgbmFtZT0iQW5uaWVDaGF0RXAyXzNfMTQiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCwxOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfM18xNCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJdOKAmXMganVzdCB0aGF0IEnigJltIGdldHRpbmcgdXNlZCB0byBpdCB0b28mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdOKAmXMganVzdCB0aGF0IEnigJltIGdldHRpbmcgdXNlZCB0byBpdCB0b28mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0l04oCZcyBqdXN0IHRoYXQgSeKAmW0gZ2V0dGluZyB1c2VkIHRvIGl0IHRvbyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9sbWFvLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9sbWFvLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt2b2xra1RvbGtrcW9sa2tyb2xra0ZvbGtrYm9sa2tCb2xra1AmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3ZvbGtrVG9sa2txb2xra3JvbGtrRm9sa2tib2xra0JvbGtrUCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgbG92ZSB5b3UsIEFubmllJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfM18xNSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgbG92ZSB5b3UsIEFubmllJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTUyIiBuYW1lPSJBbm5pZUNoYXRFcDJfM18xNSIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDE5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8zXzE1JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgbG92ZSB5b3UsIEFubmllJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBsb3ZlIHlvdSwgQW5uaWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgbG92ZSB5b3UsIEFubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBsb3ZlIHlvdSwgJG5hbWUmcXVvdDsgJnF1b3Q7ZW9sa2tvb2xra1ZvbGtrQW9sa2tSb2xra0hvbGtreW9sa2twb2xra0pvbGtrZW9sa2tZb2xra0NvbGtrRW9sa2tab2xra2FvbGtrQyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGxvdmUgeW91LCAkbmFtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBsb3ZlIHlvdSwgJG5hbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0RvbuKAmXQgc3RheSB1cCB0b28gbGF0ZSZxdW90OyAmcXVvdDtHb2xra0dvbGtra29sa2tQb2xra2dvbGtrQm9sa2tjb2xra1dvbGtrWG9sa2tMb2xra01vbGtrVm9sa2trb2xra2xvbGtrb29sa2t5JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0RvbuKAmXQgc3RheSB1cCB0b28gbGF0ZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7RG9u4oCZdCBzdGF5IHVwIHRvbyBsYXRlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtNYWtlIHN1cmUgdG8gZ2V0IGVub3VnaCBzbGVlcCZxdW90OyAmcXVvdDtub2xra0tvbGtram9sa2t0b2xra3pvbGtrUW9sa2tIb2xra1NvbGtrWG9sa2tGb2xra1dvbGtrRG9sa2tYb2xra0FvbGtrWm9sa2tYJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O01ha2Ugc3VyZSB0byBnZXQgZW5vdWdoIHNsZWVwJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtNYWtlIHN1cmUgdG8gZ2V0IGVub3VnaCBzbGVlcCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Qm9sa2tCb2xra05vbGtrR29sa2ttb2xra1BvbGtrbG9sa2tnJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjZzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNCb2xra0JvbGtrTm9sa2tHb2xra21vbGtrUG9sa2tsb2xra2cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIHdpbGwmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8zXzE2JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSB3aWxsJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTUzIiBuYW1lPSJBbm5pZUNoYXRFcDJfM18xNiIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDE5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8zXzE2JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgd2lsbCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgd2lsbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSB3aWxsJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1FvbGtraW9sa2tWb2xra1dvbGtraW9sa2tLb2xra3VvbGtrUSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjUW9sa2tpb2xra1ZvbGtrV29sa2tpb2xra0tvbGtrdW9sa2tRJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7R29vZCBuaWdodCwgYmFiZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTcmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtHb29kIG5pZ2h0LCBiYWJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTU0IiBuYW1lPSJBbm5pZUNoYXRFcDJfM18xNyIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDE5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8zXzE3JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0dvb2QgbmlnaHQsIGJhYmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtHb29kIG5pZ2h0LCBiYWJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtHb29kIG5pZ2h0LCBiYWJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7R29vZCBuaWdodCwgaG9uZXkmcXVvdDsgJnF1b3Q7cW9sa2tEb2xra0dvbGtrVW9sa2tMb2xra2xvbGtrcG9sa2tGb2xra0RvbGtrYW9sa2tIb2xra1pvbGtrd29sa2tYb2xra0ZvbGtrdSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtHb29kIG5pZ2h0LCBob25leSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7R29vZCBuaWdodCwgaG9uZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1lvbGtrem9sa2tBb2xra09vbGtrQm9sa2tvb2xra2NvbGtrVCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjWW9sa2t6b2xra0FvbGtrT29sa2tCb2xra29vbGtrY29sa2tUJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q78J+lsCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTgmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDvwn6WwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTgmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTU1IiBuYW1lPSJBbm5pZUNoYXRFcDJfM18xOCIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDE5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8zXzE4JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKJmx0OyEtLW5vdGVzIC0tJmd0OwombHQ7Jmx0O2lmICRraXNzaW5nID09IHRydWUgYW5kICRnYW5nYmFuZyA9PSB0cnVlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbm90ZXMucHVzaCgmcXVvdDtXZSB0YWxrZWQgaW4gZGVwdGggYWJvdXQgbXkgZmFudGFzeS4gSSB0b2xkIGhlciBJIHdvdWxkIGxpa2UgaGVyIHRvIGtpc3Mgb3RoZXIgZ3V5cyBhbmQgdGhhdCBJIHdvdWxkIGxvdmUgZm9yIGEgZ3JvdXAgb2YgbWVuIHRvIHVzZSBoZXIgaG93ZXZlciB0aGV5IHdhbnQuJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtpZiAka2lzc2luZyA9PSBmYWxzZSBhbmQgJGdhbmdiYW5nID09IHRydWUmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9ub3Rlcy5wdXNoKCZxdW90O1dlIHRhbGtlZCBpbiBkZXB0aCBhYm91dCBteSBmYW50YXN5LiBJIHRvbGQgaGVyIEkgd291bGQgZmVlbCB1bmNvbWZvcnRhYmxlIGlmIHNoZSBraXNzZWQgb3RoZXIgZ3V5cywgYnV0IEkgd291bGQgbG92ZSBmb3IgYSBncm91cCBvZiBtZW4gdG8gdXNlIGhlciBob3dldmVyIHRoZXkgd2FudC4mcXVvdDspJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O2lmICRraXNzaW5nID09IHRydWUgYW5kICRnYW5nYmFuZyA9PSBmYWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX25vdGVzLnB1c2goJnF1b3Q7V2UgdGFsa2VkIGluIGRlcHRoIGFib3V0IG15IGZhbnRhc3kuIEkgdG9sZCBoZXIgSSB3b3VsZCBsaWtlIGhlciB0byBraXNzIG90aGVyIGd1eXMsIGJ1dCBJIHdvdWxkIGZlZWwgbW9yZSBjb21mb3J0YWJsZSBpZiBzaGUgb25seSBjaGVhdGVkIG9uIG1lIHdpdGggb25lIGd1eS4mcXVvdDspJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O2lmICRraXNzaW5nID09IGZhbHNlIGFuZCAkZ2FuZ2JhbmcgPT0gZmFsc2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9ub3Rlcy5wdXNoKCZxdW90O1dlIHRhbGtlZCBpbiBkZXB0aCBhYm91dCBteSBmYW50YXN5LiBJIHRvbGQgaGVyIEkgd291bGQgZmVlbCB1bmNvbWZvcnRhYmxlIGlmIHNoZSBraXNzZWQgb3RoZXIgZ3V5cywgYW5kIEnigJlkIGZlZWwgYmV0dGVyIGlmIHNoZSBvbmx5IGNoZWF0ZWQgb24gbWUgd2l0aCBvbmUgZ3V5LiZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDshLS1ub3RlcyAtLSZndDsKJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDvwn6WwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSA9ICZxdW90O0FubmllQ2hhdEVwMl8zXzE4JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2xhc3RfaG91ciA9ICZxdW90OzIyOjM3JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXQgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRob3VyID0gJnF1b3Q7MjI6MzcmcXVvdDsmZ3Q7Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O29mZmxpbmUtdGV4dCZxdW90OyZndDtBbm5pZSBpcyBvZmZsaW5lJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdCA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMSZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDskbmFtZSwgYXJlIHlvdSBzdGlsbCBhd2FrZT8mcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTU2IiBuYW1lPSJBbm5pZUNoYXRFcDNfMSIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDE5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7R29vZCBtb3JuaW5nIGhvbmV5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtHb29kIG1vcm5pbmcgaG9uZXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0dvb2QgbW9ybmluZyBob25leSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0hvdyBhcmUgeW91PyZxdW90OyAmcXVvdDtSb2xra0FvbGtrZm9sa2tCb2xra09vbGtrSm9sa2t2b2xra1hvbGtrYm9sa2tXb2xra21vbGtrem9sa2tXb2xra0pvbGtrS29sa2thJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvdyBhcmUgeW91PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SG93IGFyZSB5b3U/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtJb2xra0VvbGtrTW9sa2tYb2xra1hvbGtrZG9sa2tub2xra2EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuNXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0lvbGtrRW9sa2tNb2xra1hvbGtrWG9sa2tkb2xra25vbGtrYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0hpIGJhYmUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwM18yJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SGkgYmFiZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwM18yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTU3IiBuYW1lPSJBbm5pZUNoYXRFcDNfMiIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDE5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwM18yJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0hpIGJhYmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIaSBiYWJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIaSBiYWJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0VvbGtrbm9sa2tFb2xra1FvbGtrZ29sa2thb2xra01vbGtraiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjRW9sa2tub2xra0VvbGtrUW9sa2tnb2xra2FvbGtrTW9sa2tqJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7U28gZ2xhZCB5b3UgdGV4dGVkLCBJIGZlbGwgYmFjayBhc2xlZXAmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwM18zJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7U28gZ2xhZCB5b3UgdGV4dGVkLCBJIGZlbGwgYmFjayBhc2xlZXAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDNfMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNTgiIG5hbWU9IkFubmllQ2hhdEVwM18zIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMTk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAzXzMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7U28gZ2xhZCB5b3UgdGV4dGVkLCBJIGZlbGwgYmFjayBhc2xlZXAmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTbyBnbGFkIHlvdSB0ZXh0ZWQsIEkgZmVsbCBiYWNrIGFzbGVlcCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7U28gZ2xhZCB5b3UgdGV4dGVkLCBJIGZlbGwgYmFjayBhc2xlZXAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtEaWQgeW91IGZvcmdldCB0byBzZXQgdGhlIGFsYXJtPyZxdW90OyAmcXVvdDtab2xra2ZvbGtram9sa2tab2xra1pvbGtrcW9sa2tyb2xra2JvbGtrTW9sa2t4b2xra0NvbGtrb29sa2tLb2xra1VvbGtrRm9sa2tvJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0RpZCB5b3UgZm9yZ2V0IHRvIHNldCB0aGUgYWxhcm0/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtEaWQgeW91IGZvcmdldCB0byBzZXQgdGhlIGFsYXJtPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7UW9sa2tRb2xra3pvbGtrVG9sa2thb2xra25vbGtrS29sa2txJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjZzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNRb2xra1FvbGtrem9sa2tUb2xra2FvbGtrbm9sa2tLb2xra3EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtObywgSSBnb3QgYmFjayB0byB0aGUgaG90ZWwgYXQgNSBBTSBsYXN0IG5pZ2h0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDNfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O05vLCBJIGdvdCBiYWNrIHRvIHRoZSBob3RlbCBhdCA1IEFNIGxhc3QgbmlnaHQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDNfNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNTkiIG5hbWU9IkFubmllQ2hhdEVwM180IiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDE5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwM180JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O05vLCBJIGdvdCBiYWNrIHRvIHRoZSBob3RlbCBhdCA1IEFNIGxhc3QgbmlnaHQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtObywgSSBnb3QgYmFjayB0byB0aGUgaG90ZWwgYXQgNSBBTSBsYXN0IG5pZ2h0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtObywgSSBnb3QgYmFjayB0byB0aGUgaG90ZWwgYXQgNSBBTSBsYXN0IG5pZ2h0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX3N0cmVzc2VkLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9zdHJlc3NlZC53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7U28geW91IG9ubHkgc2xlcHQgZm9yIHR3byBob3Vycz8mcXVvdDsgJnF1b3Q7aW9sa2tTb2xra3JvbGtrV29sa2t5b2xra05vbGtrZW9sa2tjb2xra3dvbGtrbm9sa2tSb2xra1JvbGtrR29sa2tkb2xra0xvbGtrQyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTbyB5b3Ugb25seSBzbGVwdCBmb3IgdHdvIGhvdXJzPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7U28geW91IG9ubHkgc2xlcHQgZm9yIHR3byBob3Vycz8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O29vbGtrS29sa2tab2xra1dvbGtraW9sa2t4b2xra0tvbGtreSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjb29sa2tLb2xra1pvbGtrV29sa2tpb2xra3hvbGtrS29sa2t5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WWVhaCwgSSBndWVzcyBzbyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAzXzUmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZZWFoLCBJIGd1ZXNzIHNvJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAzXzUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTYwIiBuYW1lPSJBbm5pZUNoYXRFcDNfNSIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSwxOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDNfNSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZZWFoLCBJIGd1ZXNzIHNvJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WWVhaCwgSSBndWVzcyBzbyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WWVhaCwgSSBndWVzcyBzbyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0hvbmV5LCB5b3UgbmVlZCB0byB0YWtlIGNhcmUgb2YgeW91cnNlbGYmcXVvdDsgJnF1b3Q7U29sa2tCb2xra1VvbGtra29sa2twb2xra2tvbGtrWG9sa2tzb2xra0tvbGtrQ29sa2trb2xra0tvbGtrcG9sa2tjb2xra21vbGtreSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIb25leSwgeW91IG5lZWQgdG8gdGFrZSBjYXJlIG9mIHlvdXJzZWxmJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIb25leSwgeW91IG5lZWQgdG8gdGFrZSBjYXJlIG9mIHlvdXJzZWxmJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtZb3UgY2Fu4oCZdCBzdGF5IHVwIGFsbCBuaWdodCZxdW90OyAmcXVvdDtMb2xra3NvbGtrbG9sa2tZb2xra3RvbGtrcm9sa2tNb2xra1VvbGtrbG9sa2tBb2xra0VvbGtrb29sa2tMb2xra3pvbGtrS29sa2tRJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBjYW7igJl0IHN0YXkgdXAgYWxsIG5pZ2h0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtZb3UgY2Fu4oCZdCBzdGF5IHVwIGFsbCBuaWdodCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7ZG9sa2tUb2xra2JvbGtrTm9sa2tpb2xra1NvbGtrSm9sa2tlJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjlzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNkb2xra1RvbGtrYm9sa2tOb2xra2lvbGtrU29sa2tKb2xra2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZZWFoLCBJIGtub3cmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwM182JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WWVhaCwgSSBrbm93JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAzXzYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTYxIiBuYW1lPSJBbm5pZUNoYXRFcDNfNiIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDIxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwM182JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1llYWgsIEkga25vdyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1llYWgsIEkga25vdyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WWVhaCwgSSBrbm93JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1ZvbGtrUG9sa2tkb2xra0hvbGtrQm9sa2ttb2xra0JvbGtrSiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjVm9sa2tQb2xra2RvbGtrSG9sa2tCb2xra21vbGtrQm9sa2tKJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7T25jZSBJIGZpbmlzaCB0aGlzIHJlcG9ydCwgdGhpbmdzIHdpbGwgZ28gYmFjayB0byBub3JtYWwmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwM183JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7T25jZSBJIGZpbmlzaCB0aGlzIHJlcG9ydCwgdGhpbmdzIHdpbGwgZ28gYmFjayB0byBub3JtYWwmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDNfNyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNjIiIG5hbWU9IkFubmllQ2hhdEVwM183IiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsMjEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAzXzcmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7T25jZSBJIGZpbmlzaCB0aGlzIHJlcG9ydCwgdGhpbmdzIHdpbGwgZ28gYmFjayB0byBub3JtYWwmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPbmNlIEkgZmluaXNoIHRoaXMgcmVwb3J0LCB0aGluZ3Mgd2lsbCBnbyBiYWNrIHRvIG5vcm1hbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7T25jZSBJIGZpbmlzaCB0aGlzIHJlcG9ydCwgdGhpbmdzIHdpbGwgZ28gYmFjayB0byBub3JtYWwmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtPa2F5LCBidXQgZG9u4oCZdCBwdXNoIHlvdXJzZWxmIHRvbyBoYXJkJnF1b3Q7ICZxdW90O2pvbGtrTW9sa2tCb2xra0tvbGtrT29sa2tNb2xra0dvbGtrY29sa2t5b2xra2VvbGtrS29sa2tnb2xra0hvbGtraW9sa2tob2xra0UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2theSwgYnV0IGRvbuKAmXQgcHVzaCB5b3Vyc2VsZiB0b28gaGFyZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7T2theSwgYnV0IGRvbuKAmXQgcHVzaCB5b3Vyc2VsZiB0b28gaGFyZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjZzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX3N0cmVzc2VkLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9zdHJlc3NlZC53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDt1b2xra3FvbGtrRW9sa2tLb2xra05vbGtrem9sa2tVb2xra1ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuNnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3VvbGtrcW9sa2tFb2xra0tvbGtrTm9sa2t6b2xra1VvbGtrUiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0RvbuKAmXQgd29ycnkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwM184JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7RG9u4oCZdCB3b3JyeSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwM184JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE2MyIgbmFtZT0iQW5uaWVDaGF0RXAzXzgiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCwyMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDNfOCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtEb27igJl0IHdvcnJ5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RG9u4oCZdCB3b3JyeSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7RG9u4oCZdCB3b3JyeSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtnb2xra1BvbGtrUm9sa2tOb2xra0ZvbGtreW9sa2tNb2xra0MmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2dvbGtrUG9sa2tSb2xra05vbGtrRm9sa2t5b2xra01vbGtrQyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0V2ZXJ5dGhpbmcgd2lsbCBiZSBmaW5lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDNfOSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0V2ZXJ5dGhpbmcgd2lsbCBiZSBmaW5lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAzXzkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTY0IiBuYW1lPSJBbm5pZUNoYXRFcDNfOSIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDIxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwM185JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0V2ZXJ5dGhpbmcgd2lsbCBiZSBmaW5lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RXZlcnl0aGluZyB3aWxsIGJlIGZpbmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0V2ZXJ5dGhpbmcgd2lsbCBiZSBmaW5lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0pvbGtrT29sa2tTb2xra3JvbGtra29sa2t5b2xra0tvbGtrSiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjSm9sa2tPb2xra1NvbGtrcm9sa2trb2xra3lvbGtrS29sa2tKJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QnV0IHRlbGwgbWUsIGRpZCB5b3Ugc2xlZXAgd2VsbD8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwM18xMCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0J1dCB0ZWxsIG1lLCBkaWQgeW91IHNsZWVwIHdlbGw/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAzXzEwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE2NSIgbmFtZT0iQW5uaWVDaGF0RXAzXzEwIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsMjEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAzXzEwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0J1dCB0ZWxsIG1lLCBkaWQgeW91IHNsZWVwIHdlbGw/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IHRlbGwgbWUsIGRpZCB5b3Ugc2xlZXAgd2VsbD8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0J1dCB0ZWxsIG1lLCBkaWQgeW91IHNsZWVwIHdlbGw/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7WWVhaCwgYWxsIGdvb2Qgb3ZlciBoZXJlJnF1b3Q7ICZxdW90O2hvbGtrUm9sa2tHb2xra1ZvbGtrVG9sa2tIb2xra0JvbGtrWW9sa2tVb2xra0VvbGtrV29sa2tpb2xra1BvbGtra29sa2thb2xra1cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WWVhaCwgYWxsIGdvb2Qgb3ZlciBoZXJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtZZWFoLCBhbGwgZ29vZCBvdmVyIGhlcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS40cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0p1c3Qgd29rZSB1cCZxdW90OyAmcXVvdDtab2xra3ZvbGtrVm9sa2tYb2xra2NvbGtrTW9sa2txb2xra2dvbGtrV29sa2tJb2xra2ZvbGtrQW9sa2tib2xra0VvbGtrZm9sa2twJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0p1c3Qgd29rZSB1cCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SnVzdCB3b2tlIHVwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt6b2xra0dvbGtrWW9sa2tSb2xra0NvbGtrdG9sa2tIb2xra3gmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3pvbGtrR29sa2tZb2xra1JvbGtrQ29sa2t0b2xra0hvbGtreCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgbmVlZCB0byBnbyBtYWtlIG15c2VsZiBhIGN1cCBvZiBjb2ZmZWUgb3IgSSBmZWVsIGxpa2UgSeKAmWxsIHBhc3Mgb3V0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDNfMTEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIG5lZWQgdG8gZ28gbWFrZSBteXNlbGYgYSBjdXAgb2YgY29mZmVlIG9yIEkgZmVlbCBsaWtlIEnigJlsbCBwYXNzIG91dCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwM18xMSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNjYiIG5hbWU9IkFubmllQ2hhdEVwM18xMSIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDIxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwM18xMSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIG5lZWQgdG8gZ28gbWFrZSBteXNlbGYgYSBjdXAgb2YgY29mZmVlIG9yIEkgZmVlbCBsaWtlIEnigJlsbCBwYXNzIG91dCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbmVlZCB0byBnbyBtYWtlIG15c2VsZiBhIGN1cCBvZiBjb2ZmZWUgb3IgSSBmZWVsIGxpa2UgSeKAmWxsIHBhc3Mgb3V0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIG5lZWQgdG8gZ28gbWFrZSBteXNlbGYgYSBjdXAgb2YgY29mZmVlIG9yIEkgZmVlbCBsaWtlIEnigJlsbCBwYXNzIG91dCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtTb2xra2dvbGtrZm9sa2tXb2xra1lvbGtrV29sa2tSb2xra1YmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1NvbGtrZ29sa2tmb2xra1dvbGtrWW9sa2tXb2xra1JvbGtrViZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0NhbiB3ZSB0YWxrIGxhdGVyPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAzXzEyJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7Q2FuIHdlIHRhbGsgbGF0ZXI/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAzXzEyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE2NyIgbmFtZT0iQW5uaWVDaGF0RXAzXzEyIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMjEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAzXzEyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0NhbiB3ZSB0YWxrIGxhdGVyPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0NhbiB3ZSB0YWxrIGxhdGVyPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7Q2FuIHdlIHRhbGsgbGF0ZXI/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7T2YgY291cnNlIGhvbmV5JnF1b3Q7ICZxdW90O1NvbGtrRW9sa2tQb2xra0xvbGtrd29sa2tFb2xra2JvbGtrV29sa2twb2xra2hvbGtrWG9sa2tlb2xra1RvbGtrRG9sa2tvb2xra2UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2YgY291cnNlIGhvbmV5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtPZiBjb3Vyc2UgaG9uZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4ycyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1Rha2UgY2FyZSZxdW90OyAmcXVvdDtqb2xra2NvbGtrY29sa2tEb2xra3NvbGtrTW9sa2tPb2xra3pvbGtrb29sa2t4b2xra2FvbGtrVm9sa2tPb2xra29vbGtrbW9sa2tBJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1Rha2UgY2FyZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGFrZSBjYXJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGxvdmUgeW91JnF1b3Q7ICZxdW90O0RvbGtrRG9sa2tab2xra0FvbGtrV29sa2tib2xra3FvbGtreW9sa2tub2xra3NvbGtrdm9sa2tXb2xra3dvbGtrdW9sa2tJb2xra0QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBsb3ZlIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBsb3ZlIHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Qm9sa2t5b2xra1lvbGtrTW9sa2tXb2xra2JvbGtrTm9sa2tEJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjlzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNCb2xra3lvbGtrWW9sa2tNb2xra1dvbGtrYm9sa2tOb2xra0QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtMb3ZlIHlvdSB0b28mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwM18xMyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0xvdmUgeW91IHRvbyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwM18xMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNjgiIG5hbWU9IkFubmllQ2hhdEVwM18xMyIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDIxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwM18xMyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtMb3ZlIHlvdSB0b28mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtMb3ZlIHlvdSB0b28mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0xvdmUgeW91IHRvbyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtMb3ZlIHlvdSB0b28mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVDaGF0RXAzXzEzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2xhc3RfaG91ciA9ICZxdW90OzA5OjEwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXQgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRob3VyID0gJnF1b3Q7MDk6MTAmcXVvdDsmZ3Q7Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O29mZmxpbmUtdGV4dCZxdW90OyZndDtBbm5pZSBpcyBvZmZsaW5lJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdCA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMSZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtIaSAkbmFtZSwgaG93IGFyZSB5b3U/JnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE2OSIgbmFtZT0iQW5uaWVDaGF0RXAzXzJfMSIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwyMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0hvbmV5LCBob3figJlzIGV2ZXJ5dGhpbmcgZ29pbmcgb3ZlciB0aGVyZT8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvbmV5LCBob3figJlzIGV2ZXJ5dGhpbmcgZ29pbmcgb3ZlciB0aGVyZT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hvbmV5LCBob3figJlzIGV2ZXJ5dGhpbmcgZ29pbmcgb3ZlciB0aGVyZT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtQb2xra2lvbGtrcm9sa2t4b2xra1FvbGtrZ29sa2tYb2xra1AmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuNnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1BvbGtraW9sa2tyb2xra3hvbGtrUW9sa2tnb2xra1hvbGtrUCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0hleSBiYWJlLCBJIHdhcyBqdXN0IGFib3V0IHRvIHRleHQgeW91JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDNfMl8yJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SGV5IGJhYmUsIEkgd2FzIGp1c3QgYWJvdXQgdG8gdGV4dCB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDNfMl8yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTcwIiBuYW1lPSJBbm5pZUNoYXRFcDNfMl8yIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDIxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwM18yXzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SGV5IGJhYmUsIEkgd2FzIGp1c3QgYWJvdXQgdG8gdGV4dCB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZXkgYmFiZSwgSSB3YXMganVzdCBhYm91dCB0byB0ZXh0IHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SGV5IGJhYmUsIEkgd2FzIGp1c3QgYWJvdXQgdG8gdGV4dCB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7dm9sa2tIb2xra2ZvbGtrSW9sa2tnb2xra1NvbGtrSW9sa2tFJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN2b2xra0hvbGtrZm9sa2tJb2xra2dvbGtrU29sa2tJb2xra0UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGhhdmUgYSBwcm9ibGVtJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDNfMl8zJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBoYXZlIGEgcHJvYmxlbSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwM18yXzMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTcxIiBuYW1lPSJBbm5pZUNoYXRFcDNfMl8zIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMjIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAzXzJfMyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGhhdmUgYSBwcm9ibGVtJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBoYXZlIGEgcHJvYmxlbSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBoYXZlIGEgcHJvYmxlbSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtqb2xra3VvbGtrTm9sa2tRb2xra3RvbGtrUm9sa2tvb2xra1omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2pvbGtrdW9sa2tOb2xra1FvbGtrdG9sa2tSb2xra29vbGtrWiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoZSBib3NzIGFza2VkIG1lIHRvIGJyaW5nIGJhY2sgc29tZSBmaWxlcyBJIHRvb2sgZnJvbSB0aGUgb2ZmaWNlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDNfMl80JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhlIGJvc3MgYXNrZWQgbWUgdG8gYnJpbmcgYmFjayBzb21lIGZpbGVzIEkgdG9vayBmcm9tIHRoZSBvZmZpY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDNfMl80JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE3MiIgbmFtZT0iQW5uaWVDaGF0RXAzXzJfNCIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDIyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwM18yXzQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhlIGJvc3MgYXNrZWQgbWUgdG8gYnJpbmcgYmFjayBzb21lIGZpbGVzIEkgdG9vayBmcm9tIHRoZSBvZmZpY2UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGUgYm9zcyBhc2tlZCBtZSB0byBicmluZyBiYWNrIHNvbWUgZmlsZXMgSSB0b29rIGZyb20gdGhlIG9mZmljZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhlIGJvc3MgYXNrZWQgbWUgdG8gYnJpbmcgYmFjayBzb21lIGZpbGVzIEkgdG9vayBmcm9tIHRoZSBvZmZpY2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7RW9sa2twb2xra2hvbGtrbG9sa2tpb2xra0VvbGtrYm9sa2tWJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNFb2xra3BvbGtraG9sa2tsb2xra2lvbGtrRW9sa2tib2xra1YmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGNhbGxlZCBIYWlsZXksIHNoZSBzYWlkIHNoZSBjb3VsZCBnbyBkdXJpbmcgaGVyIGJyZWFrJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDNfMl81JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBjYWxsZWQgSGFpbGV5LCBzaGUgc2FpZCBzaGUgY291bGQgZ28gZHVyaW5nIGhlciBicmVhayZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwM18yXzUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTczIiBuYW1lPSJBbm5pZUNoYXRFcDNfMl81IiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsMjIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAzXzJfNSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGNhbGxlZCBIYWlsZXksIHNoZSBzYWlkIHNoZSBjb3VsZCBnbyBkdXJpbmcgaGVyIGJyZWFrJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBjYWxsZWQgSGFpbGV5LCBzaGUgc2FpZCBzaGUgY291bGQgZ28gZHVyaW5nIGhlciBicmVhayZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBjYWxsZWQgSGFpbGV5LCBzaGUgc2FpZCBzaGUgY291bGQgZ28gZHVyaW5nIGhlciBicmVhayZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtpb2xra0NvbGtrdW9sa2tTb2xra2FvbGtrUG9sa2tCb2xra3kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2lvbGtrQ29sa2t1b2xra1NvbGtrYW9sa2tQb2xra0JvbGtreSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoZSBpc3N1ZSBpcyBzaGUgZG9lc27igJl0IGhhdmUgYSB3YXkgdG8gZ2V0IGludG8gdGhlIGhvdXNlIHdpdGhvdXQgYSBrZXkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwM18yXzYmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaGUgaXNzdWUgaXMgc2hlIGRvZXNu4oCZdCBoYXZlIGEgd2F5IHRvIGdldCBpbnRvIHRoZSBob3VzZSB3aXRob3V0IGEga2V5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAzXzJfNiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNzQiIG5hbWU9IkFubmllQ2hhdEVwM18yXzYiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwyMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDNfMl82JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RoZSBpc3N1ZSBpcyBzaGUgZG9lc27igJl0IGhhdmUgYSB3YXkgdG8gZ2V0IGludG8gdGhlIGhvdXNlIHdpdGhvdXQgYSBrZXkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGUgaXNzdWUgaXMgc2hlIGRvZXNu4oCZdCBoYXZlIGEgd2F5IHRvIGdldCBpbnRvIHRoZSBob3VzZSB3aXRob3V0IGEga2V5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUaGUgaXNzdWUgaXMgc2hlIGRvZXNu4oCZdCBoYXZlIGEgd2F5IHRvIGdldCBpbnRvIHRoZSBob3VzZSB3aXRob3V0IGEga2V5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7Tm8gcHJvYmxlbSBIb25leSZxdW90OyAmcXVvdDtIb2xra2RvbGtrcG9sa2tOb2xra2NvbGtrb29sa2tGb2xra3RvbGtrYW9sa2tsb2xra3VvbGtrWG9sa2tPb2xra0dvbGtraW9sa2tzJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O05vIHByb2JsZW0gSG9uZXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O05vIHByb2JsZW0gSG9uZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4ycyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0RvIHlvdSB3YW50IG1lIHRvIGp1c3QgdGFrZSB0aGVtIHRvIHlvdXIgb2ZmaWNlPyZxdW90OyAmcXVvdDtib2xra0ZvbGtrUm9sa2tNb2xra0NvbGtrRW9sa2tYb2xra2NvbGtrdW9sa2tqb2xra1ZvbGtrd29sa2tMb2xra3FvbGtrcW9sa2tWJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0RvIHlvdSB3YW50IG1lIHRvIGp1c3QgdGFrZSB0aGVtIHRvIHlvdXIgb2ZmaWNlPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7RG8geW91IHdhbnQgbWUgdG8ganVzdCB0YWtlIHRoZW0gdG8geW91ciBvZmZpY2U/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtnb2xra2ZvbGtrcG9sa2tob2xra0dvbGtrVW9sa2tLb2xra1QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuOXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2dvbGtrZm9sa2twb2xra2hvbGtrR29sa2tVb2xra0tvbGtrVCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0FjdHVhbGx5LCB0aGF0IHdvdWxkIGJlIGFtYXppbmcmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwM18yXzcmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtBY3R1YWxseSwgdGhhdCB3b3VsZCBiZSBhbWF6aW5nJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAzXzJfNyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNzUiIG5hbWU9IkFubmllQ2hhdEVwM18yXzciIHRhZ3M9IiIgcG9zaXRpb249IjYwMCwyMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDNfMl83JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0FjdHVhbGx5LCB0aGF0IHdvdWxkIGJlIGFtYXppbmcmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBY3R1YWxseSwgdGhhdCB3b3VsZCBiZSBhbWF6aW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtBY3R1YWxseSwgdGhhdCB3b3VsZCBiZSBhbWF6aW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3pvbGtrWW9sa2tJb2xra2FvbGtrem9sa2tBb2xra2RvbGtraiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjem9sa2tZb2xra0lvbGtrYW9sa2t6b2xra0FvbGtrZG9sa2tqJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSB0aGluayBIYWlsZXkgd291bGQgaGF2ZSB0byBzbmVhayBvdXQgdG8gZ28gYW5kIGNvbWUgYmFjayZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAzXzJfOCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgdGhpbmsgSGFpbGV5IHdvdWxkIGhhdmUgdG8gc25lYWsgb3V0IHRvIGdvIGFuZCBjb21lIGJhY2smcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDNfMl84JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE3NiIgbmFtZT0iQW5uaWVDaGF0RXAzXzJfOCIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDIyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwM18yXzgmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSB0aGluayBIYWlsZXkgd291bGQgaGF2ZSB0byBzbmVhayBvdXQgdG8gZ28gYW5kIGNvbWUgYmFjayZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgdGhpbmsgSGFpbGV5IHdvdWxkIGhhdmUgdG8gc25lYWsgb3V0IHRvIGdvIGFuZCBjb21lIGJhY2smcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgdGhpbmsgSGFpbGV5IHdvdWxkIGhhdmUgdG8gc25lYWsgb3V0IHRvIGdvIGFuZCBjb21lIGJhY2smcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtObyB3b3JyaWVzLCB3ZeKAmXJlIGhhdmluZyBhIHF1aWV0IGRheSBoZXJlJnF1b3Q7ICZxdW90O3JvbGtrT29sa2tFb2xra2ZvbGtreW9sa2tRb2xra3hvbGtrRW9sa2tUb2xra0JvbGtrdW9sa2tWb2xra3hvbGtrbW9sa2tFb2xra0EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm8gd29ycmllcywgd2XigJlyZSBoYXZpbmcgYSBxdWlldCBkYXkgaGVyZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7Tm8gd29ycmllcywgd2XigJlyZSBoYXZpbmcgYSBxdWlldCBkYXkgaGVyZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QmVzaWRlcywgeW91IGtub3cgdGhleSBsZXQgdXMgbGVhdmUgdGhlIG9mZmljZSB3aGVuIHdlIG5lZWQgdG8gdmlzaXQgc3VwcGxpZXJzJnF1b3Q7ICZxdW90O01vbGtrbW9sa2t4b2xra0FvbGtrQ29sa2tjb2xra0dvbGtrZW9sa2tYb2xra3ZvbGtrTW9sa2tTb2xra0NvbGtrYW9sa2tFb2xra2cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QmVzaWRlcywgeW91IGtub3cgdGhleSBsZXQgdXMgbGVhdmUgdGhlIG9mZmljZSB3aGVuIHdlIG5lZWQgdG8gdmlzaXQgc3VwcGxpZXJzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCZXNpZGVzLCB5b3Uga25vdyB0aGV5IGxldCB1cyBsZWF2ZSB0aGUgb2ZmaWNlIHdoZW4gd2UgbmVlZCB0byB2aXNpdCBzdXBwbGllcnMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJlsbCBqdXN0IHNjaGVkdWxlIGEgdmlzaXQsIGFuZCBJ4oCZbGwgaGF2ZSBwbGVudHkgb2YgdGltZSBmb3IgZXZlcnl0aGluZyZxdW90OyAmcXVvdDtFb2xra0lvbGtrYW9sa2t0b2xra21vbGtrUW9sa2tGb2xra1BvbGtrT29sa2t3b2xra0hvbGtram9sa2txb2xra3FvbGtrS29sa2toJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJlsbCBqdXN0IHNjaGVkdWxlIGEgdmlzaXQsIGFuZCBJ4oCZbGwgaGF2ZSBwbGVudHkgb2YgdGltZSBmb3IgZXZlcnl0aGluZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmWxsIGp1c3Qgc2NoZWR1bGUgYSB2aXNpdCwgYW5kIEnigJlsbCBoYXZlIHBsZW50eSBvZiB0aW1lIGZvciBldmVyeXRoaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt2b2xra3dvbGtrQ29sa2tzb2xra2tvbGtrTW9sa2trb2xra28mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDUuN3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3ZvbGtrd29sa2tDb2xra3NvbGtra29sa2tNb2xra2tvbGtrbyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1lvdeKAmXJlIG15IGd1YXJkaWFuIGFuZ2VsJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDNfMl85JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WW914oCZcmUgbXkgZ3VhcmRpYW4gYW5nZWwmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDNfMl85JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE3NyIgbmFtZT0iQW5uaWVDaGF0RXAzXzJfOSIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDIyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwM18yXzkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WW914oCZcmUgbXkgZ3VhcmRpYW4gYW5nZWwmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3XigJlyZSBteSBndWFyZGlhbiBhbmdlbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW914oCZcmUgbXkgZ3VhcmRpYW4gYW5nZWwmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90OyB0cnVlICZxdW90O0FubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SnVzdCB0ZWxsIG1lLCB3aGVyZSBhcmUgdGhlc2UgZmlsZXMgZXhhY3RseT8mcXVvdDsgJnF1b3Q7cG9sa2tjb2xra0xvbGtrdG9sa2tqb2xra2tvbGtrWm9sa2tub2xra0pvbGtraG9sa2tvb2xra3BvbGtrUW9sa2t3b2xra2RvbGtreCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtKdXN0IHRlbGwgbWUsIHdoZXJlIGFyZSB0aGVzZSBmaWxlcyBleGFjdGx5PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SnVzdCB0ZWxsIG1lLCB3aGVyZSBhcmUgdGhlc2UgZmlsZXMgZXhhY3RseT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2ZvbGtrUG9sa2t6b2xra3RvbGtrV29sa2tqb2xra2NvbGtrSSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi43cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjZm9sa2tQb2xra3pvbGtrdG9sa2tXb2xra2pvbGtrY29sa2tJJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SW4gdGhlIHNlY29uZCBkcmF3ZXIgb2YgbXkgZGVzaywgaWYgSSByZW1lbWJlciBjb3JyZWN0bHkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwM18yXzEwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SW4gdGhlIHNlY29uZCBkcmF3ZXIgb2YgbXkgZGVzaywgaWYgSSByZW1lbWJlciBjb3JyZWN0bHkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDNfMl8xMCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNzgiIG5hbWU9IkFubmllQ2hhdEVwM18yXzEwIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMjIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAzXzJfMTAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SW4gdGhlIHNlY29uZCBkcmF3ZXIgb2YgbXkgZGVzaywgaWYgSSByZW1lbWJlciBjb3JyZWN0bHkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJbiB0aGUgc2Vjb25kIGRyYXdlciBvZiBteSBkZXNrLCBpZiBJIHJlbWVtYmVyIGNvcnJlY3RseSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SW4gdGhlIHNlY29uZCBkcmF3ZXIgb2YgbXkgZGVzaywgaWYgSSByZW1lbWJlciBjb3JyZWN0bHkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Z29sa2tLb2xra1VvbGtrQ29sa2t0b2xra3hvbGtrT29sa2toJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNnb2xra0tvbGtrVW9sa2tDb2xra3RvbGtreG9sa2tPb2xra2gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJZiBub3QsIHRoZW4gdGhlIHRoaXJkIG9uZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAzXzJfMTEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJZiBub3QsIHRoZW4gdGhlIHRoaXJkIG9uZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwM18yXzExJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE3OSIgbmFtZT0iQW5uaWVDaGF0RXAzXzJfMTEiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsMjIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAzXzJfMTEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SWYgbm90LCB0aGVuIHRoZSB0aGlyZCBvbmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJZiBub3QsIHRoZW4gdGhlIHRoaXJkIG9uZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SWYgbm90LCB0aGVuIHRoZSB0aGlyZCBvbmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7TG9sa2t0b2xra1NvbGtrYW9sa2twb2xra2ZvbGtrVm9sa2tiJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNMb2xra3RvbGtrU29sa2thb2xra3BvbGtrZm9sa2tWb2xra2ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGV5JiMzOTtyZSBpbnNpZGUgYSB5ZWxsb3cgZm9sZGVyJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDNfMl8xMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoZXkmIzM5O3JlIGluc2lkZSBhIHllbGxvdyBmb2xkZXImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDNfMl8xMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxODAiIG5hbWU9IkFubmllQ2hhdEVwM18yXzEyIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDIyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwM18yXzEyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RoZXnigJlyZSBpbnNpZGUgYSB5ZWxsb3cgZm9sZGVyJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhleeKAmXJlIGluc2lkZSBhIHllbGxvdyBmb2xkZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1RoZXnigJlyZSBpbnNpZGUgYSB5ZWxsb3cgZm9sZGVyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3VvbGtrVm9sa2txb2xra2ZvbGtrUW9sa2tEb2xra1JvbGtrQiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjdW9sa2tWb2xra3FvbGtrZm9sa2tRb2xra0RvbGtrUm9sa2tCJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SnVzdCB0YWtlIHRoZSB3aG9sZSBmb2xkZXImcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwM18yXzEzJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SnVzdCB0YWtlIHRoZSB3aG9sZSBmb2xkZXImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDNfMl8xMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxODEiIG5hbWU9IkFubmllQ2hhdEVwM18yXzEzIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMjM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAzXzJfMTMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SnVzdCB0YWtlIHRoZSB3aG9sZSBmb2xkZXImcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtKdXN0IHRha2UgdGhlIHdob2xlIGZvbGRlciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SnVzdCB0YWtlIHRoZSB3aG9sZSBmb2xkZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtQZXJmZWN0LCBJ4oCZbGwgc3RvcCBieSBhcm91bmQgbm9vbiZxdW90OyAmcXVvdDtlb2xra0dvbGtrQW9sa2tSb2xra0hvbGtrWm9sa2tRb2xra3pvbGtram9sa2tYb2xra0VvbGtrcG9sa2tHb2xra3NvbGtrd29sa2tkJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1BlcmZlY3QsIEnigJlsbCBzdG9wIGJ5IGFyb3VuZCBub29uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtQZXJmZWN0LCBJ4oCZbGwgc3RvcCBieSBhcm91bmQgbm9vbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7bm9sa2tTb2xra0JvbGtrVm9sa2tvb2xra1ZvbGtrR29sa2tOJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjVzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNub2xra1NvbGtrQm9sa2tWb2xra29vbGtrVm9sa2tHb2xra04mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGFua3MgYmFiZSwgSSBsb3ZlIHlvdSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAzXzJfMTQmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaGFua3MgYmFiZSwgSSBsb3ZlIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwM18yXzE0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE4MiIgbmFtZT0iQW5uaWVDaGF0RXAzXzJfMTQiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSwyMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDNfMl8xNCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGFua3MgYmFiZSwgSSBsb3ZlIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYW5rcyBiYWJlLCBJIGxvdmUgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUaGFua3MgYmFiZSwgSSBsb3ZlIHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgbG92ZSB5b3UgbW9yZSZxdW90OyAmcXVvdDtzb2xra3JvbGtrbG9sa2tUb2xra2RvbGtrUW9sa2ttb2xra2dvbGtrS29sa2tWb2xra3NvbGtraG9sa2tGb2xra1dvbGtrUm9sa2tzJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbG92ZSB5b3UgbW9yZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBsb3ZlIHlvdSBtb3JlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuOHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfaW1nICZxdW90O2Fzc2V0cy9pbWcvZXAzL2FubmllX3Bob3RvXzUud2VicCZxdW90OyB0cnVlICZxdW90O2xvbGtrYm9sa2tvb2xra3hvbGtrVG9sa2tZb2xra1FvbGtrQW9sa2t0b2xra2pvbGtrRW9sa2tlb2xra3RvbGtrTW9sa2tmb2xra3AmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMiwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lcDMvYW5uaWVfcGhvdG9fNS53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkcGhvdG9zLnB1c2goJnF1b3Q7YXNzZXRzL2ltZy9lcDMvYW5uaWVfcGhvdG9fNS53ZWJwJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjhzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGxvdmUgeW91IG1vcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVDaGF0RXAzXzJfMTQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfbGFzdF9ob3VyID0gJnF1b3Q7MDk6NTUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdCA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDswOTo1NSZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7b2ZmbGluZS10ZXh0JnF1b3Q7Jmd0O0FubmllIGlzIG9mZmxpbmUmbHQ7L2RpdiZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi44cyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRQaGlsbGlwc19ub3Rlcy5wdXNoKCZxdW90O0hlIHRvbGQgbWUgSSBuZWVkIHRvIGJyaW5nIHRvIHRoZSBvZmZpY2Ugc29tZSBmaWxlcyBJIGFjY2lkZW50YWxseSB0b29rIGhvbWUgYW5kIGZvcmdvdCB0byByZXR1cm4uIEkgaGF2ZSB1bnRpbCA2IG/igJljbG9jaywgb3IgbXkgam9iIGNvdWxkIGJlIGF0IHJpc2suIEx1Y2tpbHksIEFubmllIG9mZmVyZWQgdG8gcmV0dXJuIHRoZW0uJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi44cyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGVuZE9mQ29udGVudCA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi44cyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGVwMyA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTgzIiBuYW1lPSJBbm5pZV9ub3RlIiB0YWdzPSJub3Rlc2luIG5vdGhvdXIiIHBvc2l0aW9uPSIzNTAsMjM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtoZWFkZXIgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7Tm90ZXMmcXVvdDsgdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7ZGl2IGlkPSZxdW90O3BhZGRpbmctY29udGFpbmVyJnF1b3Q7IGNsYXNzPSZxdW90O3RleHRfYmxhY2smcXVvdDsmZ3Q7CiAgICAgICAgJmx0O2RpdiZndDstIFNoZeKAmXMgbXkgZ2lybGZyaWVuZC4gV2UgbWV0IGluIGhpZ2ggc2Nob29sIGFuZCBoYXZlIGJlZW4gaW5zZXBhcmFibGUgZXZlciBzaW5jZS4gV2XigJl2ZSBiZWVuIGxpdmluZyB0b2dldGhlciBmb3IgYSBmZXcgeWVhcnMgbm93LiZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsmbHQ7Zm9yIF9pIHJhbmdlICRBbm5pZV9ub3RlcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgc3R5bGU9JnF1b3Q7bWFyZ2luLXRvcDogMTZweCZxdW90OyZndDstIF9pJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDsvZm9yJmd0OyZndDsKICAgICZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE4NCIgbmFtZT0iSGFpbGV5X2NoYXQiIHRhZ3M9Im1hcHAgbm90aG91ciIgcG9zaXRpb249IjQ3NSwyMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwovKnJlZ2lvbiBFbWlseSBjaGF0Ki8KJmx0OyZsdDtpZiAkSGFpbGV5X2NoYXQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2hlYWRlciAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7ICRIYWlsZXlfcGF1c2VkJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtoZWFkZXIgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyB0cnVlJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O21lc3NhZ2VfY29udGFpbmVyJnF1b3Q7Jmd0OwombHQ7Jmx0O2ZvciBfbGluZSByYW5nZSAkSGFpbGV5X2NoYXRMb2cmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiBfbGluZS50eXBlID09IDEmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCBfbGluZS5zZW5kZXIgX2xpbmUubWVzc2FnZSBfbGluZS5hdmF0YXImZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlaWYgX2xpbmUudHlwZSA9PSAyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VfaW1nIF9saW5lLm1lc3NhZ2UmZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlaWYgX2xpbmUudHlwZSA9PSAzJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VfdmlkZW8gX2xpbmUubWVzc2FnZVswXSBfbGluZS5tZXNzYWdlWzFdJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZWlmIF9saW5lLnR5cGUgPT0gNCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDttZXNzYWdlX2Vtb2ppIF9saW5lLm1lc3NhZ2UgZmFsc2UgX2xpbmUuc2VuZGVyJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDsvZm9yJmd0OyZndDsKJmx0OyZsdDtpZiAkSGFpbGV5X3BhdXNlZCA9PSBmYWxzZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRIYWlsZXlfY2hhdCA9PSB0cnVlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJEhhaWxleV9jaGF0U3RhdGUmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAmbHQ7ZGl2IEBpZD0mcXVvdDskSGFpbGV5X2xhc3RJZC5zbGljZSgxKSZxdW90OyZndDsmbHQ7L2RpdiZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O2VuZCZxdW90OyZndDsmbHQ7L2RpdiZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7Y2hhdF9iYXImcXVvdDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7Y29udGVudCZxdW90OyZndDsKJmx0OyZsdDtpZiAkSGFpbGV5X3BhdXNlZCA9PSB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJEhhaWxleV9vcHRpb25zWzBdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJEhhaWxleV9vcHRpb25zWzBdLnRleHQmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJEhhaWxleV9vcHRpb25zWzBdLnBhc3NhZ2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkSGFpbGV5X29wdGlvbnNbMV0mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bGluayAkSGFpbGV5X29wdGlvbnNbMV0udGV4dCZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkSGFpbGV5X29wdGlvbnNbMV0ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRIYWlsZXlfb3B0aW9uc1syXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICRIYWlsZXlfb3B0aW9uc1syXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpbmNsdWRlICRIYWlsZXlfb3B0aW9uc1syXS5wYXNzYWdlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJEhhaWxleV9vcHRpb25zWzNdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJEhhaWxleV9vcHRpb25zWzNdLnRleHQmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJEhhaWxleV9vcHRpb25zWzNdLnBhc3NhZ2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7L2RpdiZndDsKJmx0OyZsdDt0aW1lZCAwLjJzJmd0OyZndDsKICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGxJbnN0YSgpOwogICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE4NSIgbmFtZT0iSGFpbGV5U3RhcnQxIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsMjM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SGkgJG5hbWUsIE1yLiBQaGlsbGlwcyBhc2tlZCBtZSB0byBzZW5kIHlvdSB0aGUgbGFzdCBxdWFydGVy4oCZcyByZXBvcnQgc28geW91IGNhbiB1c2UgaXQgYXMgYSByZWZlcmVuY2UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGkgJG5hbWUsIE1yLiBQaGlsbGlwcyBhc2tlZCBtZSB0byBzZW5kIHlvdSB0aGUgbGFzdCBxdWFydGVy4oCZcyByZXBvcnQgc28geW91IGNhbiB1c2UgaXQgYXMgYSByZWZlcmVuY2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtIaSAkbmFtZSwgTXIuIFBoaWxsaXBzIGFza2VkIG1lIHRvIHNlbmQgeW91IHRoZSBsYXN0IHF1YXJ0ZXLigJlzIHJlcG9ydCBzbyB5b3UgY2FuIHVzZSBpdCBhcyBhIHJlZmVyZW5jZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjVzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIGNhbuKAmXQgYmVsaWV2ZSBoZSBhc2tlZCB5b3UgZm9yIGEgZnVsbCByZXBvcnQgaW4gc3VjaCBhIHNob3J0IHRpbWUmcXVvdDsgJnF1b3Q7Q29sa2tVb2xra2RvbGtrV29sa2tBb2xra3dvbGtrWG9sa2tlb2xra05vbGtrdG9sa2tSb2xra21vbGtrem9sa2tTb2xra0xvbGtrQyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgY2Fu4oCZdCBiZWxpZXZlIGhlIGFza2VkIHlvdSBmb3IgYSBmdWxsIHJlcG9ydCBpbiBzdWNoIGEgc2hvcnQgdGltZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgY2Fu4oCZdCBiZWxpZXZlIGhlIGFza2VkIHlvdSBmb3IgYSBmdWxsIHJlcG9ydCBpbiBzdWNoIGEgc2hvcnQgdGltZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1lvdSBtdXN0IGhhdmUgcmVhbGx5IHBpc3NlZCBoaW0gb2ZmIHRoaXMgdGltZSZxdW90OyAmcXVvdDtKb2xra2NvbGtrbG9sa2tRb2xra0VvbGtrY29sa2tVb2xra3ZvbGtrZm9sa2t5b2xra3RvbGtrTm9sa2tJb2xra1NvbGtraW9sa2taJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IG11c3QgaGF2ZSByZWFsbHkgcGlzc2VkIGhpbSBvZmYgdGhpcyB0aW1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WW91IG11c3QgaGF2ZSByZWFsbHkgcGlzc2VkIGhpbSBvZmYgdGhpcyB0aW1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt4b2xra0VvbGtrWm9sa2tSb2xra1hvbGtrdG9sa2tzb2xra0kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuMnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3hvbGtrRW9sa2tab2xra1JvbGtrWG9sa2t0b2xra3NvbGtrSSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGF0IGRhbW4gb2xkIG1hbiBoYXRlcyBtZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5U3RhcnQxXzJhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhhdCBkYW1uIG9sZCBtYW4gaGF0ZXMgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlTdGFydDFfMmEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3hvbGtrRW9sa2tab2xra1JvbGtrWG9sa2t0b2xra3NvbGtrSSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIHJlYWxseSBkb27igJl0IGtub3cgaWYgSSBjYW4gZmluaXNoIHRoaXMgYnkgRnJpZGF5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlTdGFydDFfMmImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIHJlYWxseSBkb27igJl0IGtub3cgaWYgSSBjYW4gZmluaXNoIHRoaXMgYnkgRnJpZGF5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5U3RhcnQxXzJiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTg2IiBuYW1lPSJIYWlsZXlTdGFydDFfMmEiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwyMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5U3RhcnQxXzJhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhhdCBkYW1uIG9sZCBtYW4gaGF0ZXMgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhdCBkYW1uIG9sZCBtYW4gaGF0ZXMgbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGF0IGRhbW4gb2xkIG1hbiBoYXRlcyBtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtPb2xra2FvbGtrWm9sa2tab2xra1JvbGtrRG9sa2tCb2xra1EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I09vbGtrYW9sa2tab2xra1pvbGtrUm9sa2tEb2xra0JvbGtrUSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIHZvbHVudGVlcmVkIGZvciB0aGlzIHRyaXAgdGhpbmtpbmcgSeKAmWQgZWFybiBzb21lIHBvaW50cyB3aXRoIGhpbSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5U3RhcnQxXzQmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIHZvbHVudGVlcmVkIGZvciB0aGlzIHRyaXAgdGhpbmtpbmcgSeKAmWQgZWFybiBzb21lIHBvaW50cyB3aXRoIGhpbSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleVN0YXJ0MV80JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE4NyIgbmFtZT0iSGFpbGV5U3RhcnQxXzJiIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMjM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleVN0YXJ0MV8yYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgcmVhbGx5IGRvbuKAmXQga25vdyBpZiBJIGNhbiBmaW5pc2ggdGhpcyBieSBGcmlkYXkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSByZWFsbHkgZG9u4oCZdCBrbm93IGlmIEkgY2FuIGZpbmlzaCB0aGlzIGJ5IEZyaWRheSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgcmVhbGx5IGRvbuKAmXQga25vdyBpZiBJIGNhbiBmaW5pc2ggdGhpcyBieSBGcmlkYXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7VG9sa2tFb2xra3ZvbGtrVW9sa2t1b2xra3NvbGtrQW9sa2toJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNUb2xra0VvbGtrdm9sa2tVb2xra3VvbGtrc29sa2tBb2xra2gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSB2b2x1bnRlZXJlZCBmb3IgdGhpcyB0cmlwIHRoaW5raW5nIEnigJlkIGVhcm4gc29tZSBwb2ludHMgd2l0aCBoaW0mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleVN0YXJ0MV80JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSB2b2x1bnRlZXJlZCBmb3IgdGhpcyB0cmlwIHRoaW5raW5nIEnigJlkIGVhcm4gc29tZSBwb2ludHMgd2l0aCBoaW0mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlTdGFydDFfNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxODgiIG5hbWU9IkhhaWxleVN0YXJ0MV80IiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMjM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleVN0YXJ0MV80JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSB2b2x1bnRlZXJlZCBmb3IgdGhpcyB0cmlwIHRoaW5raW5nIEnigJlkIGVhcm4gc29tZSBwb2ludHMgd2l0aCBoaW0mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB2b2x1bnRlZXJlZCBmb3IgdGhpcyB0cmlwIHRoaW5raW5nIEnigJlkIGVhcm4gc29tZSBwb2ludHMgd2l0aCBoaW0mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIHZvbHVudGVlcmVkIGZvciB0aGlzIHRyaXAgdGhpbmtpbmcgSeKAmWQgZWFybiBzb21lIHBvaW50cyB3aXRoIGhpbSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt3b2xra1RvbGtrUW9sa2tYb2xra2NvbGtraG9sa2tCb2xra3gmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3dvbGtrVG9sa2tRb2xra1hvbGtrY29sa2tob2xra0JvbGtreCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtCdXQgaXQgbG9va3MgbGlrZSBJIGp1c3QgZW5kZWQgdXAgcHV0dGluZyBteSBqb2IgYXQgcmlzayZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5U3RhcnQxXzUmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtCdXQgaXQgbG9va3MgbGlrZSBJIGp1c3QgZW5kZWQgdXAgcHV0dGluZyBteSBqb2IgYXQgcmlzayZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleVN0YXJ0MV81JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE4OSIgbmFtZT0iSGFpbGV5U3RhcnQxXzUiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsMjM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleVN0YXJ0MV81JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7QnV0IGl0IGxvb2tzIGxpa2UgSSBqdXN0IGVuZGVkIHVwIHB1dHRpbmcgbXkgam9iIGF0IHJpc2smcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IGl0IGxvb2tzIGxpa2UgSSBqdXN0IGVuZGVkIHVwIHB1dHRpbmcgbXkgam9iIGF0IHJpc2smcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtCdXQgaXQgbG9va3MgbGlrZSBJIGp1c3QgZW5kZWQgdXAgcHV0dGluZyBteSBqb2IgYXQgcmlzayZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtEb27igJl0IHdvcnJ5LCBJ4oCZbGwgZG8gd2hhdCBJIGNhbiB0byBoZWxwIHlvdSZxdW90OyAmcXVvdDtjb2xra2dvbGtrSG9sa2tmb2xra0ZvbGtrVm9sa2tib2xra09vbGtrT29sa2ttb2xra2ZvbGtrVG9sa2tFb2xra1lvbGtrb29sa2ttJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RG9u4oCZdCB3b3JyeSwgSeKAmWxsIGRvIHdoYXQgSSBjYW4gdG8gaGVscCB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtEb27igJl0IHdvcnJ5LCBJ4oCZbGwgZG8gd2hhdCBJIGNhbiB0byBoZWxwIHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMnMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1lvdSB3ZXJlIGFsd2F5cyB0aGVyZSBmb3IgbWUgd2hlbiBJIGZpcnN0IGpvaW5lZCB0aGUgY29tcGFueSZxdW90OyAmcXVvdDtVb2xra1RvbGtrdm9sa2tzb2xra1dvbGtrQ29sa2ttb2xra2pvbGtrQ29sa2tHb2xra2NvbGtrY29sa2tab2xra1hvbGtrRm9sa2tEJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IHdlcmUgYWx3YXlzIHRoZXJlIGZvciBtZSB3aGVuIEkgZmlyc3Qgam9pbmVkIHRoZSBjb21wYW55JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WW91IHdlcmUgYWx3YXlzIHRoZXJlIGZvciBtZSB3aGVuIEkgZmlyc3Qgam9pbmVkIHRoZSBjb21wYW55JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS41cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7Q291bnQgb24gbWUgZm9yIHdoYXRldmVyIHlvdSBuZWVkLCBJIGFscmVhZHkgc2VudCB0aGUgcmVwb3J0IHRvIHlvdXIgZW1haWwmcXVvdDsgJnF1b3Q7R29sa2tMb2xra2dvbGtraW9sa2tQb2xra05vbGtrcW9sa2txb2xra01vbGtreW9sa2tCb2xra1NvbGtrSm9sa2tab2xra0RvbGtrSiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0NvdW50IG9uIG1lIGZvciB3aGF0ZXZlciB5b3UgbmVlZCwgSSBhbHJlYWR5IHNlbnQgdGhlIHJlcG9ydCB0byB5b3VyIGVtYWlsJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7Q291bnQgb24gbWUgZm9yIHdoYXRldmVyIHlvdSBuZWVkLCBJIGFscmVhZHkgc2VudCB0aGUgcmVwb3J0IHRvIHlvdXIgZW1haWwmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNS44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjhzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIGFsc28gaW5jbHVkZWQgYSB0ZW1wbGF0ZSB5b3UgY2FuIHVzZSBhcyBhIGJhc2UgZm9yIHRoZSBvbmUgeW91IG5lZWQgdG8gc3VibWl0JnF1b3Q7ICZxdW90O0pvbGtram9sa2t1b2xra0FvbGtrVW9sa2tzb2xra3hvbGtrQW9sa2tOb2xra21vbGtrQW9sa2tLb2xra0NvbGtrYm9sa2t5b2xra2kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGFsc28gaW5jbHVkZWQgYSB0ZW1wbGF0ZSB5b3UgY2FuIHVzZSBhcyBhIGJhc2UgZm9yIHRoZSBvbmUgeW91IG5lZWQgdG8gc3VibWl0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSBhbHNvIGluY2x1ZGVkIGEgdGVtcGxhdGUgeW91IGNhbiB1c2UgYXMgYSBiYXNlIGZvciB0aGUgb25lIHlvdSBuZWVkIHRvIHN1Ym1pdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA4LjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0tlZXAgbWUgdXBkYXRlZCBvbiBob3cgaXTigJlzIGdvaW5nJnF1b3Q7ICZxdW90O29vbGtrZm9sa2tRb2xra0xvbGtrSG9sa2tOb2xra05vbGtrZ29sa2tUb2xra3FvbGtrZW9sa2tUb2xra1RvbGtreW9sa2tvb2xra1QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtLZWVwIG1lIHVwZGF0ZWQgb24gaG93IGl04oCZcyBnb2luZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0tlZXAgbWUgdXBkYXRlZCBvbiBob3cgaXTigJlzIGdvaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt1b2xra3dvbGtrbG9sa2tCb2xra2xvbGtrSm9sa2twb2xra1MmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDkuNXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3VvbGtrd29sa2tsb2xra0JvbGtrbG9sa2tKb2xra3BvbGtrUyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGFuayB5b3Ugc28gbXVjaCwgSGFpbGV5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlTdGFydDFfNiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoYW5rIHlvdSBzbyBtdWNoLCBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlTdGFydDFfNiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxOTAiIG5hbWU9IkhhaWxleVN0YXJ0MV82IiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDIzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlTdGFydDFfNiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RoYW5rIHlvdSBzbyBtdWNoLCBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhbmsgeW91IHNvIG11Y2gsIEhhaWxleSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RoYW5rIHlvdSBzbyBtdWNoLCBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Sm9sa2tCb2xra3BvbGtrcW9sa2tUb2xra3VvbGtrSm9sa2tOJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNKb2xra0JvbGtrcG9sa2txb2xra1RvbGtrdW9sa2tKb2xra04mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBkb27igJl0IGtub3cgd2hhdCBJ4oCZZCBkbyB3aXRob3V0IHlvdSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5U3RhcnQxXzcmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGRvbuKAmXQga25vdyB3aGF0IEnigJlkIGRvIHdpdGhvdXQgeW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5U3RhcnQxXzcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTkxIiBuYW1lPSJIYWlsZXlTdGFydDFfNyIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDI0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlTdGFydDFfNyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgZG9u4oCZdCBrbm93IHdoYXQgSeKAmWQgZG8gd2l0aG91dCB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBkb27igJl0IGtub3cgd2hhdCBJ4oCZZCBkbyB3aXRob3V0IHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgZG9u4oCZdCBrbm93IHdoYXQgSeKAmWQgZG8gd2l0aG91dCB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuOHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfaW1nICZxdW90O2Fzc2V0cy9pbWcvZXAxL2hhaWxleV9waG90b18xLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtSb2xra1RvbGtrc29sa2tSb2xra05vbGtraW9sa2tkb2xra1hvbGtrRW9sa2thb2xra3lvbGtrUW9sa2tCb2xra0hvbGtrRm9sa2t5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAyLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lcDEvaGFpbGV5X3Bob3RvXzEud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzZXQgJHBob3Rvcy5wdXNoKCZxdW90O2Fzc2V0cy9pbWcvZXAxL2hhaWxleV9waG90b18xLndlYnAmcXVvdDspJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuOHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7WW91IGdvdCB0aGlzICRuYW1lISZxdW90OyAmcXVvdDtSb2xra0xvbGtrZG9sa2t4b2xra0dvbGtrQW9sa2t1b2xra3lvbGtrT29sa2tvb2xra2JvbGtraG9sa2t4b2xra0VvbGtreW9sa2tsJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGdvdCB0aGlzICRuYW1lISZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1lvdSBnb3QgdGhpcyAkbmFtZSEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi44cyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2NoYXQgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuOHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgPSAmcXVvdDtBbm5pZUNoYXQyXzEmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi44cyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIZXkgaG9uZXksIGhvd+KAmXMgZXZlcnl0aGluZyBnb2luZyBvdmVyIHRoZXJlPyZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjhzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WW91IGdvdCB0aGlzICRuYW1lISZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlID0gJnF1b3Q7SGFpbGV5U3RhcnQ0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0X2hvdXIgPSAmcXVvdDsxMDoyOCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdCA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDsxMDoyOCZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7b2ZmbGluZS10ZXh0JnF1b3Q7Jmd0O0hhaWxleSBpcyBvZmZsaW5lJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE5MiIgbmFtZT0iSGFpbGV5Q2hhdEVwMl8yXzEiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSwyNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDskbmFtZSwgYXJlIHlvdSBzdGlsbCBhd2FrZT8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7JG5hbWUsIGFyZSB5b3Ugc3RpbGwgYXdha2U/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7JG5hbWUsIGFyZSB5b3Ugc3RpbGwgYXdha2U/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Zm9sa2tQb2xra3RvbGtrVG9sa2t3b2xra3hvbGtrb29sa2tvJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjZzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNmb2xra1BvbGtrdG9sa2tUb2xra3dvbGtreG9sa2tvb2xra28mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WWVhaCwgSSYjMzk7bSBzdGlsbCBhdCB0aGUgb2ZmaWNlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1llYWgsIEkmIzM5O20gc3RpbGwgYXQgdGhlIG9mZmljZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl8yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTkzIiBuYW1lPSJIYWlsZXlDaGF0RXAyXzJfMiIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDI0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1llYWgsIEnigJltIHN0aWxsIGF0IHRoZSBvZmZpY2UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WWVhaCwgSeKAmW0gc3RpbGwgYXQgdGhlIG9mZmljZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1llYWgsIEnigJltIHN0aWxsIGF0IHRoZSBvZmZpY2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7bG9sa2tyb2xra1RvbGtrQW9sa2tYb2xra3hvbGtrZG9sa2tWJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNsb2xra3JvbGtrVG9sa2tBb2xra1hvbGtreG9sa2tkb2xra1YmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7V2hhdCBhIHN1cnByaXNlIHRvIGdldCBhIG1lc3NhZ2UgZnJvbSB5b3UgYXQgdGhpcyBob3VyJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1doYXQgYSBzdXJwcmlzZSB0byBnZXQgYSBtZXNzYWdlIGZyb20geW91IGF0IHRoaXMgaG91ciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl8zJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE5NCIgbmFtZT0iSGFpbGV5Q2hhdEVwMl8yXzMiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwyNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtXaGF0IGEgc3VycHJpc2UgdG8gZ2V0IGEgbWVzc2FnZSBmcm9tIHlvdSBhdCB0aGlzIGhvdXImcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2hhdCBhIHN1cnByaXNlIHRvIGdldCBhIG1lc3NhZ2UgZnJvbSB5b3UgYXQgdGhpcyBob3VyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7V2hhdCBhIHN1cnByaXNlIHRvIGdldCBhIG1lc3NhZ2UgZnJvbSB5b3UgYXQgdGhpcyBob3VyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0lvbGtrTW9sa2tHb2xra2ZvbGtrUG9sa2tvb2xra05vbGtrdCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjSW9sa2tNb2xra0dvbGtrZm9sa2tQb2xra29vbGtrTm9sa2t0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0lzIGV2ZXJ5dGhpbmcgb2theT8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl80JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SXMgZXZlcnl0aGluZyBva2F5PyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl80JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE5NSIgbmFtZT0iSGFpbGV5Q2hhdEVwMl8yXzQiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCwyNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJcyBldmVyeXRoaW5nIG9rYXk/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0lzIGV2ZXJ5dGhpbmcgb2theT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJcyBldmVyeXRoaW5nIG9rYXk/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuMXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1llYWguLi4mcXVvdDsgJnF1b3Q7Sm9sa2tvb2xra3pvbGtrT29sa2tCb2xra1pvbGtreW9sa2tqb2xra1VvbGtrYm9sa2tRb2xra3BvbGtrcG9sa2tJb2xra2NvbGtrdSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1llYWguLi4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZZWFoLi4uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4ycyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7RXZlcnl0aGluZ+KAmXMgZmluZSZxdW90OyAmcXVvdDtDb2xra2RvbGtra29sa2tNb2xra0lvbGtrcW9sa2tob2xra09vbGtrZ29sa2tnb2xra2tvbGtram9sa2tlb2xra0hvbGtrd29sa2tIJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RXZlcnl0aGluZ+KAmXMgZmluZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0V2ZXJ5dGhpbmfigJlzIGZpbmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtTb3JyeSBmb3IgdGV4dGluZyB5b3Ugc28gbGF0ZSZxdW90OyAmcXVvdDtrb2xra2tvbGtrSW9sa2thb2xra09vbGtrdW9sa2tnb2xra1RvbGtrbm9sa2thb2xra3BvbGtrcW9sa2tRb2xra1pvbGtrWm9sa2tzJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U29ycnkgZm9yIHRleHRpbmcgeW91IHNvIGxhdGUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtTb3JyeSBmb3IgdGV4dGluZyB5b3Ugc28gbGF0ZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuN3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0l04oCZcyBqdXN0IHRoYXQgeW91IHNhaWQgeW914oCZZCBoZWxwIG1lIGlmIEkgZXZlciBkZWNpZGVkIHRvIGdvIG91dCBhdCBuaWdodCZxdW90OyAmcXVvdDtUb2xra3VvbGtrQ29sa2tFb2xra2NvbGtrTm9sa2tBb2xra2VvbGtrWG9sa2tZb2xra3FvbGtrbW9sa2tDb2xra2RvbGtrd29sa2tHJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXTigJlzIGp1c3QgdGhhdCB5b3Ugc2FpZCB5b3XigJlkIGhlbHAgbWUgaWYgSSBldmVyIGRlY2lkZWQgdG8gZ28gb3V0IGF0IG5pZ2h0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SXTigJlzIGp1c3QgdGhhdCB5b3Ugc2FpZCB5b3XigJlkIGhlbHAgbWUgaWYgSSBldmVyIGRlY2lkZWQgdG8gZ28gb3V0IGF0IG5pZ2h0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDUuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC45cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7QW5kLCB3ZWxsLi4uIEkgdGhpbmsgSeKAmW0gZ29pbmcgdG8gZG8gaXQmcXVvdDsgJnF1b3Q7Rm9sa2tvb2xra01vbGtrVm9sa2tQb2xra0VvbGtrUG9sa2tWb2xra0JvbGtrQ29sa2tFb2xra01vbGtrWG9sa2tnb2xra3pvbGtrdiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FuZCwgd2VsbC4uLiBJIHRoaW5rIEnigJltIGdvaW5nIHRvIGRvIGl0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QW5kLCB3ZWxsLi4uIEkgdGhpbmsgSeKAmW0gZ29pbmcgdG8gZG8gaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1JvbGtrQ29sa2tOb2xra0dvbGtrSm9sa2twb2xra2ZvbGtrWiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNi44cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjUm9sa2tDb2xra05vbGtrR29sa2tKb2xra3BvbGtrZm9sa2taJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1JpZ2h0LCB3aXRoIGFsbCB0aGlzIHdvcmssIEnigJlkIGNvbXBsZXRlbHkgZm9yZ290dGVuIGFib3V0IHRoYXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl81JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7UmlnaHQsIHdpdGggYWxsIHRoaXMgd29yaywgSeKAmWQgY29tcGxldGVseSBmb3Jnb3R0ZW4gYWJvdXQgdGhhdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl81JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE5NiIgbmFtZT0iSGFpbGV5Q2hhdEVwMl8yXzUiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwyNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtSaWdodCwgd2l0aCBhbGwgdGhpcyB3b3JrLCBJ4oCZZCBjb21wbGV0ZWx5IGZvcmdvdHRlbiBhYm91dCB0aGF0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1JpZ2h0LCB3aXRoIGFsbCB0aGlzIHdvcmssIEnigJlkIGNvbXBsZXRlbHkgZm9yZ290dGVuIGFib3V0IHRoYXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtSaWdodCwgd2l0aCBhbGwgdGhpcyB3b3JrLCBJ4oCZZCBjb21wbGV0ZWx5IGZvcmdvdHRlbiBhYm91dCB0aGF0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0lmIHlvdeKAmXJlIGJ1c3ksIHdlIGNhbiBsZWF2ZSBpdCBmb3IgYW5vdGhlciBkYXkmcXVvdDsgJnF1b3Q7bG9sa2tpb2xra3hvbGtreW9sa2trb2xra0VvbGtrS29sa2tGb2xra3pvbGtrQm9sa2tPb2xra1hvbGtrWm9sa2tPb2xra3pvbGtrdSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0lmIHlvdeKAmXJlIGJ1c3ksIHdlIGNhbiBsZWF2ZSBpdCBmb3IgYW5vdGhlciBkYXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJZiB5b3XigJlyZSBidXN5LCB3ZSBjYW4gbGVhdmUgaXQgZm9yIGFub3RoZXIgZGF5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtab2xra3NvbGtrR29sa2tnb2xra0pvbGtrUW9sa2trb2xra2cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuOXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I1pvbGtrc29sa2tHb2xra2dvbGtrSm9sa2tRb2xra2tvbGtrZyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtObywgbm8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl82JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7Tm8sIG5vJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTk3IiBuYW1lPSJIYWlsZXlDaGF0RXAyXzJfNiIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDI0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfNiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O05vLCBubyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtObywgbm8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtObywgbm8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7VW9sa2tCb2xra1JvbGtrSW9sa2tTb2xra2tvbGtrd29sa2tPJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNVb2xra0JvbGtrUm9sa2tJb2xra1NvbGtra29sa2t3b2xra08mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSB3b3VsZCBiZSBob25vcmVkIHRvIGhlbHAgeW91JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfOCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgd291bGQgYmUgaG9ub3JlZCB0byBoZWxwIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl84JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE5OCIgbmFtZT0iSGFpbGV5Q2hhdEVwMl8yXzgiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSwyNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzgmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIHdvdWxkIGJlIGhvbm9yZWQgdG8gaGVscCB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB3b3VsZCBiZSBob25vcmVkIHRvIGhlbHAgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSB3b3VsZCBiZSBob25vcmVkIHRvIGhlbHAgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3pvbGtrb29sa2tSb2xra05vbGtrS29sa2tmb2xra0FvbGtraCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjem9sa2tvb2xra1JvbGtrTm9sa2tLb2xra2ZvbGtrQW9sa2toJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0F0IGxlYXN0IEnigJlsbCBmZWVsIGxpa2UgSeKAmW0gZG9pbmcgc29tZXRoaW5nIGZvciB5b3UgaW4gcmV0dXJuIGZvciBldmVyeXRoaW5nIHlvdSBkbyBmb3IgbWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl85JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QXQgbGVhc3QgSeKAmWxsIGZlZWwgbGlrZSBJ4oCZbSBkb2luZyBzb21ldGhpbmcgZm9yIHlvdSBpbiByZXR1cm4gZm9yIGV2ZXJ5dGhpbmcgeW91IGRvIGZvciBtZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl85JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE5OSIgbmFtZT0iSGFpbGV5Q2hhdEVwMl8yXzkiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsMjQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDJfMl85JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7QXQgbGVhc3QgSeKAmWxsIGZlZWwgbGlrZSBJ4oCZbSBkb2luZyBzb21ldGhpbmcgZm9yIHlvdSBpbiByZXR1cm4gZm9yIGV2ZXJ5dGhpbmcgeW91IGRvIGZvciBtZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBdCBsZWFzdCBJ4oCZbGwgZmVlbCBsaWtlIEnigJltIGRvaW5nIHNvbWV0aGluZyBmb3IgeW91IGluIHJldHVybiBmb3IgZXZlcnl0aGluZyB5b3UgZG8gZm9yIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QXQgbGVhc3QgSeKAmWxsIGZlZWwgbGlrZSBJ4oCZbSBkb2luZyBzb21ldGhpbmcgZm9yIHlvdSBpbiByZXR1cm4gZm9yIGV2ZXJ5dGhpbmcgeW91IGRvIGZvciBtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt4b2xra2NvbGtreG9sa2tkb2xra05vbGtrT29sa2txb2xra0kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3hvbGtrY29sa2t4b2xra2RvbGtrTm9sa2tPb2xra3FvbGtrSSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtQbHVzLCBpdCB3aWxsIGJlIGEgbmljZSB3YXkgdG8gY2xlYXIgbXkgaGVhZCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzEwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7UGx1cywgaXQgd2lsbCBiZSBhIG5pY2Ugd2F5IHRvIGNsZWFyIG15IGhlYWQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjAwIiBuYW1lPSJIYWlsZXlDaGF0RXAyXzJfMTAiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMjQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xMCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1BsdXMsIGl0IHdpbGwgYmUgYSBuaWNlIHdheSB0byBjbGVhciBteSBoZWFkJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1BsdXMsIGl0IHdpbGwgYmUgYSBuaWNlIHdheSB0byBjbGVhciBteSBoZWFkJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7UGx1cywgaXQgd2lsbCBiZSBhIG5pY2Ugd2F5IHRvIGNsZWFyIG15IGhlYWQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Rm9sa2ttb2xra2tvbGtram9sa2tHb2xra3FvbGtrSW9sa2t5JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNGb2xra21vbGtra29sa2tqb2xra0dvbGtrcW9sa2tJb2xra3kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QnV0IHRlbGwgbWUsIGhvdyBjYW4gSSBoZWxwPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzExJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QnV0IHRlbGwgbWUsIGhvdyBjYW4gSSBoZWxwPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl8xMSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMDEiIG5hbWU9IkhhaWxleUNoYXRFcDJfMl8xMSIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDI2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtCdXQgdGVsbCBtZSwgaG93IGNhbiBJIGhlbHA/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCB0ZWxsIG1lLCBob3cgY2FuIEkgaGVscD8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtCdXQgdGVsbCBtZSwgaG93IGNhbiBJIGhlbHA/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMnMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1dlbGwsIGl0IG1pZ2h0IHN1cnByaXNlIHlvdSwgYnV0IEnigJl2ZSBuZXZlciByZWFsbHkgZ29uZSBvdXQgYmVmb3JlJnF1b3Q7ICZxdW90O21vbGtrdm9sa2thb2xra2NvbGtrWm9sa2tKb2xra3VvbGtrTW9sa2tjb2xra3BvbGtram9sa2txb2xra0JvbGtrcm9sa2tTb2xra1UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZWxsLCBpdCBtaWdodCBzdXJwcmlzZSB5b3UsIGJ1dCBJ4oCZdmUgbmV2ZXIgcmVhbGx5IGdvbmUgb3V0IGJlZm9yZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1dlbGwsIGl0IG1pZ2h0IHN1cnByaXNlIHlvdSwgYnV0IEnigJl2ZSBuZXZlciByZWFsbHkgZ29uZSBvdXQgYmVmb3JlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtTb2xra09vbGtrZW9sa2tOb2xra2hvbGtrTG9sa2tTb2xra0cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuMXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I1NvbGtrT29sa2tlb2xra05vbGtraG9sa2tMb2xra1NvbGtrRyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtOb3Qgc3VycHJpc2luZywgbG9sJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtOb3Qgc3VycHJpc2luZywgbG9sJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzEyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIwMiIgbmFtZT0iSGFpbGV5Q2hhdEVwMl8yXzEyIiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsMjYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O05vdCBzdXJwcmlzaW5nLCBsb2wmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm90IHN1cnByaXNpbmcsIGxvbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O05vdCBzdXJwcmlzaW5nLCBsb2wmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfY3J5aW5nLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9jcnlpbmcud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjZzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIHdhcyBhbHdheXMgc28gZm9jdXNlZCBvbiBzY2hvb2wsIGFuZCB0aGVuIHdvcmsgc3RhcnRlZCB0YWtpbmcgdXAgYWxsIG15IHRpbWUmcXVvdDsgJnF1b3Q7a29sa2twb2xra29vbGtrZm9sa2tDb2xra29vbGtraG9sa2tGb2xra2VvbGtrT29sa2tDb2xra1JvbGtraW9sa2t6b2xra1dvbGtrYyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgd2FzIGFsd2F5cyBzbyBmb2N1c2VkIG9uIHNjaG9vbCwgYW5kIHRoZW4gd29yayBzdGFydGVkIHRha2luZyB1cCBhbGwgbXkgdGltZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgd2FzIGFsd2F5cyBzbyBmb2N1c2VkIG9uIHNjaG9vbCwgYW5kIHRoZW4gd29yayBzdGFydGVkIHRha2luZyB1cCBhbGwgbXkgdGltZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgbmV2ZXIgcmVhbGx5IGhhZCB0aGUgY2hhbmNlIHRvIG1ha2UgZnJpZW5kcyZxdW90OyAmcXVvdDtvb2xra0hvbGtrcm9sa2t2b2xra0NvbGtrUm9sa2txb2xra2xvbGtrU29sa2ttb2xra3BvbGtrQ29sa2txb2xra0FvbGtrZ29sa2tWJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBuZXZlciByZWFsbHkgaGFkIHRoZSBjaGFuY2UgdG8gbWFrZSBmcmllbmRzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSBuZXZlciByZWFsbHkgaGFkIHRoZSBjaGFuY2UgdG8gbWFrZSBmcmllbmRzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDUuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7QW5kIGV2ZXJ5IGRheSwgSSBmZWVsIGxpa2UgaXTigJlzIGdldHRpbmcgdG9vIGxhdGUgZm9yIG1lJnF1b3Q7ICZxdW90O3FvbGtrWG9sa2tOb2xra1BvbGtrZ29sa2tqb2xra05vbGtrS29sa2tqb2xra2JvbGtrQ29sa2tlb2xra01vbGtrU29sa2tzb2xra3cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbmQgZXZlcnkgZGF5LCBJIGZlZWwgbGlrZSBpdOKAmXMgZ2V0dGluZyB0b28gbGF0ZSBmb3IgbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtBbmQgZXZlcnkgZGF5LCBJIGZlZWwgbGlrZSBpdOKAmXMgZ2V0dGluZyB0b28gbGF0ZSBmb3IgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNi44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtMaWtlIEnigJltIG91dCBvZiB0b3VjaCZxdW90OyAmcXVvdDtSb2xra3VvbGtrZG9sa2tXb2xra3FvbGtrR29sa2tlb2xra1hvbGtrVW9sa2tyb2xra1BvbGtrRW9sa2tFb2xra0xvbGtrYm9sa2tjJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGlrZSBJ4oCZbSBvdXQgb2YgdG91Y2gmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtMaWtlIEnigJltIG91dCBvZiB0b3VjaCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Ym9sa2tRb2xra0dvbGtrSW9sa2tTb2xra1JvbGtrQW9sa2tlJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA3LjlzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNib2xra1FvbGtrR29sa2tJb2xra1NvbGtrUm9sa2tBb2xra2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SGFpbGV5LCB5b3XigJlyZSBhIGJlYXV0aWZ1bCB3b21hbiZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzEzJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SGFpbGV5LCB5b3XigJlyZSBhIGJlYXV0aWZ1bCB3b21hbiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl8xMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMDMiIG5hbWU9IkhhaWxleUNoYXRFcDJfMl8xMyIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDI2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtIYWlsZXksIHlvdeKAmXJlIGEgYmVhdXRpZnVsIHdvbWFuJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hhaWxleSwgeW914oCZcmUgYSBiZWF1dGlmdWwgd29tYW4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtIYWlsZXksIHlvdeKAmXJlIGEgYmVhdXRpZnVsIHdvbWFuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O01vbGtrRG9sa2tEb2xra01vbGtrUW9sa2tGb2xra2xvbGtrVyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjTW9sa2tEb2xra0RvbGtrTW9sa2tRb2xra0ZvbGtrbG9sa2tXJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoZXJl4oCZcyBubyBzdWNoIHRoaW5nIGFzIOKAnHRvbyBsYXRl4oCdIGZvciB5b3UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoZXJl4oCZcyBubyBzdWNoIHRoaW5nIGFzIOKAnHRvbyBsYXRl4oCdIGZvciB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjA0IiBuYW1lPSJIYWlsZXlDaGF0RXAyXzJfMTQiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwyNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzE0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhlcmXigJlzIG5vIHN1Y2ggdGhpbmcgYXMg4oCcdG9vIGxhdGXigJ0gZm9yIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGVyZeKAmXMgbm8gc3VjaCB0aGluZyBhcyDigJx0b28gbGF0ZeKAnSBmb3IgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhlcmXigJlzIG5vIHN1Y2ggdGhpbmcgYXMg4oCcdG9vIGxhdGXigJ0gZm9yIHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtBb2xra2dvbGtrV29sa2tKb2xra0hvbGtrWW9sa2tFb2xra1ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I0FvbGtrZ29sa2tXb2xra0pvbGtrSG9sa2tZb2xra0VvbGtrUiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3UganVzdCBuZWVkIHRvIHRha2UgdGhlIGZpcnN0IHN0ZXAmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xNSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdSBqdXN0IG5lZWQgdG8gdGFrZSB0aGUgZmlyc3Qgc3RlcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl8xNSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMDUiIG5hbWU9IkhhaWxleUNoYXRFcDJfMl8xNSIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDI2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZb3UganVzdCBuZWVkIHRvIHRha2UgdGhlIGZpcnN0IHN0ZXAmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGp1c3QgbmVlZCB0byB0YWtlIHRoZSBmaXJzdCBzdGVwJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WW91IGp1c3QgbmVlZCB0byB0YWtlIHRoZSBmaXJzdCBzdGVwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNnMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0RlZXAgZG93biwgSSBrbm93IHlvdeKAmXJlIHJpZ2h0JnF1b3Q7ICZxdW90O1lvbGtram9sa2tCb2xra1hvbGtrT29sa2trb2xra2dvbGtrU29sa2thb2xra0tvbGtrZ29sa2tBb2xra3ZvbGtrVW9sa2tpb2xra3AmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEZWVwIGRvd24sIEkga25vdyB5b3XigJlyZSByaWdodCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0RlZXAgZG93biwgSSBrbm93IHlvdeKAmXJlIHJpZ2h0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7VGhhdOKAmXMgd2h5IEkgdGV4dGVkIHlvdSZxdW90OyAmcXVvdDtMb2xra1hvbGtrQ29sa2tUb2xra3NvbGtrU29sa2tpb2xra0ZvbGtrRW9sa2tPb2xra0lvbGtrWG9sa2tIb2xra0VvbGtrb29sa2tqJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhdOKAmXMgd2h5IEkgdGV4dGVkIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RoYXTigJlzIHdoeSBJIHRleHRlZCB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjJzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIHdhbnRlZCB0byBhc2sgd2hhdCB5b3UgdGhpbmsgYWJvdXQgdGhpcyBkcmVzcyBmb3IgdG9uaWdodCZxdW90OyAmcXVvdDtyb2xra2JvbGtraW9sa2tPb2xra0pvbGtrV29sa2tMb2xra0tvbGtrUW9sa2tNb2xra3lvbGtrem9sa2t4b2xra0ZvbGtrUm9sa2t2JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB3YW50ZWQgdG8gYXNrIHdoYXQgeW91IHRoaW5rIGFib3V0IHRoaXMgZHJlc3MgZm9yIHRvbmlnaHQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIHdhbnRlZCB0byBhc2sgd2hhdCB5b3UgdGhpbmsgYWJvdXQgdGhpcyBkcmVzcyBmb3IgdG9uaWdodCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjlzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2ltZyAmcXVvdDthc3NldHMvaW1nL2VwMi9oYWlsZXlfcGhvdG9fMi53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7Zm9sa2tub2xra05vbGtrS29sa2tmb2xra2ZvbGtrUW9sa2tWb2xra0FvbGtrQ29sa2tKb2xra3BvbGtreW9sa2tOb2xra2dvbGtrViZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMiwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZXAyL2hhaWxleV9waG90b18yLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRwaG90b3MucHVzaCgmcXVvdDthc3NldHMvaW1nL2VwMi9oYWlsZXlfcGhvdG9fMi53ZWJwJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Rm9sa2tFb2xra2ZvbGtrdG9sa2tYb2xra1hvbGtrS29sa2tuJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA1LjlzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNGb2xra0VvbGtrZm9sa2t0b2xra1hvbGtrWG9sa2tLb2xra24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBsb3ZlIGl0LiBZb3UgbG9vayBncmVhdCBpbiBpdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzE2YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgbG92ZSBpdC4gWW91IGxvb2sgZ3JlYXQgaW4gaXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTZhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNGb2xra0VvbGtrZm9sa2t0b2xra1hvbGtrWG9sa2tLb2xra24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WW91IHNob3VsZCB3ZWFyIHNvbWV0aGluZyBtb3JlIGRhcmluZyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzE2YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdSBzaG91bGQgd2VhciBzb21ldGhpbmcgbW9yZSBkYXJpbmcmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTZiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIwNiIgbmFtZT0iSGFpbGV5Q2hhdEVwMl8yXzE2YSIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDI2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTZhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBsb3ZlIGl0LiBZb3UgbG9vayBncmVhdCBpbiBpdCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGxvdmUgaXQuIFlvdSBsb29rIGdyZWF0IGluIGl0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSBsb3ZlIGl0LiBZb3UgbG9vayBncmVhdCBpbiBpdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtUaGFua3MsICRuYW1lJnF1b3Q7ICZxdW90O1BvbGtrRm9sa2tmb2xra3RvbGtrcW9sa2thb2xra0xvbGtrVG9sa2tob2xra0NvbGtrZ29sa2tSb2xra0JvbGtrV29sa2t5b2xra3omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGFua3MsICRuYW1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhhbmtzLCAkbmFtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0l04oCZcyBkZWNpZGVkLCB0aGVuJnF1b3Q7ICZxdW90O0lvbGtrdW9sa2tFb2xra0FvbGtrRG9sa2tub2xra2FvbGtrbm9sa2tBb2xra0dvbGtrQW9sa2tUb2xra2lvbGtrRm9sa2twb2xra0omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdOKAmXMgZGVjaWRlZCwgdGhlbiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0l04oCZcyBkZWNpZGVkLCB0aGVuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SeKAmWxsIHdlYXIgdGhpcyBkcmVzcyZxdW90OyAmcXVvdDtVb2xra2ZvbGtrRm9sa2tGb2xra1lvbGtrbm9sa2tFb2xra0NvbGtrV29sa2tNb2xra0hvbGtraW9sa2tKb2xra05vbGtrRm9sa2tBJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmWxsIHdlYXIgdGhpcyBkcmVzcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0nigJlsbCB3ZWFyIHRoaXMgZHJlc3MmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4wcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9tb3V0aC53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7SGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfbW91dGgud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgNC4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjlzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtIZXkgJG5hbWUsIGlzIGl0IG9rYXkgaWYgSSB0ZXh0IHlvdSB3aGVuIEkgZ2V0IHRvIHRoZSBuaWdodGNsdWIgdG8gYXNrIGZvciB0aXBzPyZxdW90OyAmcXVvdDtxb2xra1pvbGtrQm9sa2tmb2xra1JvbGtrUG9sa2tob2xra2NvbGtreW9sa2tnb2xra1hvbGtraG9sa2tZb2xra0FvbGtrcm9sa2t2JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGV5ICRuYW1lLCBpcyBpdCBva2F5IGlmIEkgdGV4dCB5b3Ugd2hlbiBJIGdldCB0byB0aGUgbmlnaHRjbHViIHRvIGFzayBmb3IgdGlwcz8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtIZXkgJG5hbWUsIGlzIGl0IG9rYXkgaWYgSSB0ZXh0IHlvdSB3aGVuIEkgZ2V0IHRvIHRoZSBuaWdodGNsdWIgdG8gYXNrIGZvciB0aXBzPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7S29sa2tsb2xra29vbGtrUm9sa2tKb2xra0NvbGtraW9sa2t5JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA2LjVzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNLb2xra2xvbGtrb29sa2tSb2xra0pvbGtrQ29sa2tpb2xra3kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7T2YgY291cnNlLCBJ4oCZbGwgYmUgaGVyZSBmb3IgYSB3aGlsZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzE3YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O09mIGNvdXJzZSwgSeKAmWxsIGJlIGhlcmUgZm9yIGEgd2hpbGUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTdhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIwNyIgbmFtZT0iSGFpbGV5Q2hhdEVwMl8yXzE2YiIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDI2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTZiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WW91IHNob3VsZCB3ZWFyIHNvbWV0aGluZyBtb3JlIGRhcmluZyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3Ugc2hvdWxkIHdlYXIgc29tZXRoaW5nIG1vcmUgZGFyaW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WW91IHNob3VsZCB3ZWFyIHNvbWV0aGluZyBtb3JlIGRhcmluZyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9kb3VidC53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7SGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfZG91YnQud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtZb3UgdGhpbmsgc28/JnF1b3Q7ICZxdW90O2NvbGtreG9sa2tNb2xra1FvbGtrR29sa2tEb2xra0dvbGtrSG9sa2tqb2xra1RvbGtreW9sa2tVb2xra09vbGtrQ29sa2t0b2xra3gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3UgdGhpbmsgc28/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WW91IHRoaW5rIHNvPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgYWxyZWFkeSBmZWVsIGEgYml0IG91dCBvZiBwbGFjZSB3aXRoIHRoaXMgb25lJnF1b3Q7ICZxdW90O2xvbGtrQ29sa2txb2xra1BvbGtrZm9sa2t4b2xra1ZvbGtrTW9sa2tkb2xra0NvbGtrd29sa2tIb2xra29vbGtrYm9sa2t5b2xra0EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGFscmVhZHkgZmVlbCBhIGJpdCBvdXQgb2YgcGxhY2Ugd2l0aCB0aGlzIG9uZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgYWxyZWFkeSBmZWVsIGEgYml0IG91dCBvZiBwbGFjZSB3aXRoIHRoaXMgb25lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtCb2xra21vbGtrZm9sa2tMb2xra2FvbGtrbm9sa2tsb2xra2ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuOXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I0JvbGtrbW9sa2tmb2xra0xvbGtrYW9sa2tub2xra2xvbGtrYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUcnVzdCBtZSBIYWlsZXkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xN2ImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUcnVzdCBtZSBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTdiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIwOCIgbmFtZT0iSGFpbGV5Q2hhdEVwMl8yXzE3YSIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDI2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTdhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7T2YgY291cnNlLCBJ4oCZbGwgYmUgaGVyZSBmb3IgYSB3aGlsZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPZiBjb3Vyc2UsIEnigJlsbCBiZSBoZXJlIGZvciBhIHdoaWxlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7T2YgY291cnNlLCBJ4oCZbGwgYmUgaGVyZSBmb3IgYSB3aGlsZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtPb2xra2xvbGtrZm9sa2tLb2xra2ZvbGtrUW9sa2tLb2xra04mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I09vbGtrbG9sa2tmb2xra0tvbGtrZm9sa2tRb2xra0tvbGtrTiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtQcm9iYWJseSBwdWxsaW5nIGFuIGFsbC1uaWdodGVyJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMThhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7UHJvYmFibHkgcHVsbGluZyBhbiBhbGwtbmlnaHRlciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl8xOGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjA5IiBuYW1lPSJIYWlsZXlDaGF0RXAyXzJfMThhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDI2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMThhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7UHJvYmFibHkgcHVsbGluZyBhbiBhbGwtbmlnaHRlciZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtQcm9iYWJseSBwdWxsaW5nIGFuIGFsbC1uaWdodGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7UHJvYmFibHkgcHVsbGluZyBhbiBhbGwtbmlnaHRlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt5b2xra25vbGtrY29sa2tMb2xra0dvbGtrVm9sa2tzb2xra00mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3lvbGtrbm9sa2tjb2xra0xvbGtrR29sa2tWb2xra3NvbGtrTSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJdCB3aWxsIGJlIGEgZ29vZCBkaXN0cmFjdGlvbiBmb3IgbWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xOWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJdCB3aWxsIGJlIGEgZ29vZCBkaXN0cmFjdGlvbiBmb3IgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTlhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIxMCIgbmFtZT0iSGFpbGV5Q2hhdEVwMl8yXzE5YSIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSwyNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzE5YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0l0IHdpbGwgYmUgYSBnb29kIGRpc3RyYWN0aW9uIGZvciBtZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdCB3aWxsIGJlIGEgZ29vZCBkaXN0cmFjdGlvbiBmb3IgbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJdCB3aWxsIGJlIGEgZ29vZCBkaXN0cmFjdGlvbiBmb3IgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4ycyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7QWxyaWdodCB0aGVuJnF1b3Q7ICZxdW90O2lvbGtrVG9sa2tQb2xra3FvbGtrUm9sa2thb2xra0JvbGtrZm9sa2t1b2xra0tvbGtrU29sa2tPb2xra2dvbGtrcG9sa2tjb2xra2kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbHJpZ2h0IHRoZW4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtBbHJpZ2h0IHRoZW4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJ4oCZbGwgdGV4dCB5b3Ugd2hlbiBJIGdldCB0aGVyZSZxdW90OyAmcXVvdDtzb2xra1hvbGtrbG9sa2tQb2xra2dvbGtrRW9sa2t5b2xra29vbGtrYW9sa2t1b2xra2NvbGtrem9sa2tLb2xra0RvbGtrTW9sa2tPJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmWxsIHRleHQgeW91IHdoZW4gSSBnZXQgdGhlcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJ4oCZbGwgdGV4dCB5b3Ugd2hlbiBJIGdldCB0aGVyZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjRzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SeKAmWxsIHRleHQgeW91IHdoZW4gSSBnZXQgdGhlcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSA9ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xOWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RfaG91ciA9ICZxdW90OzIzOjIxJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0ID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkaG91ciA9ICZxdW90OzIzOjIxJnF1b3Q7Jmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtvZmZsaW5lLXRleHQmcXVvdDsmZ3Q7SGFpbGV5IGlzIG9mZmxpbmUmbHQ7L2RpdiZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi40cyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfbm90ZXMucHVzaCgmcXVvdDtIYWlsZXkgZGVjaWRlZCB0byBhY2NlcHQgbXkgaGVscCB0byBnaXZlIGhlciBhZHZpY2Ugb24gaG93IHRvIGJlaGF2ZSBhdCBhIG5pZ2h0Y2x1YiBzaW5jZSBzaGUgaGFzIG5vIGV4cGVyaWVuY2UgYXQgYWxsLiZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuNHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICR0cmFuc2l0aW9uID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjRzJmd0OyZndDsmbHQ7Jmx0O3NldCAkdHJhbnNpdGlvblRleHQgPSAmcXVvdDtBbiBob3VyIGxhdGVyJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuNHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRlbmRPZkNvbnRlbnQgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuNHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRlcDIgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIxMSIgbmFtZT0iSGFpbGV5Q2hhdEVwMl8yXzE3YiIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDI3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTdiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VHJ1c3QgbWUgSGFpbGV5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RydXN0IG1lIEhhaWxleSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RydXN0IG1lIEhhaWxleSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDthb2xra2hvbGtrRm9sa2tVb2xra1FvbGtra29sa2t3b2xra24mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I2FvbGtraG9sa2tGb2xra1VvbGtrUW9sa2trb2xra3dvbGtrbiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3Uga25vdyB5b3UgbmVlZCBteSBhZHZpY2UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xOGImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3Uga25vdyB5b3UgbmVlZCBteSBhZHZpY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMThiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIxMiIgbmFtZT0iSGFpbGV5Q2hhdEVwMl8yXzE4YiIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDI3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMThiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WW91IGtub3cgeW91IG5lZWQgbXkgYWR2aWNlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBrbm93IHlvdSBuZWVkIG15IGFkdmljZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1lvdSBrbm93IHlvdSBuZWVkIG15IGFkdmljZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtZZWFoLCB5b3XigJlyZSByaWdodCZxdW90OyAmcXVvdDtwb2xra2tvbGtrb29sa2trb2xra1FvbGtrV29sa2tMb2xra0ZvbGtrYm9sa2tpb2xra3lvbGtrUm9sa2tpb2xra2xvbGtrQm9sa2tuJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WWVhaCwgeW914oCZcmUgcmlnaHQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZZWFoLCB5b3XigJlyZSByaWdodCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgdGhpbmsgSSBoYXZlIHNvbWV0aGluZyBsaWtlIHRoYXQgaW4gbXkgY2xvc2V0JnF1b3Q7ICZxdW90O1FvbGtra29sa2thb2xra3pvbGtrSG9sa2tib2xra0hvbGtrQ29sa2tmb2xra3BvbGtrem9sa2tHb2xra2xvbGtrem9sa2tHb2xra3cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHRoaW5rIEkgaGF2ZSBzb21ldGhpbmcgbGlrZSB0aGF0IGluIG15IGNsb3NldCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgdGhpbmsgSSBoYXZlIHNvbWV0aGluZyBsaWtlIHRoYXQgaW4gbXkgY2xvc2V0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuOHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7VGhvdWdoIEnigJl2ZSBuZXZlciB3b3JuIGl0IGluIHB1YmxpYyZxdW90OyAmcXVvdDtIb2xra0pvbGtrcG9sa2t4b2xra3BvbGtreW9sa2tSb2xra0JvbGtrem9sa2tVb2xra0FvbGtrbG9sa2tKb2xra3hvbGtrSm9sa2tkJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhvdWdoIEnigJl2ZSBuZXZlciB3b3JuIGl0IGluIHB1YmxpYyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1Rob3VnaCBJ4oCZdmUgbmV2ZXIgd29ybiBpdCBpbiBwdWJsaWMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtMZXQgbWUgdHJ5IGl0IGZpcnN0JnF1b3Q7ICZxdW90O2VvbGtrUW9sa2ttb2xra1VvbGtrQm9sa2tYb2xra3JvbGtrc29sa2tzb2xra1pvbGtrb29sa2t4b2xra0dvbGtraW9sa2tHb2xra0cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtMZXQgbWUgdHJ5IGl0IGZpcnN0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7TGV0IG1lIHRyeSBpdCBmaXJzdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjdzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2ltZyAmcXVvdDthc3NldHMvaW1nL2VwMi9oYWlsZXlfcGhvdG9fMy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7eW9sa2tDb2xra0VvbGtrVm9sa2tDb2xra1ZvbGtram9sa2tob2xra2FvbGtrdG9sa2tKb2xra3NvbGtrZW9sa2tHb2xra0JvbGtrWSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMiwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZXAyL2hhaWxleV9waG90b18zLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRwaG90b3MucHVzaCgmcXVvdDthc3NldHMvaW1nL2VwMi9oYWlsZXlfcGhvdG9fMy53ZWJwJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA2LjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0nigJltIG5vdCBzdXJlLi4uIEkgZmVlbCB3ZWlyZCB3ZWFyaW5nIHRoaXMmcXVvdDsgJnF1b3Q7RG9sa2tjb2xra0lvbGtrWG9sa2tub2xra0pvbGtrU29sa2txb2xra3JvbGtrdm9sa2t1b2xra3NvbGtrTW9sa2tJb2xra0JvbGtrUiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJltIG5vdCBzdXJlLi4uIEkgZmVlbCB3ZWlyZCB3ZWFyaW5nIHRoaXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJ4oCZbSBub3Qgc3VyZS4uLiBJIGZlZWwgd2VpcmQgd2VhcmluZyB0aGlzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtyb2xra2lvbGtrQm9sa2tOb2xra2lvbGtrVm9sa2t4b2xra1YmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDguMXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3JvbGtraW9sa2tCb2xra05vbGtraW9sa2tWb2xra3hvbGtrViZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3Uga25vdyB3aGF0PyBJIHRoaW5rIHRoZSBvdGhlciBkcmVzcyB3b3VsZCBiZSBiZXR0ZXImcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xOWJfMSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdSBrbm93IHdoYXQ/IEkgdGhpbmsgdGhlIG90aGVyIGRyZXNzIHdvdWxkIGJlIGJldHRlciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl8xOWJfMSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjcm9sa2tpb2xra0JvbGtrTm9sa2tpb2xra1ZvbGtreG9sa2tWJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RydXN0IG1lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTliXzImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUcnVzdCBtZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl8xOWJfMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMTMiIG5hbWU9IkhhaWxleUNoYXRFcDJfMl8xOWJfMSIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDI3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTliXzEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZb3Uga25vdyB3aGF0PyBJIHRoaW5rIHRoZSBvdGhlciBkcmVzcyB3b3VsZCBiZSBiZXR0ZXImcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGtub3cgd2hhdD8gSSB0aGluayB0aGUgb3RoZXIgZHJlc3Mgd291bGQgYmUgYmV0dGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WW91IGtub3cgd2hhdD8gSSB0aGluayB0aGUgb3RoZXIgZHJlc3Mgd291bGQgYmUgYmV0dGVyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1llYWgsIEkgdGhpbmsgc28gdG9vJnF1b3Q7ICZxdW90O1BvbGtraW9sa2t2b2xra2lvbGtrT29sa2tIb2xra2VvbGtrSG9sa2tpb2xra3JvbGtrbG9sa2t3b2xra1lvbGtrd29sa2tGb2xra1cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFoLCBJIHRoaW5rIHNvIHRvbyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1llYWgsIEkgdGhpbmsgc28gdG9vJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSBkb27igJl0IHRoaW5rIEkgY291bGQgd2FsayBvdXQgaW4gcHVibGljIHdlYXJpbmcgdGhpcyZxdW90OyAmcXVvdDtOb2xra3RvbGtrUG9sa2tib2xra1hvbGtrdW9sa2tLb2xra2VvbGtrS29sa2txb2xra2pvbGtrY29sa2trb2xra3JvbGtrZG9sa2tNJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBkb27igJl0IHRoaW5rIEkgY291bGQgd2FsayBvdXQgaW4gcHVibGljIHdlYXJpbmcgdGhpcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgZG9u4oCZdCB0aGluayBJIGNvdWxkIHdhbGsgb3V0IGluIHB1YmxpYyB3ZWFyaW5nIHRoaXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4xcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV94ZC53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7SGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfeGQud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1FvbGtrVW9sa2t0b2xra2dvbGtrV29sa2twb2xra1FvbGtrRyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC4xcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjUW9sa2tVb2xra3RvbGtrZ29sa2tXb2xra3BvbGtrUW9sa2tHJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O/CfpKMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl8yMGJfMSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O/CfpKMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMjBiXzEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjE0IiBuYW1lPSJIYWlsZXlDaGF0RXAyXzJfMTliXzIiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwyNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzE5Yl8yJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VHJ1c3QgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VHJ1c3QgbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUcnVzdCBtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkaGFpbGV5X2RyZXNzID0gMiZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtNb2xra0NvbGtrUm9sa2tQb2xra3ZvbGtrVm9sa2tKb2xra3kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I01vbGtrQ29sa2tSb2xra1BvbGtrdm9sa2tWb2xra0pvbGtreSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGF04oCZcyB0aGUgZHJlc3MgeW91IHdhbnQgdG8gd2VhciZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzIwYl8yJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhhdOKAmXMgdGhlIGRyZXNzIHlvdSB3YW50IHRvIHdlYXImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMjBiXzImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjE1IiBuYW1lPSJIYWlsZXlDaGF0RXAyXzJfMjBiXzEiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCwyNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzIwYl8xJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9sbWFvLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9sbWFvLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS45cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SGV5ICRuYW1lLCBpcyBpdCBva2F5IGlmIEkgdGV4dCB5b3Ugd2hlbiBJIGdldCB0byB0aGUgbmlnaHRjbHViIHRvIGFzayBmb3IgdGlwcz8mcXVvdDsgJnF1b3Q7Q29sa2t1b2xra01vbGtrY29sa2t5b2xra01vbGtrZm9sa2tIb2xra1pvbGtrWG9sa2tab2xra2hvbGtrc29sa2tab2xra3RvbGtrSyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hleSAkbmFtZSwgaXMgaXQgb2theSBpZiBJIHRleHQgeW91IHdoZW4gSSBnZXQgdG8gdGhlIG5pZ2h0Y2x1YiB0byBhc2sgZm9yIHRpcHM/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SGV5ICRuYW1lLCBpcyBpdCBva2F5IGlmIEkgdGV4dCB5b3Ugd2hlbiBJIGdldCB0byB0aGUgbmlnaHRjbHViIHRvIGFzayBmb3IgdGlwcz8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O21vbGtreG9sa2tqb2xra0xvbGtrc29sa2tXb2xra2FvbGtrciZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy41cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjbW9sa2t4b2xra2pvbGtrTG9sa2tzb2xra1dvbGtrYW9sa2tyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O09mIGNvdXJzZSwgSeKAmWxsIGJlIGhlcmUgZm9yIGEgd2hpbGUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xN2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtPZiBjb3Vyc2UsIEnigJlsbCBiZSBoZXJlIGZvciBhIHdoaWxlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzE3YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMTYiIG5hbWU9IkhhaWxleUNoYXRFcDJfMl8yMGJfMiIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDI3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMjBiXzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGF04oCZcyB0aGUgZHJlc3MgeW91IHdhbnQgdG8gd2VhciZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGF04oCZcyB0aGUgZHJlc3MgeW91IHdhbnQgdG8gd2VhciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RoYXTigJlzIHRoZSBkcmVzcyB5b3Ugd2FudCB0byB3ZWFyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2NyeWluZy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7SGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfY3J5aW5nLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS42cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7T2theSwgJG5hbWUsIEnigJlsbCB0YWtlIHlvdXIgYWR2aWNlLCBldmVuIHRob3VnaCBJIGZlZWwgZW1iYXJyYXNzZWQgdG8gd2VhciB0aGlzIGluIHB1YmxpYyZxdW90OyAmcXVvdDthb2xra2JvbGtrTG9sa2thb2xra1VvbGtrSW9sa2ttb2xra0VvbGtrWm9sa2t2b2xra2VvbGtrdG9sa2tjb2xra3dvbGtrcW9sa2tBJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2theSwgJG5hbWUsIEnigJlsbCB0YWtlIHlvdXIgYWR2aWNlLCBldmVuIHRob3VnaCBJIGZlZWwgZW1iYXJyYXNzZWQgdG8gd2VhciB0aGlzIGluIHB1YmxpYyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O09rYXksICRuYW1lLCBJ4oCZbGwgdGFrZSB5b3VyIGFkdmljZSwgZXZlbiB0aG91Z2ggSSBmZWVsIGVtYmFycmFzc2VkIHRvIHdlYXIgdGhpcyBpbiBwdWJsaWMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3JvbGtrS29sa2tNb2xra0xvbGtrZW9sa2tsb2xra2RvbGtrVCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy41cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjcm9sa2tLb2xra01vbGtrTG9sa2tlb2xra2xvbGtrZG9sa2tUJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1lvdeKAmWxsIHRoYW5rIG1lIGxhdGVyLCB0cnVzdCBtZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzIxYl8yJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WW914oCZbGwgdGhhbmsgbWUgbGF0ZXIsIHRydXN0IG1lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzIxYl8yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIxNyIgbmFtZT0iSGFpbGV5Q2hhdEVwMl8yXzIxYl8yIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMjcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDJfMl8yMWJfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdeKAmWxsIHRoYW5rIG1lIGxhdGVyLCB0cnVzdCBtZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3XigJlsbCB0aGFuayBtZSBsYXRlciwgdHJ1c3QgbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZb3XigJlsbCB0aGFuayBtZSBsYXRlciwgdHJ1c3QgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7VG9sa2tFb2xra2RvbGtrZ29sa2tIb2xra0JvbGtrYW9sa2tLJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNUb2xra0VvbGtrZG9sa2tnb2xra0hvbGtrQm9sa2thb2xra0smcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SnVzdCBnbyBmb3IgaXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl8yMmJfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0p1c3QgZ28gZm9yIGl0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzIyYl8yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIxOCIgbmFtZT0iSGFpbGV5Q2hhdEVwMl8yXzIyYl8yIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMjcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDJfMl8yMmJfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0p1c3QgZ28gZm9yIGl0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0p1c3QgZ28gZm9yIGl0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SnVzdCBnbyBmb3IgaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtBbHJpZ2h0LCBJIHdpbGwmcXVvdDsgJnF1b3Q7a29sa2tDb2xra1ZvbGtrV29sa2t2b2xra2ZvbGtrcm9sa2tRb2xra2xvbGtra29sa2t3b2xra2NvbGtreG9sa2trb2xra0dvbGtrRyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FscmlnaHQsIEkgd2lsbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0FscmlnaHQsIEkgd2lsbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuOXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0hleSAkbmFtZSwgaXMgaXQgb2theSBpZiBJIHRleHQgeW91IHdoZW4gSSBnZXQgdG8gdGhlIG5pZ2h0Y2x1YiB0byBhc2sgZm9yIHRpcHM/JnF1b3Q7ICZxdW90O2NvbGtraW9sa2tHb2xra25vbGtrd29sa2ttb2xra0FvbGtrc29sa2tmb2xra3dvbGtrTG9sa2t1b2xra3dvbGtrVG9sa2t5b2xra2wmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZXkgJG5hbWUsIGlzIGl0IG9rYXkgaWYgSSB0ZXh0IHlvdSB3aGVuIEkgZ2V0IHRvIHRoZSBuaWdodGNsdWIgdG8gYXNrIGZvciB0aXBzPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0hleSAkbmFtZSwgaXMgaXQgb2theSBpZiBJIHRleHQgeW91IHdoZW4gSSBnZXQgdG8gdGhlIG5pZ2h0Y2x1YiB0byBhc2sgZm9yIHRpcHM/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDttb2xra2lvbGtrZm9sa2t0b2xra0tvbGtrZ29sa2txb2xra1MmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuN3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I21vbGtraW9sa2tmb2xra3RvbGtrS29sa2tnb2xra3FvbGtrUyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtPZiBjb3Vyc2UsIEnigJlsbCBiZSBoZXJlIGZvciBhIHdoaWxlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTdhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7T2YgY291cnNlLCBJ4oCZbGwgYmUgaGVyZSBmb3IgYSB3aGlsZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl8xN2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjE5IiBuYW1lPSJIYWlsZXlFcDJfMSIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwyNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDskbmFtZSwgaXTigJlzIG1lIGFnYWluLiBIb3figJlzIGV2ZXJ5dGhpbmcgZ29pbmc/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90OyRuYW1lLCBpdOKAmXMgbWUgYWdhaW4uIEhvd+KAmXMgZXZlcnl0aGluZyBnb2luZz8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDskbmFtZSwgaXTigJlzIG1lIGFnYWluLiBIb3figJlzIGV2ZXJ5dGhpbmcgZ29pbmc/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuOXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0p1c3Qgd2FudGVkIHRvIGxldCB5b3Uga25vdyBJ4oCZdmUgc2VudCB5b3Ugc29tZSBkYXRhIEkgZm91bmQsIGl0IHNob3VsZCBoZWxwIHdpdGggeW91ciByZXBvcnQmcXVvdDsgJnF1b3Q7R29sa2t3b2xra2dvbGtrU29sa2tNb2xra1JvbGtraG9sa2tEb2xra1RvbGtrVG9sa2thb2xra1ZvbGtrbG9sa2t3b2xra2lvbGtrSCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0p1c3Qgd2FudGVkIHRvIGxldCB5b3Uga25vdyBJ4oCZdmUgc2VudCB5b3Ugc29tZSBkYXRhIEkgZm91bmQsIGl0IHNob3VsZCBoZWxwIHdpdGggeW91ciByZXBvcnQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtKdXN0IHdhbnRlZCB0byBsZXQgeW91IGtub3cgSeKAmXZlIHNlbnQgeW91IHNvbWUgZGF0YSBJIGZvdW5kLCBpdCBzaG91bGQgaGVscCB3aXRoIHlvdXIgcmVwb3J0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtIb2xra2dvbGtrcW9sa2tib2xra1ZvbGtraG9sa2twb2xra0UmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuMXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I0hvbGtrZ29sa2txb2xra2JvbGtrVm9sa2tob2xra3BvbGtrRSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGFua3MgYWdhaW4sIEhhaWxleSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5RXAyXzImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaGFua3MgYWdhaW4sIEhhaWxleSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUVwMl8yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjIwIiBuYW1lPSJIYWlsZXlFcDJfMiIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSwyNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5RXAyXzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGFua3MgYWdhaW4sIEhhaWxleSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGFua3MgYWdhaW4sIEhhaWxleSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RoYW5rcyBhZ2FpbiwgSGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1ZvbGtrUm9sa2tJb2xra0VvbGtraG9sa2tkb2xra0VvbGtreiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjVm9sa2tSb2xra0lvbGtrRW9sa2tob2xra2RvbGtrRW9sa2t6JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1lvdSBtdXN0IGJlIHRpcmVkIG9mIGhlYXJpbmcgbWUgc2F5IHRoYW5rIHlvdSBhbGwgdGhlIHRpbWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUVwMl8zJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WW91IG11c3QgYmUgdGlyZWQgb2YgaGVhcmluZyBtZSBzYXkgdGhhbmsgeW91IGFsbCB0aGUgdGltZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUVwMl8zJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIyMSIgbmFtZT0iSGFpbGV5RXAyXzMiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCwyODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5RXAyXzMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZb3UgbXVzdCBiZSB0aXJlZCBvZiBoZWFyaW5nIG1lIHNheSB0aGFuayB5b3UgYWxsIHRoZSB0aW1lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBtdXN0IGJlIHRpcmVkIG9mIGhlYXJpbmcgbWUgc2F5IHRoYW5rIHlvdSBhbGwgdGhlIHRpbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZb3UgbXVzdCBiZSB0aXJlZCBvZiBoZWFyaW5nIG1lIHNheSB0aGFuayB5b3UgYWxsIHRoZSB0aW1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2JpZ19zbWlsZS53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7SGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfYmlnX3NtaWxlLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC45cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7Tm90IGF0IGFsbCEgSXTigJlzIGFsd2F5cyBuaWNlIHRvIGJlIGFwcHJlY2lhdGVkJnF1b3Q7ICZxdW90O0dvbGtrU29sa2tyb2xra0JvbGtrSG9sa2tub2xra0xvbGtra29sa2tLb2xra3ZvbGtrYm9sa2tZb2xra0VvbGtrR29sa2tzb2xra3AmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtOb3QgYXQgYWxsISBJdOKAmXMgYWx3YXlzIG5pY2UgdG8gYmUgYXBwcmVjaWF0ZWQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtOb3QgYXQgYWxsISBJdOKAmXMgYWx3YXlzIG5pY2UgdG8gYmUgYXBwcmVjaWF0ZWQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtCZXNpZGVzLi4uIHlvdeKAmXJlIHRoZSBvbmx5IG9uZSB3aG8gY2hlZXJzIG1lIHVwJnF1b3Q7ICZxdW90O2pvbGtrQW9sa2tXb2xra1VvbGtrb29sa2tJb2xra2pvbGtrem9sa2tkb2xra1FvbGtrbm9sa2tKb2xra1ZvbGtrZW9sa2tYb2xra0EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCZXNpZGVzLi4uIHlvdeKAmXJlIHRoZSBvbmx5IG9uZSB3aG8gY2hlZXJzIG1lIHVwJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QmVzaWRlcy4uLiB5b3XigJlyZSB0aGUgb25seSBvbmUgd2hvIGNoZWVycyBtZSB1cCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7dG9sa2tub2xra1VvbGtrS29sa2t2b2xra0hvbGtrTW9sa2tJJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyN0b2xra25vbGtrVW9sa2tLb2xra3ZvbGtrSG9sa2tNb2xra0kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SG93IGNhbiBJIGJlIHRoZSBvbmx5IG9uZT8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUVwMl80JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SG93IGNhbiBJIGJlIHRoZSBvbmx5IG9uZT8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlFcDJfNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMjIiIG5hbWU9IkhhaWxleUVwMl80IiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsMjg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUVwMl80JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SG93IGNhbiBJIGJlIHRoZSBvbmx5IG9uZT8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SG93IGNhbiBJIGJlIHRoZSBvbmx5IG9uZT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtIb3cgY2FuIEkgYmUgdGhlIG9ubHkgb25lPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtpb2xra1hvbGtreW9sa2tWb2xra3FvbGtrTW9sa2tsb2xra2MmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I2lvbGtrWG9sa2t5b2xra1ZvbGtrcW9sa2tNb2xra2xvbGtrYyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJJiMzOTt2ZSB0b2xkIHlvdSBiZWZvcmUsIHlvdSBzaG91bGQgZ28gb3V0IG1vcmUsIG1lZXQgc29tZSBwZW9wbGUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUVwMl81JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSYjMzk7dmUgdG9sZCB5b3UgYmVmb3JlLCB5b3Ugc2hvdWxkIGdvIG91dCBtb3JlLCBtZWV0IHNvbWUgcGVvcGxlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5RXAyXzUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjIzIiBuYW1lPSJIYWlsZXlFcDJfNSIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDI4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlFcDJfNSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0nigJl2ZSB0b2xkIHlvdSBiZWZvcmUsIHlvdSBzaG91bGQgZ28gb3V0IG1vcmUsIG1lZXQgc29tZSBwZW9wbGUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmXZlIHRvbGQgeW91IGJlZm9yZSwgeW91IHNob3VsZCBnbyBvdXQgbW9yZSwgbWVldCBzb21lIHBlb3BsZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0nigJl2ZSB0b2xkIHlvdSBiZWZvcmUsIHlvdSBzaG91bGQgZ28gb3V0IG1vcmUsIG1lZXQgc29tZSBwZW9wbGUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7WW9sa2tvb2xra3RvbGtreG9sa2tRb2xra3lvbGtrRG9sa2tTJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNZb2xra29vbGtrdG9sa2t4b2xra1FvbGtreW9sa2tEb2xra1MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WW91JiMzOTtyZSBhIGxvdmVseSBnaXJsLCBhbmQgeW91IGRlc2VydmUgdG8gZW5qb3kgbGlmZSBtb3JlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlFcDJfNiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdSYjMzk7cmUgYSBsb3ZlbHkgZ2lybCwgYW5kIHlvdSBkZXNlcnZlIHRvIGVuam95IGxpZmUgbW9yZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUVwMl82JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIyNCIgbmFtZT0iSGFpbGV5RXAyXzYiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwyODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5RXAyXzYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZb3XigJlyZSBhIGxvdmVseSBnaXJsLCBhbmQgeW91IGRlc2VydmUgdG8gZW5qb3kgbGlmZSBtb3JlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdeKAmXJlIGEgbG92ZWx5IGdpcmwsIGFuZCB5b3UgZGVzZXJ2ZSB0byBlbmpveSBsaWZlIG1vcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZb3XigJlyZSBhIGxvdmVseSBnaXJsLCBhbmQgeW91IGRlc2VydmUgdG8gZW5qb3kgbGlmZSBtb3JlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kga25vdyB5b3XigJlyZSByaWdodC4uLiZxdW90OyAmcXVvdDtVb2xra3VvbGtraG9sa2tpb2xra3RvbGtrZm9sa2tOb2xra1NvbGtrY29sa2txb2xra2hvbGtrY29sa2tmb2xra2dvbGtrbW9sa2t3JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBrbm93IHlvdeKAmXJlIHJpZ2h0Li4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSBrbm93IHlvdeKAmXJlIHJpZ2h0Li4uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS41cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7QnV0IEkgZG9u4oCZdCBoYXZlIG11Y2ggZXhwZXJpZW5jZSwgYW5kIEkgZG9u4oCZdCBoYXZlIGZyaWVuZHMgdG8gZ28gb3V0IHdpdGgmcXVvdDsgJnF1b3Q7em9sa2tIb2xra09vbGtrTm9sa2tyb2xra1VvbGtrUm9sa2tGb2xra3BvbGtrbW9sa2tFb2xra3dvbGtrRm9sa2tZb2xra0FvbGtreiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCBJIGRvbuKAmXQgaGF2ZSBtdWNoIGV4cGVyaWVuY2UsIGFuZCBJIGRvbuKAmXQgaGF2ZSBmcmllbmRzIHRvIGdvIG91dCB3aXRoJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QnV0IEkgZG9u4oCZdCBoYXZlIG11Y2ggZXhwZXJpZW5jZSwgYW5kIEkgZG9u4oCZdCBoYXZlIGZyaWVuZHMgdG8gZ28gb3V0IHdpdGgmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0lvbGtraG9sa2tWb2xra3FvbGtrd29sa2tkb2xra3RvbGtrSSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjSW9sa2tob2xra1ZvbGtrcW9sa2t3b2xra2RvbGtrdG9sa2tJJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1lvdSBkb27igJl0IG5lZWQgdGhhdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5RXAyXzcmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3UgZG9u4oCZdCBuZWVkIHRoYXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlFcDJfNyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMjUiIG5hbWU9IkhhaWxleUVwMl83IiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsMjg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUVwMl83JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WW91IGRvbuKAmXQgbmVlZCB0aGF0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBkb27igJl0IG5lZWQgdGhhdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1lvdSBkb27igJl0IG5lZWQgdGhhdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtab2xra3lvbGtrRm9sa2tvb2xra2FvbGtrSG9sa2tCb2xra1kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I1pvbGtreW9sa2tGb2xra29vbGtrYW9sa2tIb2xra0JvbGtrWSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3UganVzdCBuZWVkIHRvIHRha2UgdGhlIGZpcnN0IHN0ZXAmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUVwMl84JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WW91IGp1c3QgbmVlZCB0byB0YWtlIHRoZSBmaXJzdCBzdGVwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5RXAyXzgmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjI2IiBuYW1lPSJIYWlsZXlFcDJfOCIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDI4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlFcDJfOCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdSBqdXN0IG5lZWQgdG8gdGFrZSB0aGUgZmlyc3Qgc3RlcCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3UganVzdCBuZWVkIHRvIHRha2UgdGhlIGZpcnN0IHN0ZXAmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZb3UganVzdCBuZWVkIHRvIHRha2UgdGhlIGZpcnN0IHN0ZXAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7bm9sa2t4b2xra3ZvbGtrc29sa2t4b2xra3dvbGtrTm9sa2trJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNub2xra3hvbGtrdm9sa2tzb2xra3hvbGtrd29sa2tOb2xra2smcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7V2h5IG5vdCBnbyBvdXQgdG9uaWdodD8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUVwMl85JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7V2h5IG5vdCBnbyBvdXQgdG9uaWdodD8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlFcDJfOSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMjciIG5hbWU9IkhhaWxleUVwMl85IiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMjg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUVwMl85JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7V2h5IG5vdCBnbyBvdXQgdG9uaWdodD8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2h5IG5vdCBnbyBvdXQgdG9uaWdodD8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtXaHkgbm90IGdvIG91dCB0b25pZ2h0PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJ4oCZbSBhIGJpdCBzaHksIEkgd291bGQgZmVlbCBvdXQgb2YgcGxhY2UmcXVvdDsgJnF1b3Q7d29sa2tNb2xra1ZvbGtrUG9sa2t1b2xra1pvbGtrd29sa2t5b2xra0ZvbGtrb29sa2thb2xra2NvbGtrdW9sa2tPb2xra1BvbGtrRiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJltIGEgYml0IHNoeSwgSSB3b3VsZCBmZWVsIG91dCBvZiBwbGFjZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0nigJltIGEgYml0IHNoeSwgSSB3b3VsZCBmZWVsIG91dCBvZiBwbGFjZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgd291bGRu4oCZdCBldmVuIGtub3cgd2hhdCB0byBkbyZxdW90OyAmcXVvdDt2b2xra2hvbGtrS29sa2tNb2xra2JvbGtrTm9sa2tUb2xra05vbGtrd29sa2tnb2xra0RvbGtrbG9sa2tXb2xra3RvbGtrS29sa2tkJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB3b3VsZG7igJl0IGV2ZW4ga25vdyB3aGF0IHRvIGRvJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSB3b3VsZG7igJl0IGV2ZW4ga25vdyB3aGF0IHRvIGRvJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtmb2xra1FvbGtrSG9sa2txb2xra1JvbGtreW9sa2tFb2xra0kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuMnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I2ZvbGtrUW9sa2tIb2xra3FvbGtrUm9sa2t5b2xra0VvbGtrSSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaG9zZSBhcmUganVzdCBleGN1c2VzLCBpdOKAmXMgbm90IHRoYXQgaGFyZCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5RXAyXzEwYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1Rob3NlIGFyZSBqdXN0IGV4Y3VzZXMsIGl04oCZcyBub3QgdGhhdCBoYXJkJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5RXAyXzEwYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjZm9sa2tRb2xra0hvbGtrcW9sa2tSb2xra3lvbGtrRW9sa2tJJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0l0IGNhbiBiZSB0b3VnaCBzb21ldGltZXMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUVwMl8xMGImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJdCBjYW4gYmUgdG91Z2ggc29tZXRpbWVzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5RXAyXzEwYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMjgiIG5hbWU9IkhhaWxleUVwMl8xMGEiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSwyODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5RXAyXzEwYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1Rob3NlIGFyZSBqdXN0IGV4Y3VzZXMsIGl04oCZcyBub3QgdGhhdCBoYXJkJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1Rob3NlIGFyZSBqdXN0IGV4Y3VzZXMsIGl04oCZcyBub3QgdGhhdCBoYXJkJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhvc2UgYXJlIGp1c3QgZXhjdXNlcywgaXTigJlzIG5vdCB0aGF0IGhhcmQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7UG9sa2tYb2xra0pvbGtrbm9sa2tSb2xra2tvbGtrQW9sa2tqJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNQb2xra1hvbGtrSm9sa2tub2xra1JvbGtra29sa2tBb2xra2omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7TGV04oCZcyBkbyB0aGlzLS1J4oCZbGwgYmUgeW91ciBhc3Npc3RhbnQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUVwMl8xMSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0xldOKAmXMgZG8gdGhpcy0tSeKAmWxsIGJlIHlvdXIgYXNzaXN0YW50JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5RXAyXzExJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIyOSIgbmFtZT0iSGFpbGV5RXAyXzEwYiIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwyODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5RXAyXzEwYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0l0IGNhbiBiZSB0b3VnaCBzb21ldGltZXMmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXQgY2FuIGJlIHRvdWdoIHNvbWV0aW1lcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0l0IGNhbiBiZSB0b3VnaCBzb21ldGltZXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Y29sa2tab2xra3FvbGtrVm9sa2tIb2xra0RvbGtrYW9sa2trJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNjb2xra1pvbGtrcW9sa2tWb2xra0hvbGtrRG9sa2thb2xra2smcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7TGV04oCZcyBkbyB0aGlzLS1J4oCZbGwgYmUgeW91ciBhc3Npc3RhbnQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUVwMl8xMSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0xldOKAmXMgZG8gdGhpcy0tSeKAmWxsIGJlIHlvdXIgYXNzaXN0YW50JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5RXAyXzExJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIzMCIgbmFtZT0iSGFpbGV5RXAyXzExIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDI4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlFcDJfMTEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtMZXTigJlzIGRvIHRoaXM6IEnigJlsbCBiZSB5b3VyIGFzc2lzdGFudCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtMZXTigJlzIGRvIHRoaXM6IEnigJlsbCBiZSB5b3VyIGFzc2lzdGFudCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0xldOKAmXMgZG8gdGhpczogSeKAmWxsIGJlIHlvdXIgYXNzaXN0YW50JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2RvbGtrSW9sa2tlb2xra0VvbGtram9sa2txb2xra3NvbGtreCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjZG9sa2tJb2xra2VvbGtrRW9sa2tqb2xra3FvbGtrc29sa2t4JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RleHQgbWUgZHVyaW5nIHRoZSBuaWdodCwgYW5kIEnigJlsbCBoZWxwIHlvdSBiZSBtb3JlIHNvY2lhbCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5RXAyXzEyJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGV4dCBtZSBkdXJpbmcgdGhlIG5pZ2h0LCBhbmQgSeKAmWxsIGhlbHAgeW91IGJlIG1vcmUgc29jaWFsJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5RXAyXzEyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIzMSIgbmFtZT0iSGFpbGV5RXAyXzEyIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMjk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUVwMl8xMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RleHQgbWUgZHVyaW5nIHRoZSBuaWdodCwgYW5kIEnigJlsbCBoZWxwIHlvdSBiZSBtb3JlIHNvY2lhbCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUZXh0IG1lIGR1cmluZyB0aGUgbmlnaHQsIGFuZCBJ4oCZbGwgaGVscCB5b3UgYmUgbW9yZSBzb2NpYWwmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUZXh0IG1lIGR1cmluZyB0aGUgbmlnaHQsIGFuZCBJ4oCZbGwgaGVscCB5b3UgYmUgbW9yZSBzb2NpYWwmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7a29sa2tWb2xra2VvbGtrbW9sa2tsb2xra0NvbGtrU29sa2tsJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNrb2xra1ZvbGtrZW9sa2ttb2xra2xvbGtrQ29sa2tTb2xra2wmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QW55dGltZSB5b3XigJlyZSB1bnN1cmUgb2Ygd2hhdCB0byBkbywganVzdCBhc2sgbWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUVwMl8xMyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0FueXRpbWUgeW914oCZcmUgdW5zdXJlIG9mIHdoYXQgdG8gZG8sIGp1c3QgYXNrIG1lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5RXAyXzEzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIzMiIgbmFtZT0iSGFpbGV5RXAyXzEzIiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsMjk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUVwMl8xMyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0FueXRpbWUgeW914oCZcmUgdW5zdXJlIG9mIHdoYXQgdG8gZG8sIGp1c3QgYXNrIG1lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FueXRpbWUgeW914oCZcmUgdW5zdXJlIG9mIHdoYXQgdG8gZG8sIGp1c3QgYXNrIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QW55dGltZSB5b3XigJlyZSB1bnN1cmUgb2Ygd2hhdCB0byBkbywganVzdCBhc2sgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7QnV0IHlvdeKAmXJlIGJ1c3kgd2l0aCB0aGUgcmVwb3J0Li4uJnF1b3Q7ICZxdW90O3JvbGtrRW9sa2tCb2xra0tvbGtrYm9sa2tob2xra3pvbGtrbW9sa2tZb2xra3JvbGtrUW9sa2tMb2xra1pvbGtrTW9sa2twb2xra04mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgeW914oCZcmUgYnVzeSB3aXRoIHRoZSByZXBvcnQuLi4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtCdXQgeW914oCZcmUgYnVzeSB3aXRoIHRoZSByZXBvcnQuLi4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1BvbGtrRW9sa2tOb2xra0dvbGtrRm9sa2tWb2xra0xvbGtrZiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS41cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjUG9sa2tFb2xra05vbGtrR29sa2tGb2xra1ZvbGtrTG9sa2tmJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0l0IHdvbuKAmXQgY2hhbmdlIGFueXRoaW5nIGZvciBtZSB0byB0YWtlIGEgZmV3IG1pbnV0ZXMgdG8gcmVwbHkgdG8gc29tZSBtZXNzYWdlcyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5RXAyXzE0JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SXQgd29u4oCZdCBjaGFuZ2UgYW55dGhpbmcgZm9yIG1lIHRvIHRha2UgYSBmZXcgbWludXRlcyB0byByZXBseSB0byBzb21lIG1lc3NhZ2VzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5RXAyXzE0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIzMyIgbmFtZT0iSGFpbGV5RXAyXzE0IiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsMjk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUVwMl8xNCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0l0IHdvbuKAmXQgY2hhbmdlIGFueXRoaW5nIGZvciBtZSB0byB0YWtlIGEgZmV3IG1pbnV0ZXMgdG8gcmVwbHkgdG8gc29tZSBtZXNzYWdlcyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdCB3b27igJl0IGNoYW5nZSBhbnl0aGluZyBmb3IgbWUgdG8gdGFrZSBhIGZldyBtaW51dGVzIHRvIHJlcGx5IHRvIHNvbWUgbWVzc2FnZXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJdCB3b27igJl0IGNoYW5nZSBhbnl0aGluZyBmb3IgbWUgdG8gdGFrZSBhIGZldyBtaW51dGVzIHRvIHJlcGx5IHRvIHNvbWUgbWVzc2FnZXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7SW9sa2tib2xra1FvbGtreG9sa2tGb2xra3VvbGtrWW9sa2twJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNJb2xra2JvbGtrUW9sa2t4b2xra0ZvbGtrdW9sa2tZb2xra3AmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VHJ1c3QgbWUsIEkgY2FuIGhlbHAmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUVwMl8xNSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RydXN0IG1lLCBJIGNhbiBoZWxwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5RXAyXzE1JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIzNCIgbmFtZT0iSGFpbGV5RXAyXzE1IiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMjk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUVwMl8xNSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RydXN0IG1lLCBJIGNhbiBoZWxwJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RydXN0IG1lLCBJIGNhbiBoZWxwJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VHJ1c3QgbWUsIEkgY2FuIGhlbHAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7T2theS4uLiBJ4oCZbGwgdGhpbmsgYWJvdXQgaXQmcXVvdDsgJnF1b3Q7bm9sa2tUb2xra21vbGtrVW9sa2t2b2xra0hvbGtrUm9sa2tIb2xra2NvbGtram9sa2t4b2xra0ZvbGtrR29sa2t5b2xra3RvbGtrbiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09rYXkuLi4gSeKAmWxsIHRoaW5rIGFib3V0IGl0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7T2theS4uLiBJ4oCZbGwgdGhpbmsgYWJvdXQgaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O01vbGtrUG9sa2tkb2xra0xvbGtreG9sa2tGb2xra2VvbGtrSSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjTW9sa2tQb2xra2RvbGtrTG9sa2t4b2xra0ZvbGtrZW9sa2tJJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoYXTigJlzIGFsbCBJ4oCZbSBhc2tpbmcmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUVwMl8xNiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoYXTigJlzIGFsbCBJ4oCZbSBhc2tpbmcmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlFcDJfMTYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjM1IiBuYW1lPSJIYWlsZXlFcDJfMTYiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCwyOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5RXAyXzE2JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhhdOKAmXMgYWxsIEnigJltIGFza2luZyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGF04oCZcyBhbGwgSeKAmW0gYXNraW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhhdOKAmXMgYWxsIEnigJltIGFza2luZyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtEb2xra0RvbGtrcG9sa2tqb2xra0RvbGtrVm9sa2tyb2xra00mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I0RvbGtrRG9sa2twb2xra2pvbGtrRG9sa2tWb2xra3JvbGtrTSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUYWxrIHRvIHlvdSBsYXRlciwgSGFpbGV5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlFcDJfMTcmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUYWxrIHRvIHlvdSBsYXRlciwgSGFpbGV5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5RXAyXzE3JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIzNiIgbmFtZT0iSGFpbGV5RXAyXzE3IiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsMjk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUVwMl8xNyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RhbGsgdG8geW91IGxhdGVyLCBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGFsayB0byB5b3UgbGF0ZXIsIEhhaWxleSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RhbGsgdG8geW91IGxhdGVyLCBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4ycyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7QnllICRuYW1lJnF1b3Q7ICZxdW90O0JvbGtrem9sa2tCb2xra0VvbGtrdW9sa2tKb2xra1JvbGtraG9sa2tRb2xra3RvbGtrZG9sa2t0b2xra3FvbGtrV29sa2tqb2xra28mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCeWUgJG5hbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtCeWUgJG5hbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4xcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV90b25ndWUud2VicCZxdW90OyB0cnVlICZxdW90O0hhaWxleSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X3Rvbmd1ZS53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAyLjFzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdCA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4xcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSA9ICZxdW90O0FubmllQ2hhdEVwMl8xXzEmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4xcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIZXkgaG9uZXksIGhvd+KAmXMgZXZlcnl0aGluZyBnb2luZyBvdmVyIHRoZXJlPyZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjFzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZyA9ICRBbm5pZV9jaGF0TG9nLnNsaWNlKC01KSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjFzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q78J+YiyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlID0gJnF1b3Q7SGFpbGV5RXAyXzE3JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0X2hvdXIgPSAmcXVvdDsxNDozMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdCA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDsxNDozMiZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7b2ZmbGluZS10ZXh0JnF1b3Q7Jmd0O0hhaWxleSBpcyBvZmZsaW5lJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIzNyIgbmFtZT0iSGFpbGV5Q2hhdEVwM18xIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMjk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SGV5ICRuYW1lLCBhcmUgeW91IHN0aWxsIHRoZXJlPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZXkgJG5hbWUsIGFyZSB5b3Ugc3RpbGwgdGhlcmU/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SGV5ICRuYW1lLCBhcmUgeW91IHN0aWxsIHRoZXJlPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0JvbGtrUG9sa2tnb2xra2lvbGtrRW9sa2tlb2xra3dvbGtreSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjQm9sa2tQb2xra2dvbGtraW9sa2tFb2xra2VvbGtrd29sa2t5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1llYWgsIG9mIGNvdXJzZSwgSeKAmW0gc3RpbGwgaGVyZSBhdCB3b3JrJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZZWFoLCBvZiBjb3Vyc2UsIEnigJltIHN0aWxsIGhlcmUgYXQgd29yayZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIzOCIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMjk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1llYWgsIG9mIGNvdXJzZSwgSeKAmW0gc3RpbGwgaGVyZSBhdCB3b3JrJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1llYWgsIG9mIGNvdXJzZSwgSeKAmW0gc3RpbGwgaGVyZSBhdCB3b3JrJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WWVhaCwgb2YgY291cnNlLCBJ4oCZbSBzdGlsbCBoZXJlIGF0IHdvcmsmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7QXJlIHlvdSBzdXJlIEnigJltIG5vdCBib3RoZXJpbmcgeW91PyZxdW90OyAmcXVvdDtKb2xra1JvbGtrVG9sa2tSb2xra3hvbGtrcG9sa2t5b2xra0hvbGtrd29sa2tkb2xra1NvbGtrRm9sa2tUb2xra3VvbGtrSW9sa2tlJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QXJlIHlvdSBzdXJlIEnigJltIG5vdCBib3RoZXJpbmcgeW91PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0FyZSB5b3Ugc3VyZSBJ4oCZbSBub3QgYm90aGVyaW5nIHlvdT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0tvbGtrSW9sa2tIb2xra1hvbGtrUW9sa2tEb2xra2dvbGtrcSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjS29sa2tJb2xra0hvbGtrWG9sa2tRb2xra0RvbGtrZ29sa2txJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0xpa2UgSSBzYWlkIGJlZm9yZSwgZG9u4oCZdCB3b3JyeSBhYm91dCBpdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7TGlrZSBJIHNhaWQgYmVmb3JlLCBkb27igJl0IHdvcnJ5IGFib3V0IGl0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIzOSIgbmFtZT0iSGFpbGV5Q2hhdEVwM18zIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDI5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtMaWtlIEkgc2FpZCBiZWZvcmUsIGRvbuKAmXQgd29ycnkgYWJvdXQgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGlrZSBJIHNhaWQgYmVmb3JlLCBkb27igJl0IHdvcnJ5IGFib3V0IGl0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7TGlrZSBJIHNhaWQgYmVmb3JlLCBkb27igJl0IHdvcnJ5IGFib3V0IGl0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2VvbGtrRm9sa2tZb2xra3NvbGtrUW9sa2ttb2xra1VvbGtrZCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjZW9sa2tGb2xra1lvbGtrc29sa2tRb2xra21vbGtrVW9sa2tkJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0Jlc2lkZXMsIEnigJlsbCBwcm9iYWJseSBiZSBoZXJlIGFsbCBuaWdodCBhbnl3YXkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0Jlc2lkZXMsIEnigJlsbCBwcm9iYWJseSBiZSBoZXJlIGFsbCBuaWdodCBhbnl3YXkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjQwIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzQiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMjk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfNCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0Jlc2lkZXMsIEnigJlsbCBwcm9iYWJseSBiZSBoZXJlIGFsbCBuaWdodCBhbnl3YXkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QmVzaWRlcywgSeKAmWxsIHByb2JhYmx5IGJlIGhlcmUgYWxsIG5pZ2h0IGFueXdheSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0Jlc2lkZXMsIEnigJlsbCBwcm9iYWJseSBiZSBoZXJlIGFsbCBuaWdodCBhbnl3YXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7ZW9sa2tVb2xra2RvbGtrS29sa2tlb2xra3lvbGtrVW9sa2tTJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNlb2xra1VvbGtrZG9sa2tLb2xra2VvbGtreW9sa2tVb2xra1MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QSBkaXN0cmFjdGlvbiB0byByZWNoYXJnZSBteSBlbmVyZ3kgaXMgYWN0dWFsbHkgaGVscGZ1bCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM181JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QSBkaXN0cmFjdGlvbiB0byByZWNoYXJnZSBteSBlbmVyZ3kgaXMgYWN0dWFsbHkgaGVscGZ1bCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfNSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNDEiIG5hbWU9IkhhaWxleUNoYXRFcDNfNSIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDMxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtBIGRpc3RyYWN0aW9uIHRvIHJlY2hhcmdlIG15IGVuZXJneSBpcyBhY3R1YWxseSBoZWxwZnVsJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0EgZGlzdHJhY3Rpb24gdG8gcmVjaGFyZ2UgbXkgZW5lcmd5IGlzIGFjdHVhbGx5IGhlbHBmdWwmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtBIGRpc3RyYWN0aW9uIHRvIHJlY2hhcmdlIG15IGVuZXJneSBpcyBhY3R1YWxseSBoZWxwZnVsJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O09rYXksIGluIHRoYXQgY2FzZSwgbGV0IG1lIHRlbGwgeW91IGhvdyB0aGluZ3MgYXJlIGdvaW5nIG92ZXIgaGVyZSZxdW90OyAmcXVvdDtsb2xra1JvbGtrZm9sa2tVb2xra1hvbGtrY29sa2tlb2xra1pvbGtrQ29sa2tzb2xra2xvbGtrRG9sa2tlb2xra1hvbGtrYm9sa2tiJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2theSwgaW4gdGhhdCBjYXNlLCBsZXQgbWUgdGVsbCB5b3UgaG93IHRoaW5ncyBhcmUgZ29pbmcgb3ZlciBoZXJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7T2theSwgaW4gdGhhdCBjYXNlLCBsZXQgbWUgdGVsbCB5b3UgaG93IHRoaW5ncyBhcmUgZ29pbmcgb3ZlciBoZXJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuM3MmZ3Q7Jmd0OyZsdDsmbHQ7aWYgICRoYWlsZXlfZHJlc3MgPT0gMSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4zcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSBmZWx0IGEgYml0IG91dCBvZiBwbGFjZSBhcyBzb29uIGFzIEkgZ290IGhlcmUmcXVvdDsgJnF1b3Q7WG9sa2tDb2xra2hvbGtrWm9sa2ttb2xra3ZvbGtrR29sa2tWb2xra0lvbGtraW9sa2tqb2xra2JvbGtrQW9sa2tlb2xra2pvbGtrUyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZmVsdCBhIGJpdCBvdXQgb2YgcGxhY2UgYXMgc29vbiBhcyBJIGdvdCBoZXJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSBmZWx0IGEgYml0IG91dCBvZiBwbGFjZSBhcyBzb29uIGFzIEkgZ290IGhlcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjZzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtBZnRlciBhIGZldyBtb21lbnRzIG9mIG5vdCBrbm93aW5nIHdoZXJlIHRvIGdvLCBJIGp1c3Qgc2F0IGF0IHRoZSBiYXImcXVvdDsgJnF1b3Q7TW9sa2tFb2xra1BvbGtrd29sa2tSb2xra2pvbGtrSG9sa2tOb2xra1RvbGtrd29sa2tCb2xra1ZvbGtrSm9sa2trb2xra0dvbGtrWSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FmdGVyIGEgZmV3IG1vbWVudHMgb2Ygbm90IGtub3dpbmcgd2hlcmUgdG8gZ28sIEkganVzdCBzYXQgYXQgdGhlIGJhciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0FmdGVyIGEgZmV3IG1vbWVudHMgb2Ygbm90IGtub3dpbmcgd2hlcmUgdG8gZ28sIEkganVzdCBzYXQgYXQgdGhlIGJhciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNnMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0FuZCBJ4oCZdmUgYmVlbiBoZXJlIGV2ZXIgc2luY2UmcXVvdDsgJnF1b3Q7RG9sa2tib2xra0xvbGtrQ29sa2tKb2xra2tvbGtrTm9sa2tSb2xra1RvbGtrV29sa2tLb2xra2hvbGtrRW9sa2tWb2xra2pvbGtrZSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FuZCBJ4oCZdmUgYmVlbiBoZXJlIGV2ZXIgc2luY2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtBbmQgSeKAmXZlIGJlZW4gaGVyZSBldmVyIHNpbmNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDUuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSBndWVzcyBldmVyeW9uZSBtdXN0IHNlZSBtZSBhcyB0aGUgd2VpcmQgZ2lybCBzaXR0aW5nIGFsb25lJnF1b3Q7ICZxdW90O1lvbGtrVW9sa2tJb2xra0VvbGtrVW9sa2tNb2xra2ZvbGtrQW9sa2tjb2xra0JvbGtrcW9sa2tBb2xra0JvbGtrZm9sa2tDb2xra0smcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGd1ZXNzIGV2ZXJ5b25lIG11c3Qgc2VlIG1lIGFzIHRoZSB3ZWlyZCBnaXJsIHNpdHRpbmcgYWxvbmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIGd1ZXNzIGV2ZXJ5b25lIG11c3Qgc2VlIG1lIGFzIHRoZSB3ZWlyZCBnaXJsIHNpdHRpbmcgYWxvbmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1VvbGtrbm9sa2tCb2xra0JvbGtrdW9sa2tIb2xra1BvbGtrdiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNy4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjVW9sa2tub2xra0JvbGtrQm9sa2t1b2xra0hvbGtrUG9sa2t2JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O05vdCBhdCBhbGwsIEhhaWxleSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM183YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O05vdCBhdCBhbGwsIEhhaWxleSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfN2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SeKAmW0gcmVhbGx5IGVtYmFycmFzc2VkIHdlYXJpbmcgdGhpcyBkcmVzcyZxdW90OyAmcXVvdDtkb2xra2ZvbGtrU29sa2tOb2xra2tvbGtrd29sa2tUb2xra25vbGtrbG9sa2thb2xra0FvbGtreW9sa2t5b2xra1hvbGtrdm9sa2tzJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gcmVhbGx5IGVtYmFycmFzc2VkIHdlYXJpbmcgdGhpcyBkcmVzcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0nigJltIHJlYWxseSBlbWJhcnJhc3NlZCB3ZWFyaW5nIHRoaXMgZHJlc3MmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9kb3VidC53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7SGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfZG91YnQud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMi4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIGNvdWxkIGZlZWwgZXZlcnlvbmUgc3RhcmluZyBhdCBtZSBvbiB0aGUgc3RyZWV0JnF1b3Q7ICZxdW90O0hvbGtrRG9sa2tmb2xra1NvbGtrTG9sa2tMb2xra1RvbGtrZW9sa2tCb2xra3ZvbGtrT29sa2tib2xra1BvbGtrWm9sa2tib2xra1gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGNvdWxkIGZlZWwgZXZlcnlvbmUgc3RhcmluZyBhdCBtZSBvbiB0aGUgc3RyZWV0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSBjb3VsZCBmZWVsIGV2ZXJ5b25lIHN0YXJpbmcgYXQgbWUgb24gdGhlIHN0cmVldCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1Blb3BsZSBtdXN0IHRoaW5rIEnigJltIGEgcHJvc3RpdHV0ZSBvciBzb21ldGhpbmcmcXVvdDsgJnF1b3Q7Z29sa2tpb2xra0hvbGtrZG9sa2tNb2xra3ZvbGtreW9sa2tub2xra3NvbGtrTG9sa2tib2xra3FvbGtrVG9sa2tlb2xra3VvbGtrdyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1Blb3BsZSBtdXN0IHRoaW5rIEnigJltIGEgcHJvc3RpdHV0ZSBvciBzb21ldGhpbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtQZW9wbGUgbXVzdCB0aGluayBJ4oCZbSBhIHByb3N0aXR1dGUgb3Igc29tZXRoaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtQb2xra0VvbGtrSm9sa2twb2xra2xvbGtrZW9sa2tkb2xra1omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDUuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I1BvbGtrRW9sa2tKb2xra3BvbGtrbG9sa2tlb2xra2RvbGtrWiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtEb27igJl0IG92ZXJ0aGluayBpdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM183YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0RvbuKAmXQgb3ZlcnRoaW5rIGl0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM183YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjQyIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzdhIiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsMzEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfN2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtOb3QgYXQgYWxsLCBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm90IGF0IGFsbCwgSGFpbGV5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7Tm90IGF0IGFsbCwgSGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2lvbGtrd29sa2txb2xra3BvbGtrSm9sa2tvb2xra1hvbGtrRCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjaW9sa2t3b2xra3FvbGtrcG9sa2tKb2xra29vbGtrWG9sa2tEJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0l04oCZcyB0b3RhbGx5IG5vcm1hbCBmb3IgYSBnaXJsIHRvIGdvIG91dCBhbG9uZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM184YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0l04oCZcyB0b3RhbGx5IG5vcm1hbCBmb3IgYSBnaXJsIHRvIGdvIG91dCBhbG9uZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfOGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjQzIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzhhIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsMzEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfOGEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJdOKAmXMgdG90YWxseSBub3JtYWwgZm9yIGEgZ2lybCB0byBnbyBvdXQgYWxvbmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXTigJlzIHRvdGFsbHkgbm9ybWFsIGZvciBhIGdpcmwgdG8gZ28gb3V0IGFsb25lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SXTigJlzIHRvdGFsbHkgbm9ybWFsIGZvciBhIGdpcmwgdG8gZ28gb3V0IGFsb25lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0lvbGtrVm9sa2twb2xra1hvbGtrWG9sa2tIb2xra3hvbGtrVSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjSW9sa2tWb2xra3BvbGtrWG9sa2tYb2xra0hvbGtreG9sa2tVJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0ZvciB1cywgaXTigJlzIGV2ZW4gYXR0cmFjdGl2ZSB0byBhcHByb2FjaCBhIGdpcmwgbGlrZSB5b3Ugd2hv4oCZcyBzaXR0aW5nIGFsb25lIGFuZCB0cnkgdG8gbWFrZSBhIG1vdmUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfOWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtGb3IgdXMsIGl04oCZcyBldmVuIGF0dHJhY3RpdmUgdG8gYXBwcm9hY2ggYSBnaXJsIGxpa2UgeW91IHdob+KAmXMgc2l0dGluZyBhbG9uZSBhbmQgdHJ5IHRvIG1ha2UgYSBtb3ZlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM185YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNDQiIG5hbWU9IkhhaWxleUNoYXRFcDNfOWEiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwzMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM185YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0ZvciB1cywgaXTigJlzIGV2ZW4gYXR0cmFjdGl2ZSB0byBhcHByb2FjaCBhIGdpcmwgbGlrZSB5b3Ugd2hv4oCZcyBzaXR0aW5nIGFsb25lIGFuZCB0cnkgdG8gbWFrZSBhIG1vdmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Rm9yIHVzLCBpdOKAmXMgZXZlbiBhdHRyYWN0aXZlIHRvIGFwcHJvYWNoIGEgZ2lybCBsaWtlIHlvdSB3aG/igJlzIHNpdHRpbmcgYWxvbmUgYW5kIHRyeSB0byBtYWtlIGEgbW92ZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0ZvciB1cywgaXTigJlzIGV2ZW4gYXR0cmFjdGl2ZSB0byBhcHByb2FjaCBhIGdpcmwgbGlrZSB5b3Ugd2hv4oCZcyBzaXR0aW5nIGFsb25lIGFuZCB0cnkgdG8gbWFrZSBhIG1vdmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7V2VsbCwgdGhlcmUgd2FzIGEgYml0IG9mIHRoYXQmcXVvdDsgJnF1b3Q7WG9sa2tXb2xra3FvbGtreW9sa2t3b2xra0ZvbGtraG9sa2tUb2xra1lvbGtrY29sa2t5b2xra0VvbGtrZ29sa2tUb2xra0hvbGtrTCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dlbGwsIHRoZXJlIHdhcyBhIGJpdCBvZiB0aGF0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7V2VsbCwgdGhlcmUgd2FzIGEgYml0IG9mIHRoYXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS42cyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGhhaWxleV9yZWwgPSAmcXVvdDsxJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtSb2xra0lvbGtrUG9sa2tjb2xra0VvbGtra29sa2tsb2xra2gmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuNnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I1JvbGtrSW9sa2tQb2xra2NvbGtrRW9sa2trb2xra2xvbGtraCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJbnRlcmVzdGluZywgdGVsbCBtZSBtb3JlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzEwYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0ludGVyZXN0aW5nLCB0ZWxsIG1lIG1vcmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzEwYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNDUiIG5hbWU9IkhhaWxleUNoYXRFcDNfMTBhIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsMzEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMTBhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SW50ZXJlc3RpbmcsIHRlbGwgbWUgbW9yZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJbnRlcmVzdGluZywgdGVsbCBtZSBtb3JlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SW50ZXJlc3RpbmcsIHRlbGwgbWUgbW9yZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjVzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtXZWxsLCBhIGd1eSBjYW1lIHVwIHRvIG1lIG91dCBvZiBub3doZXJlIGFuZCBvZmZlcmVkIG1lIGEgZHJpbmsmcXVvdDsgJnF1b3Q7bW9sa2tDb2xra21vbGtrQm9sa2tyb2xra3ZvbGtrZm9sa2tIb2xra1ZvbGtrdG9sa2tpb2xra2VvbGtrdW9sa2tpb2xra3BvbGtrTCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dlbGwsIGEgZ3V5IGNhbWUgdXAgdG8gbWUgb3V0IG9mIG5vd2hlcmUgYW5kIG9mZmVyZWQgbWUgYSBkcmluayZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1dlbGwsIGEgZ3V5IGNhbWUgdXAgdG8gbWUgb3V0IG9mIG5vd2hlcmUgYW5kIG9mZmVyZWQgbWUgYSBkcmluayZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjRzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuM3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0hlIGFsc28gYXNrZWQgbWUgdG8gZGFuY2UsIGJ1dCBJIHRvbGQgaGltIEkgd2FzIGJ1c3kmcXVvdDsgJnF1b3Q7V29sa2tjb2xra2JvbGtrem9sa2tUb2xra2FvbGtrcm9sa2tVb2xra3dvbGtrWW9sa2tSb2xra0pvbGtrY29sa2tqb2xra0xvbGtrSCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hlIGFsc28gYXNrZWQgbWUgdG8gZGFuY2UsIGJ1dCBJIHRvbGQgaGltIEkgd2FzIGJ1c3kmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtIZSBhbHNvIGFza2VkIG1lIHRvIGRhbmNlLCBidXQgSSB0b2xkIGhpbSBJIHdhcyBidXN5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS40cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SXQgd2FzIGxpa2UgYSByZWZsZXgsIEkgZGlkbuKAmXQgZXZlbiB0aGluayBhYm91dCB3aGF0IEkgd2FzIHNheWluZyZxdW90OyAmcXVvdDtwb2xra1FvbGtrR29sa2tSb2xra0hvbGtrU29sa2tkb2xra0JvbGtreW9sa2tKb2xra2NvbGtrZW9sa2tJb2xra1VvbGtrY29sa2tWJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXQgd2FzIGxpa2UgYSByZWZsZXgsIEkgZGlkbuKAmXQgZXZlbiB0aGluayBhYm91dCB3aGF0IEkgd2FzIHNheWluZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0l0IHdhcyBsaWtlIGEgcmVmbGV4LCBJIGRpZG7igJl0IGV2ZW4gdGhpbmsgYWJvdXQgd2hhdCBJIHdhcyBzYXlpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNi4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIGRvbuKAmXQga25vdyBpZiB0aGF0IHdhcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8mcXVvdDsgJnF1b3Q7Zm9sa2tKb2xra3dvbGtrQ29sa2tWb2xra0NvbGtrb29sa2tjb2xra2xvbGtrQ29sa2tlb2xra3dvbGtrUm9sa2tBb2xra3BvbGtrQSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZG9u4oCZdCBrbm93IGlmIHRoYXQgd2FzIHRoZSByaWdodCB0aGluZyB0byBkbyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgZG9u4oCZdCBrbm93IGlmIHRoYXQgd2FzIHRoZSByaWdodCB0aGluZyB0byBkbyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7UG9sa2tZb2xra1ZvbGtrR29sa2tNb2xra2tvbGtrUW9sa2tUJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA4LjBzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNQb2xra1lvbGtrVm9sa2tHb2xra01vbGtra29sa2tRb2xra1QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WW914oCZcmUgYSBnaXJsLCBzbyB5b3UgZ3V5cyBhcmUgdXN1YWxseSBpbiBjb250cm9sJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzgmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3XigJlyZSBhIGdpcmwsIHNvIHlvdSBndXlzIGFyZSB1c3VhbGx5IGluIGNvbnRyb2wmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzgmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjQ2IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzdiIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsMzEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfN2ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtEb27igJl0IG92ZXJ0aGluayBpdCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEb27igJl0IG92ZXJ0aGluayBpdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0RvbuKAmXQgb3ZlcnRoaW5rIGl0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1FvbGtrdW9sa2tLb2xra3ZvbGtrVW9sa2tlb2xra0VvbGtrRyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjUW9sa2t1b2xra0tvbGtrdm9sa2tVb2xra2VvbGtrRW9sa2tHJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoZXnigJlyZSBzdGFyaW5nIGJlY2F1c2UgeW914oCZcmUgYmVhdXRpZnVsJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaGV54oCZcmUgc3RhcmluZyBiZWNhdXNlIHlvdeKAmXJlIGJlYXV0aWZ1bCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfN2JfMSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjUW9sa2t1b2xra0tvbGtrdm9sa2tVb2xra2VvbGtrRW9sa2tHJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0l0JiMzOTtzIGFsbCBpbiB5b3VyIGhlYWQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfN2JfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0l0JiMzOTtzIGFsbCBpbiB5b3VyIGhlYWQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjQ3IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzdiXzEiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCwzMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM183Yl8xJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhleeKAmXJlIHN0YXJpbmcgYmVjYXVzZSB5b3XigJlyZSBiZWF1dGlmdWwmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhleeKAmXJlIHN0YXJpbmcgYmVjYXVzZSB5b3XigJlyZSBiZWF1dGlmdWwmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGV54oCZcmUgc3RhcmluZyBiZWNhdXNlIHlvdeKAmXJlIGJlYXV0aWZ1bCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkaGFpbGV5X3JlbCA9ICZxdW90OzEmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7U29sa2tqb2xra2JvbGtrZG9sa2tob2xra01vbGtrcW9sa2tZJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNTb2xra2pvbGtrYm9sa2tkb2xra2hvbGtrTW9sa2txb2xra1kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SXTigJlzIG5vcm1hbCBmb3IgZ3V5cyB0byBsb29rIGF0IGEgZ2lybCBsaWtlIHlvdSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM183Yl8xXzEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJdOKAmXMgbm9ybWFsIGZvciBndXlzIHRvIGxvb2sgYXQgYSBnaXJsIGxpa2UgeW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM183Yl8xXzEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjQ4IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzdiXzIiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSwzMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM183Yl8yJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SXTigJlzIGFsbCBpbiB5b3VyIGhlYWQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXTigJlzIGFsbCBpbiB5b3VyIGhlYWQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJdOKAmXMgYWxsIGluIHlvdXIgaGVhZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtmb2xra1RvbGtrRm9sa2ttb2xra2pvbGtrVW9sa2tWb2xra0smcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I2ZvbGtrVG9sa2tGb2xra21vbGtram9sa2tVb2xra1ZvbGtrSyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDvCoEl04oCZcyBub3JtYWwgdG8gZmVlbCB3YXRjaGVkIHdoZW4geW91IHN0ZXAgb3V0IG9mIHlvdXIgY29tZm9ydCB6b25lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzJfMSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O8KgSXTigJlzIG5vcm1hbCB0byBmZWVsIHdhdGNoZWQgd2hlbiB5b3Ugc3RlcCBvdXQgb2YgeW91ciBjb21mb3J0IHpvbmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzJfMSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNDkiIG5hbWU9IkhhaWxleUNoYXRFcDNfN2JfMV8xIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDMxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzFfMSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0l04oCZcyBub3JtYWwgZm9yIGd1eXMgdG8gbG9vayBhdCBhIGdpcmwgbGlrZSB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXTigJlzIG5vcm1hbCBmb3IgZ3V5cyB0byBsb29rIGF0IGEgZ2lybCBsaWtlIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0l04oCZcyBub3JtYWwgZm9yIGd1eXMgdG8gbG9vayBhdCBhIGdpcmwgbGlrZSB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7SW9sa2t1b2xra1RvbGtrbW9sa2tSb2xra0ZvbGtrc29sa2tKJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNJb2xra3VvbGtrVG9sa2ttb2xra1JvbGtrRm9sa2tzb2xra0omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhhdOKAmXMgd2h5IHlvdSBzaG91bGQgZ28gb3V0IG1vcmUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfN2JfMV8zJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhhdOKAmXMgd2h5IHlvdSBzaG91bGQgZ28gb3V0IG1vcmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzFfMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNTAiIG5hbWU9IkhhaWxleUNoYXRFcDNfN2JfMV8zIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDMxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzFfMyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RoYXTigJlzIHdoeSB5b3Ugc2hvdWxkIGdvIG91dCBtb3JlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYXTigJlzIHdoeSB5b3Ugc2hvdWxkIGdvIG91dCBtb3JlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhhdOKAmXMgd2h5IHlvdSBzaG91bGQgZ28gb3V0IG1vcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7VGhhbmsgeW91LCAkbmFtZSZxdW90OyAmcXVvdDtKb2xra0pvbGtrWG9sa2tMb2xra3NvbGtrdm9sa2tUb2xra3ZvbGtrcm9sa2tIb2xra3dvbGtrTW9sa2t5b2xra0VvbGtrTG9sa2t0JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhbmsgeW91LCAkbmFtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RoYW5rIHlvdSwgJG5hbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4ycyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjNzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtUaG91Z2ggSeKAmW0gc3VyZSB5b3Ugc2F5IHRoYXQgdG8gYWxsIHRoZSBnaXJscyBiZWNhdXNlIHlvdeKAmXJlIGtpbmQmcXVvdDsgJnF1b3Q7aW9sa2txb2xra3lvbGtrS29sa2trb2xra0tvbGtrbG9sa2tzb2xra2lvbGtrYm9sa2tYb2xra2dvbGtrWW9sa2t6b2xra3lvbGtrbCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1Rob3VnaCBJ4oCZbSBzdXJlIHlvdSBzYXkgdGhhdCB0byBhbGwgdGhlIGdpcmxzIGJlY2F1c2UgeW914oCZcmUga2luZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1Rob3VnaCBJ4oCZbSBzdXJlIHlvdSBzYXkgdGhhdCB0byBhbGwgdGhlIGdpcmxzIGJlY2F1c2UgeW914oCZcmUga2luZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7aG9sa2tPb2xra1hvbGtrTG9sa2tvb2xra3ZvbGtrZG9sa2tFJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjFzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNob2xra09vbGtrWG9sa2tMb2xra29vbGtrdm9sa2tkb2xra0UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SeKAmW0gc2F5aW5nIGl0IGJlY2F1c2UgaXTigJlzIHRydWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfN2JfMV80JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SeKAmW0gc2F5aW5nIGl0IGJlY2F1c2UgaXTigJlzIHRydWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzFfNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNTEiIG5hbWU9IkhhaWxleUNoYXRFcDNfN2JfMV80IiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMzIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfN2JfMV80JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SeKAmW0gc2F5aW5nIGl0IGJlY2F1c2UgaXTigJlzIHRydWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gc2F5aW5nIGl0IGJlY2F1c2UgaXTigJlzIHRydWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJ4oCZbSBzYXlpbmcgaXQgYmVjYXVzZSBpdOKAmXMgdHJ1ZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIGRvbuKAmXQga25vdyB3aGF0IHRvIHNheSBpbiBtb21lbnRzIGxpa2UgdGhpcyZxdW90OyAmcXVvdDtDb2xra3pvbGtrYW9sa2tzb2xra3hvbGtrem9sa2t0b2xra29vbGtrZm9sa2tPb2xra01vbGtrVW9sa2tub2xra05vbGtrSG9sa2tvJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBkb27igJl0IGtub3cgd2hhdCB0byBzYXkgaW4gbW9tZW50cyBsaWtlIHRoaXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIGRvbuKAmXQga25vdyB3aGF0IHRvIHNheSBpbiBtb21lbnRzIGxpa2UgdGhpcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0nigJltIHNvIHNvY2lhbGx5IGF3a3dhcmQmcXVvdDsgJnF1b3Q7dG9sa2t3b2xra2NvbGtrZ29sa2tob2xra3lvbGtraW9sa2tGb2xra3FvbGtrT29sa2t6b2xra3FvbGtrRG9sa2twb2xra0JvbGtrWCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJltIHNvIHNvY2lhbGx5IGF3a3dhcmQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJ4oCZbSBzbyBzb2NpYWxseSBhd2t3YXJkJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuOXMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfZG91YnQud2VicCZxdW90OyB0cnVlICZxdW90O0hhaWxleSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2RvdWJ0LndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtib2xra1dvbGtrZ29sa2tqb2xra2pvbGtrSm9sa2tkb2xra1kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuOXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I2JvbGtrV29sa2tnb2xra2pvbGtram9sa2tKb2xra2RvbGtrWSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3UgZG9u4oCZdCBoYXZlIHRvIHNheSBhbnl0aGluZywgbGV04oCZcyBtb3ZlIG9uJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzFfNSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdSBkb27igJl0IGhhdmUgdG8gc2F5IGFueXRoaW5nLCBsZXTigJlzIG1vdmUgb24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzFfNSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNTIiIG5hbWU9IkhhaWxleUNoYXRFcDNfN2JfMV81IiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsMzIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfN2JfMV81JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WW91IGRvbuKAmXQgaGF2ZSB0byBzYXkgYW55dGhpbmcsIGxldOKAmXMgbW92ZSBvbiZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3UgZG9u4oCZdCBoYXZlIHRvIHNheSBhbnl0aGluZywgbGV04oCZcyBtb3ZlIG9uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WW91IGRvbuKAmXQgaGF2ZSB0byBzYXkgYW55dGhpbmcsIGxldOKAmXMgbW92ZSBvbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtJb2xra1JvbGtrRm9sa2t4b2xra3JvbGtrYm9sa2twb2xra08mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I0lvbGtrUm9sa2tGb2xra3hvbGtrcm9sa2tib2xra3BvbGtrTyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUZWxsIG1lLCBob3figJlzIGV2ZXJ5dGhpbmcgZ29pbmcgb3ZlciB0aGVyZT8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfN2JfMV82JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGVsbCBtZSwgaG934oCZcyBldmVyeXRoaW5nIGdvaW5nIG92ZXIgdGhlcmU/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM183Yl8xXzYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjUzIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzdiXzFfNiIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDMyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzFfNiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RlbGwgbWUsIGhvd+KAmXMgZXZlcnl0aGluZyBnb2luZyBvdmVyIHRoZXJlPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUZWxsIG1lLCBob3figJlzIGV2ZXJ5dGhpbmcgZ29pbmcgb3ZlciB0aGVyZT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUZWxsIG1lLCBob3figJlzIGV2ZXJ5dGhpbmcgZ29pbmcgb3ZlciB0aGVyZT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS41cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7V2VsbCwgYSBndXkgY2FtZSB1cCB0byBtZSBvdXQgb2Ygbm93aGVyZSBhbmQgb2ZmZXJlZCBtZSBhIGRyaW5rJnF1b3Q7ICZxdW90O0pvbGtrSm9sa2tMb2xra0dvbGtrSW9sa2tvb2xra2lvbGtrRW9sa2tSb2xra3lvbGtrZm9sa2tvb2xra2xvbGtrQm9sa2tpb2xra2QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZWxsLCBhIGd1eSBjYW1lIHVwIHRvIG1lIG91dCBvZiBub3doZXJlIGFuZCBvZmZlcmVkIG1lIGEgZHJpbmsmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtXZWxsLCBhIGd1eSBjYW1lIHVwIHRvIG1lIG91dCBvZiBub3doZXJlIGFuZCBvZmZlcmVkIG1lIGEgZHJpbmsmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi40cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjNzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtIZSBhbHNvIGFza2VkIG1lIHRvIGRhbmNlLCBidXQgSSB0b2xkIGhpbSBJIHdhcyBidXN5JnF1b3Q7ICZxdW90O0hvbGtrZG9sa2tWb2xra05vbGtrdG9sa2t1b2xra0ZvbGtrbW9sa2tQb2xra1pvbGtra29sa2tob2xra05vbGtrT29sa2tpb2xra1YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZSBhbHNvIGFza2VkIG1lIHRvIGRhbmNlLCBidXQgSSB0b2xkIGhpbSBJIHdhcyBidXN5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SGUgYWxzbyBhc2tlZCBtZSB0byBkYW5jZSwgYnV0IEkgdG9sZCBoaW0gSSB3YXMgYnVzeSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0l0IHdhcyBsaWtlIGEgcmVmbGV4LCBJIGRpZG7igJl0IGV2ZW4gdGhpbmsgYWJvdXQgd2hhdCBJIHdhcyBzYXlpbmcmcXVvdDsgJnF1b3Q7ZW9sa2tVb2xra0pvbGtrVG9sa2tHb2xra2RvbGtrQm9sa2tMb2xra0tvbGtrZG9sa2twb2xra0lvbGtrS29sa2tDb2xra0NvbGtrRiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0l0IHdhcyBsaWtlIGEgcmVmbGV4LCBJIGRpZG7igJl0IGV2ZW4gdGhpbmsgYWJvdXQgd2hhdCBJIHdhcyBzYXlpbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJdCB3YXMgbGlrZSBhIHJlZmxleCwgSSBkaWRu4oCZdCBldmVuIHRoaW5rIGFib3V0IHdoYXQgSSB3YXMgc2F5aW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDYuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSBkb27igJl0IGtub3cgaWYgdGhhdCB3YXMgdGhlIHJpZ2h0IHRoaW5nIHRvIGRvJnF1b3Q7ICZxdW90O2RvbGtrZW9sa2tXb2xra3JvbGtrdm9sa2tlb2xra2FvbGtrTm9sa2tvb2xra2tvbGtrZm9sa2tqb2xra3JvbGtrcG9sa2tTb2xra3UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGRvbuKAmXQga25vdyBpZiB0aGF0IHdhcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIGRvbuKAmXQga25vdyBpZiB0aGF0IHdhcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3VvbGtrZm9sa2tCb2xra3FvbGtrS29sa2tWb2xra2NvbGtrZiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgOC4wcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjdW9sa2tmb2xra0JvbGtrcW9sa2tLb2xra1ZvbGtrY29sa2tmJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1lvdeKAmXJlIGEgZ2lybCwgc28geW91IGd1eXMgYXJlIHVzdWFsbHkgaW4gY29udHJvbCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM184JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WW914oCZcmUgYSBnaXJsLCBzbyB5b3UgZ3V5cyBhcmUgdXN1YWxseSBpbiBjb250cm9sJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM184JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI1NCIgbmFtZT0iSGFpbGV5Q2hhdEVwM183Yl8yXzEiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwzMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM183Yl8yXzEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDvCoEl04oCZcyBub3JtYWwgdG8gZmVlbCB3YXRjaGVkIHdoZW4geW91IHN0ZXAgb3V0IG9mIHlvdXIgY29tZm9ydCB6b25lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O8KgSXTigJlzIG5vcm1hbCB0byBmZWVsIHdhdGNoZWQgd2hlbiB5b3Ugc3RlcCBvdXQgb2YgeW91ciBjb21mb3J0IHpvbmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDvCoEl04oCZcyBub3JtYWwgdG8gZmVlbCB3YXRjaGVkIHdoZW4geW91IHN0ZXAgb3V0IG9mIHlvdXIgY29tZm9ydCB6b25lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O09vbGtrTG9sa2tab2xra2VvbGtrYm9sa2tRb2xra0xvbGtrRSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjT29sa2tMb2xra1pvbGtrZW9sa2tib2xra1FvbGtrTG9sa2tFJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0RvbuKAmXQgd29ycnksIGV2ZXJ5dGhpbmfigJlzIGZpbmUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfN2JfMl8yJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7RG9u4oCZdCB3b3JyeSwgZXZlcnl0aGluZ+KAmXMgZmluZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfN2JfMl8yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI1NSIgbmFtZT0iSGFpbGV5Q2hhdEVwM183Yl8yXzIiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCwzMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM183Yl8yXzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtEb27igJl0IHdvcnJ5LCBldmVyeXRoaW5n4oCZcyBmaW5lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0RvbuKAmXQgd29ycnksIGV2ZXJ5dGhpbmfigJlzIGZpbmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtEb27igJl0IHdvcnJ5LCBldmVyeXRoaW5n4oCZcyBmaW5lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1BhcnQgb2YgbWUgdGhpbmtzIHRoYXTigJlzIHByb2JhYmx5IHRoZSBjYXNlJnF1b3Q7ICZxdW90O3ZvbGtrTW9sa2t4b2xra2lvbGtrVm9sa2tob2xra3RvbGtram9sa2t2b2xra2xvbGtrUG9sa2tYb2xra0xvbGtram9sa2tjb2xra2gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtQYXJ0IG9mIG1lIHRoaW5rcyB0aGF04oCZcyBwcm9iYWJseSB0aGUgY2FzZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1BhcnQgb2YgbWUgdGhpbmtzIHRoYXTigJlzIHByb2JhYmx5IHRoZSBjYXNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7QnV0IEkgY2Fu4oCZdCBoZWxwIGZlZWxpbmcgc3VwZXIgZW1iYXJyYXNzZWQmcXVvdDsgJnF1b3Q7TG9sa2t3b2xra2xvbGtrWW9sa2tHb2xra2xvbGtrSG9sa2tJb2xra09vbGtrWG9sa2tJb2xra0VvbGtrbm9sa2tqb2xra21vbGtrSiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCBJIGNhbuKAmXQgaGVscCBmZWVsaW5nIHN1cGVyIGVtYmFycmFzc2VkJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QnV0IEkgY2Fu4oCZdCBoZWxwIGZlZWxpbmcgc3VwZXIgZW1iYXJyYXNzZWQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2VvbGtrSW9sa2t4b2xra0tvbGtram9sa2tyb2xra0FvbGtrZCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy4wcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjZW9sa2tJb2xra3hvbGtrS29sa2tqb2xra3JvbGtrQW9sa2tkJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoZSBtb3JlIHlvdSBleHBlcmllbmNlIG5pZ2h0cyBsaWtlIHRoaXMsIHRoZSBtb3JlIHlvdeKAmWxsIGdldCB1c2VkIHRvIGl0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzJfMyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoZSBtb3JlIHlvdSBleHBlcmllbmNlIG5pZ2h0cyBsaWtlIHRoaXMsIHRoZSBtb3JlIHlvdeKAmWxsIGdldCB1c2VkIHRvIGl0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM183Yl8yXzMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjU2IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzdiXzJfMyIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDMyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzJfMyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RoZSBtb3JlIHlvdSBleHBlcmllbmNlIG5pZ2h0cyBsaWtlIHRoaXMsIHRoZSBtb3JlIHlvdeKAmWxsIGdldCB1c2VkIHRvIGl0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoZSBtb3JlIHlvdSBleHBlcmllbmNlIG5pZ2h0cyBsaWtlIHRoaXMsIHRoZSBtb3JlIHlvdeKAmWxsIGdldCB1c2VkIHRvIGl0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhlIG1vcmUgeW91IGV4cGVyaWVuY2UgbmlnaHRzIGxpa2UgdGhpcywgdGhlIG1vcmUgeW914oCZbGwgZ2V0IHVzZWQgdG8gaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7VW9sa2tCb2xra3lvbGtrYm9sa2tIb2xra3RvbGtrTm9sa2tTJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNVb2xra0JvbGtreW9sa2tib2xra0hvbGtrdG9sa2tOb2xra1MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7U28gZG9u4oCZdCB3b3JyeSwgaXTigJlzIHBhcnQgb2YgdGhlIHByb2Nlc3MmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfN2JfMl80JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7U28gZG9u4oCZdCB3b3JyeSwgaXTigJlzIHBhcnQgb2YgdGhlIHByb2Nlc3MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzJfNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNTciIG5hbWU9IkhhaWxleUNoYXRFcDNfN2JfMl80IiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMzIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfN2JfMl80JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7U28gZG9u4oCZdCB3b3JyeSwgaXTigJlzIHBhcnQgb2YgdGhlIHByb2Nlc3MmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U28gZG9u4oCZdCB3b3JyeSwgaXTigJlzIHBhcnQgb2YgdGhlIHByb2Nlc3MmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtTbyBkb27igJl0IHdvcnJ5LCBpdOKAmXMgcGFydCBvZiB0aGUgcHJvY2VzcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjFzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtZZWFoLi4uJnF1b3Q7ICZxdW90O1pvbGtrc29sa2t3b2xra1NvbGtrR29sa2tSb2xra0xvbGtra29sa2t3b2xra29vbGtrem9sa2tNb2xra3hvbGtrZW9sa2trb2xra3ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFoLi4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WWVhaC4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgZ3Vlc3MgeW914oCZcmUgcmlnaHQmcXVvdDsgJnF1b3Q7Tm9sa2tob2xra2tvbGtrem9sa2tHb2xra1VvbGtrRG9sa2tKb2xra0lvbGtrb29sa2tzb2xra0tvbGtrRG9sa2tVb2xra3FvbGtreiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZ3Vlc3MgeW914oCZcmUgcmlnaHQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIGd1ZXNzIHlvdeKAmXJlIHJpZ2h0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SeKAmWxsIHRyeSBub3QgdG8gd29ycnkgYWJvdXQgaXQgYW55bW9yZSZxdW90OyAmcXVvdDtBb2xra21vbGtrUW9sa2tFb2xra2JvbGtrRm9sa2tJb2xra1NvbGtrQW9sa2trb2xra1NvbGtrSW9sa2tPb2xra3ZvbGtrY29sa2tJJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmWxsIHRyeSBub3QgdG8gd29ycnkgYWJvdXQgaXQgYW55bW9yZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0nigJlsbCB0cnkgbm90IHRvIHdvcnJ5IGFib3V0IGl0IGFueW1vcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0NvbGtrSG9sa2tmb2xra1ZvbGtrZW9sa2thb2xra2JvbGtrbyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjQ29sa2tIb2xra2ZvbGtrVm9sa2tlb2xra2FvbGtrYm9sa2tvJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoYXTigJlzIHRoZSByaWdodCBtaW5kc2V0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzJfNSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoYXTigJlzIHRoZSByaWdodCBtaW5kc2V0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM183Yl8yXzUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjU4IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzdiXzJfNSIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDMyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzJfNSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RoYXTigJlzIHRoZSByaWdodCBtaW5kc2V0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYXTigJlzIHRoZSByaWdodCBtaW5kc2V0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhhdOKAmXMgdGhlIHJpZ2h0IG1pbmRzZXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7em9sa2tTb2xra2RvbGtra29sa2tUb2xra0RvbGtrWm9sa2tMJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyN6b2xra1NvbGtrZG9sa2trb2xra1RvbGtrRG9sa2tab2xra0wmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QnV0IHRlbGwgbWUsIGhvd+KAmXMgZXZlcnl0aGluZyBnb2luZz8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfN2JfMl82JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QnV0IHRlbGwgbWUsIGhvd+KAmXMgZXZlcnl0aGluZyBnb2luZz8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzJfNiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNTkiIG5hbWU9IkhhaWxleUNoYXRFcDNfN2JfMl82IiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDMyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzJfNiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0J1dCB0ZWxsIG1lLCBob3figJlzIGV2ZXJ5dGhpbmcgZ29pbmc/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCB0ZWxsIG1lLCBob3figJlzIGV2ZXJ5dGhpbmcgZ29pbmc/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QnV0IHRlbGwgbWUsIGhvd+KAmXMgZXZlcnl0aGluZyBnb2luZz8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS41cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7V2VsbCwgYSBndXkgY2FtZSB1cCB0byBtZSBvdXQgb2Ygbm93aGVyZSBhbmQgb2ZmZXJlZCBtZSBhIGRyaW5rJnF1b3Q7ICZxdW90O3NvbGtrSG9sa2tqb2xra2ZvbGtraG9sa2tKb2xra1NvbGtrSm9sa2tvb2xra3BvbGtrTW9sa2tQb2xra3NvbGtrdW9sa2tub2xra2omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZWxsLCBhIGd1eSBjYW1lIHVwIHRvIG1lIG91dCBvZiBub3doZXJlIGFuZCBvZmZlcmVkIG1lIGEgZHJpbmsmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtXZWxsLCBhIGd1eSBjYW1lIHVwIHRvIG1lIG91dCBvZiBub3doZXJlIGFuZCBvZmZlcmVkIG1lIGEgZHJpbmsmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi40cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjNzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtIZSBhbHNvIGFza2VkIG1lIHRvIGRhbmNlLCBidXQgSSB0b2xkIGhpbSBJIHdhcyBidXN5JnF1b3Q7ICZxdW90O2xvbGtrdW9sa2tXb2xra3BvbGtrVW9sa2tCb2xra1JvbGtraW9sa2tvb2xra2ZvbGtrTG9sa2t6b2xra1JvbGtrdG9sa2tTb2xra3cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZSBhbHNvIGFza2VkIG1lIHRvIGRhbmNlLCBidXQgSSB0b2xkIGhpbSBJIHdhcyBidXN5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SGUgYWxzbyBhc2tlZCBtZSB0byBkYW5jZSwgYnV0IEkgdG9sZCBoaW0gSSB3YXMgYnVzeSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0l0IHdhcyBsaWtlIGEgcmVmbGV4LCBJIGRpZG7igJl0IGV2ZW4gdGhpbmsgYWJvdXQgd2hhdCBJIHdhcyBzYXlpbmcmcXVvdDsgJnF1b3Q7cW9sa2tGb2xra1FvbGtrU29sa2tQb2xra0pvbGtraW9sa2tub2xra2dvbGtrdW9sa2tIb2xra0RvbGtrR29sa2tLb2xra05vbGtrZiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0l0IHdhcyBsaWtlIGEgcmVmbGV4LCBJIGRpZG7igJl0IGV2ZW4gdGhpbmsgYWJvdXQgd2hhdCBJIHdhcyBzYXlpbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJdCB3YXMgbGlrZSBhIHJlZmxleCwgSSBkaWRu4oCZdCBldmVuIHRoaW5rIGFib3V0IHdoYXQgSSB3YXMgc2F5aW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDYuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSBkb27igJl0IGtub3cgaWYgdGhhdCB3YXMgdGhlIHJpZ2h0IHRoaW5nIHRvIGRvJnF1b3Q7ICZxdW90O2JvbGtrU29sa2tpb2xra2dvbGtrTW9sa2tRb2xra2NvbGtrTm9sa2tDb2xra29vbGtrcW9sa2tKb2xra0FvbGtrRG9sa2tNb2xra0wmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGRvbuKAmXQga25vdyBpZiB0aGF0IHdhcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIGRvbuKAmXQga25vdyBpZiB0aGF0IHdhcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3NvbGtrQW9sa2tzb2xra2dvbGtrSW9sa2tTb2xra0pvbGtrRiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgOC4wcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjc29sa2tBb2xra3NvbGtrZ29sa2tJb2xra1NvbGtrSm9sa2tGJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1lvdeKAmXJlIGEgZ2lybCwgc28geW91IGd1eXMgYXJlIHVzdWFsbHkgaW4gY29udHJvbCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM184JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WW914oCZcmUgYSBnaXJsLCBzbyB5b3UgZ3V5cyBhcmUgdXN1YWxseSBpbiBjb250cm9sJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM184JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI2MCIgbmFtZT0iSGFpbGV5Q2hhdEVwM184IiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDMyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzgmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZb3XigJlyZSBhIGdpcmwsIHNvIHlvdSBndXlzIGFyZSB1c3VhbGx5IGluIGNvbnRyb2wmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW914oCZcmUgYSBnaXJsLCBzbyB5b3UgZ3V5cyBhcmUgdXN1YWxseSBpbiBjb250cm9sJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WW914oCZcmUgYSBnaXJsLCBzbyB5b3UgZ3V5cyBhcmUgdXN1YWxseSBpbiBjb250cm9sJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0tvbGtrdG9sa2txb2xra29vbGtrTG9sa2tzb2xra3FvbGtrcCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjS29sa2t0b2xra3FvbGtrb29sa2tMb2xra3NvbGtrcW9sa2twJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1doZW4gYSBndXkgdGFsa3MgdG8geW91LCB5b3Ugc2hvdWxkIHRoaW5rIGFib3V0IHdoYXQgeW91IHJlYWxseSB3YW50IGJlZm9yZSByZXNwb25kaW5nJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzkmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXaGVuIGEgZ3V5IHRhbGtzIHRvIHlvdSwgeW91IHNob3VsZCB0aGluayBhYm91dCB3aGF0IHlvdSByZWFsbHkgd2FudCBiZWZvcmUgcmVzcG9uZGluZyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfOSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNjEiIG5hbWU9IkhhaWxleUNoYXRFcDNfOSIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDMzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtXaGVuIGEgZ3V5IHRhbGtzIHRvIHlvdSwgeW91IHNob3VsZCB0aGluayBhYm91dCB3aGF0IHlvdSByZWFsbHkgd2FudCBiZWZvcmUgcmVzcG9uZGluZyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXaGVuIGEgZ3V5IHRhbGtzIHRvIHlvdSwgeW91IHNob3VsZCB0aGluayBhYm91dCB3aGF0IHlvdSByZWFsbHkgd2FudCBiZWZvcmUgcmVzcG9uZGluZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1doZW4gYSBndXkgdGFsa3MgdG8geW91LCB5b3Ugc2hvdWxkIHRoaW5rIGFib3V0IHdoYXQgeW91IHJlYWxseSB3YW50IGJlZm9yZSByZXNwb25kaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3hvbGtrZG9sa2tSb2xra3VvbGtrWm9sa2tCb2xra0lvbGtrbCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjeG9sa2tkb2xra1JvbGtrdW9sa2tab2xra0JvbGtrSW9sa2tsJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RydXN0IG1lLCBoZeKAmWxsIHdhaXQgZm9yIHlvdXIgYW5zd2VyJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzEwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VHJ1c3QgbWUsIGhl4oCZbGwgd2FpdCBmb3IgeW91ciBhbnN3ZXImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzEwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI2MiIgbmFtZT0iSGFpbGV5Q2hhdEVwM18xMCIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDMzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzEwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VHJ1c3QgbWUsIGhl4oCZbGwgd2FpdCBmb3IgeW91ciBhbnN3ZXImcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VHJ1c3QgbWUsIGhl4oCZbGwgd2FpdCBmb3IgeW91ciBhbnN3ZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUcnVzdCBtZSwgaGXigJlsbCB3YWl0IGZvciB5b3VyIGFuc3dlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJ4oCZbGwgdHJ5JnF1b3Q7ICZxdW90O1FvbGtrcm9sa2tKb2xra0NvbGtrYm9sa2tZb2xra0xvbGtrRG9sa2tHb2xra3RvbGtrVm9sa2tvb2xra0FvbGtrbm9sa2ttb2xra1QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbGwgdHJ5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SeKAmWxsIHRyeSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1Rob3VnaCBubyBvbmUgZWxzZSBoYXMgYXBwcm9hY2hlZCBtZSZxdW90OyAmcXVvdDtHb2xra1NvbGtrUW9sa2t3b2xra1ZvbGtrUW9sa2tIb2xra1NvbGtrR29sa2tNb2xra0xvbGtrWG9sa2tGb2xra0RvbGtrUm9sa2tyJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhvdWdoIG5vIG9uZSBlbHNlIGhhcyBhcHByb2FjaGVkIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhvdWdoIG5vIG9uZSBlbHNlIGhhcyBhcHByb2FjaGVkIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS40cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSBzZWUgYSBsb3Qgb2YgZ3JvdXBzIG9mIGdpcmxzLCBhbmQgSSBraW5kIG9mIGVudnkgdGhlbSZxdW90OyAmcXVvdDtBb2xra1NvbGtrdW9sa2t5b2xra1FvbGtrR29sa2tWb2xra21vbGtrRG9sa2tUb2xra3NvbGtrWm9sa2tDb2xra1ZvbGtrbG9sa2twJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBzZWUgYSBsb3Qgb2YgZ3JvdXBzIG9mIGdpcmxzLCBhbmQgSSBraW5kIG9mIGVudnkgdGhlbSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgc2VlIGEgbG90IG9mIGdyb3VwcyBvZiBnaXJscywgYW5kIEkga2luZCBvZiBlbnZ5IHRoZW0mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC40cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtUaGV5IHNlZW0gdG8gYmUgaGF2aW5nIGZ1biB0b2dldGhlciZxdW90OyAmcXVvdDtkb2xra1JvbGtrbG9sa2tRb2xra1hvbGtrdW9sa2tDb2xra2VvbGtra29sa2tOb2xra0tvbGtrV29sa2tPb2xra0pvbGtrU29sa2tWJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhleSBzZWVtIHRvIGJlIGhhdmluZyBmdW4gdG9nZXRoZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGV5IHNlZW0gdG8gYmUgaGF2aW5nIGZ1biB0b2dldGhlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7QW9sa2tlb2xra2JvbGtrTW9sa2tNb2xra29vbGtrQW9sa2tQJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA1LjdzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNBb2xra2VvbGtrYm9sa2tNb2xra01vbGtrb29sa2tBb2xra1AmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WW91IGtub3csIHlvdSBjb3VsZCB0cnkgYXBwcm9hY2hpbmcgb25lIG9mIHRob3NlIGdyb3VwcyBhbmQgbWFraW5nIGZyaWVuZHMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMTEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3Uga25vdywgeW91IGNvdWxkIHRyeSBhcHByb2FjaGluZyBvbmUgb2YgdGhvc2UgZ3JvdXBzIGFuZCBtYWtpbmcgZnJpZW5kcyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMTEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjYzIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzExIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsMzM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMTEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZb3Uga25vdywgeW91IGNvdWxkIHRyeSBhcHByb2FjaGluZyBvbmUgb2YgdGhvc2UgZ3JvdXBzIGFuZCBtYWtpbmcgZnJpZW5kcyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3Uga25vdywgeW91IGNvdWxkIHRyeSBhcHByb2FjaGluZyBvbmUgb2YgdGhvc2UgZ3JvdXBzIGFuZCBtYWtpbmcgZnJpZW5kcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1lvdSBrbm93LCB5b3UgY291bGQgdHJ5IGFwcHJvYWNoaW5nIG9uZSBvZiB0aG9zZSBncm91cHMgYW5kIG1ha2luZyBmcmllbmRzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgZG9u4oCZdCBrbm93LCB0aGUgbXVzaWMgaXMgdG9vIGxvdWQmcXVvdDsgJnF1b3Q7em9sa2tlb2xra1hvbGtrbG9sa2tOb2xra1RvbGtrU29sa2tzb2xra1VvbGtrZm9sa2txb2xra1RvbGtrT29sa2tib2xra3FvbGtrWSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZG9u4oCZdCBrbm93LCB0aGUgbXVzaWMgaXMgdG9vIGxvdWQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIGRvbuKAmXQga25vdywgdGhlIG11c2ljIGlzIHRvbyBsb3VkJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSBkb3VidCB3ZeKAmWQgZXZlbiBiZSBhYmxlIHRvIGhhdmUgYSBjb252ZXJzYXRpb24mcXVvdDsgJnF1b3Q7b29sa2tFb2xra1NvbGtrc29sa2tDb2xra1NvbGtrRW9sa2tab2xra3FvbGtrQW9sa2tnb2xra2pvbGtrQm9sa2t2b2xra0lvbGtrTSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZG91YnQgd2XigJlkIGV2ZW4gYmUgYWJsZSB0byBoYXZlIGEgY29udmVyc2F0aW9uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSBkb3VidCB3ZeKAmWQgZXZlbiBiZSBhYmxlIHRvIGhhdmUgYSBjb252ZXJzYXRpb24mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtPaCwgdGhlcmXigJlzIHRoYXQgZ3V5IGFnYWluJnF1b3Q7ICZxdW90O0dvbGtra29sa2tlb2xra3lvbGtrZG9sa2tRb2xra1dvbGtrRG9sa2tSb2xra2ZvbGtrVG9sa2tsb2xra2tvbGtrTW9sa2t4b2xra3omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPaCwgdGhlcmXigJlzIHRoYXQgZ3V5IGFnYWluJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7T2gsIHRoZXJl4oCZcyB0aGF0IGd1eSBhZ2FpbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7RW9sa2tTb2xra3NvbGtrdG9sa2tXb2xra3NvbGtrZm9sa2thJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjRzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNFb2xra1NvbGtrc29sa2t0b2xra1dvbGtrc29sa2tmb2xra2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7V2hhdCBndXk/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzEyJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7V2hhdCBndXk/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18xMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNjQiIG5hbWU9IkhhaWxleUNoYXRFcDNfMTIiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwzMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18xMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1doYXQgZ3V5PyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXaGF0IGd1eT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtXaGF0IGd1eT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7VGhlIG9uZSB3aG8gYm91Z2h0IG1lIHRoZSBkcmluayZxdW90OyAmcXVvdDtlb2xra2JvbGtrWm9sa2tzb2xra3JvbGtrUW9sa2t1b2xra0tvbGtrSG9sa2tXb2xra09vbGtrQW9sa2tmb2xra1FvbGtrcm9sa2tFJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhlIG9uZSB3aG8gYm91Z2h0IG1lIHRoZSBkcmluayZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RoZSBvbmUgd2hvIGJvdWdodCBtZSB0aGUgZHJpbmsmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3dvbGtrQ29sa2tJb2xra01vbGtrY29sa2trb2xra2dvbGtrTSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjd29sa2tDb2xra0lvbGtrTW9sa2tjb2xra2tvbGtrZ29sa2tNJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0nigJltIGN1cmlvdXMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMTMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJ4oCZbSBjdXJpb3VzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18xMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNjUiIG5hbWU9IkhhaWxleUNoYXRFcDNfMTMiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCwzMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18xMyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0nigJltIGN1cmlvdXMmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gY3VyaW91cyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0nigJltIGN1cmlvdXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Tm9sa2tTb2xra2tvbGtrUm9sa2tLb2xra3pvbGtrcW9sa2tDJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNOb2xra1NvbGtra29sa2tSb2xra0tvbGtrem9sa2txb2xra0MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7U2hvdyBtZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18xNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1Nob3cgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzE0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI2NiIgbmFtZT0iSGFpbGV5Q2hhdEVwM18xNCIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDMzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzE0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7U2hvdyBtZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTaG93IG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7U2hvdyBtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtCdXQgd2hhdCBzaG91bGQgSSBkbz8mcXVvdDsgJnF1b3Q7Y29sa2t2b2xra25vbGtrSW9sa2tib2xra0tvbGtrS29sa2twb2xra1lvbGtrS29sa2tMb2xra0xvbGtrQ29sa2t3b2xra25vbGtrQyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCB3aGF0IHNob3VsZCBJIGRvPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0J1dCB3aGF0IHNob3VsZCBJIGRvPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjRzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1Rha2UgYSBwaWN0dXJlPyZxdW90OyAmcXVvdDtob2xra0FvbGtrUW9sa2t3b2xra2pvbGtrSm9sa2tKb2xra09vbGtrT29sa2tyb2xra3dvbGtrVW9sa2t1b2xra0lvbGtrTm9sa2tRJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGFrZSBhIHBpY3R1cmU/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGFrZSBhIHBpY3R1cmU/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtCb2xra0NvbGtrRm9sa2tCb2xra05vbGtrbm9sa2tOb2xra2smcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I0JvbGtrQ29sa2tGb2xra0JvbGtrTm9sa2tub2xra05vbGtrayZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZZWFoLCBoZSB3b27igJl0IGV2ZW4gbm90aWNlLCB0cnVzdCBtZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18xNSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1llYWgsIGhlIHdvbuKAmXQgZXZlbiBub3RpY2UsIHRydXN0IG1lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18xNSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNjciIG5hbWU9IkhhaWxleUNoYXRFcDNfMTUiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCwzMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18xNSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1llYWgsIGhlIHdvbuKAmXQgZXZlbiBub3RpY2UsIHRydXN0IG1lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1llYWgsIGhlIHdvbuKAmXQgZXZlbiBub3RpY2UsIHRydXN0IG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WWVhaCwgaGUgd29u4oCZdCBldmVuIG5vdGljZSwgdHJ1c3QgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjFzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtPa2F5Li4uJnF1b3Q7ICZxdW90O3NvbGtrQW9sa2tGb2xra25vbGtrUG9sa2tub2xra0tvbGtrQW9sa2tQb2xra0pvbGtrTG9sa2tlb2xra0RvbGtrTm9sa2tvb2xra1cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPa2F5Li4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7T2theS4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjVzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2ltZyAmcXVvdDthc3NldHMvaW1nL2VwMy9oYWlsZXlfcGhvdG9fNC53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7bW9sa2tnb2xra3RvbGtrRW9sa2t6b2xra1lvbGtrRm9sa2tVb2xra2RvbGtrRm9sa2t0b2xra2hvbGtrbm9sa2tHb2xra3BvbGtrcCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMiwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZXAzL2hhaWxleV9waG90b180LndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRwaG90b3MucHVzaCgmcXVvdDthc3NldHMvaW1nL2VwMy9oYWlsZXlfcGhvdG9fNC53ZWJwJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1doYXQgc2hvdWxkIEkgZG8/JnF1b3Q7ICZxdW90O0ZvbGtrYm9sa2tib2xra2lvbGtreW9sa2tkb2xra3lvbGtrbG9sa2tNb2xra1FvbGtrUm9sa2tUb2xra2tvbGtraW9sa2tQb2xra1MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXaGF0IHNob3VsZCBJIGRvPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1doYXQgc2hvdWxkIEkgZG8/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtWb2xra0dvbGtraW9sa2ttb2xra1BvbGtreG9sa2tab2xra1cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuNXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I1ZvbGtrR29sa2tpb2xra21vbGtrUG9sa2t4b2xra1pvbGtrVyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtHbyB0YWxrIHRvIGhpbSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18xNmEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtHbyB0YWxrIHRvIGhpbSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMTZhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNWb2xra0dvbGtraW9sa2ttb2xra1BvbGtreG9sa2tab2xra1cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7TmFoLCBJIGRvbiYjMzk7dCBsaWtlIHRoYXQgZ3V5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzE2YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O05haCwgSSBkb24mIzM5O3QgbGlrZSB0aGF0IGd1eSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMTZiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI2OCIgbmFtZT0iSGFpbGV5Q2hhdEVwM18xNmEiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSwzMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18xNmEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtHbyB0YWxrIHRvIGhpbSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtHbyB0YWxrIHRvIGhpbSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0dvIHRhbGsgdG8gaGltJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRoYWlsZXlfdGFsa18wMSA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7UW9sa2t3b2xra1RvbGtrU29sa2tob2xra3pvbGtrcG9sa2tkJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNRb2xra3dvbGtrVG9sa2tTb2xra2hvbGtrem9sa2twb2xra2QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SGUgaGFzIGFscmVhZHkgc2hvd24gaW50ZXJlc3QgaW4geW91JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzE3YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0hlIGhhcyBhbHJlYWR5IHNob3duIGludGVyZXN0IGluIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMTdhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI2OSIgbmFtZT0iSGFpbGV5Q2hhdEVwM18xNmIiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsMzM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMTZiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TmFoLCBJIGRvbuKAmXQgbGlrZSB0aGF0IGd1eSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtOYWgsIEkgZG9u4oCZdCBsaWtlIHRoYXQgZ3V5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7TmFoLCBJIGRvbuKAmXQgbGlrZSB0aGF0IGd1eSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkaGFpbGV5X3RhbGtfMDEgPSBmYWxzZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtPb2xra0FvbGtrU29sa2trb2xra2dvbGtrU29sa2tMb2xra2wmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I09vbGtrQW9sa2tTb2xra2tvbGtrZ29sa2tTb2xra0xvbGtrbCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtCZXR0ZXIgd2FpdCBmb3Igc29tZW9uZSBlbHNlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzE3YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0JldHRlciB3YWl0IGZvciBzb21lb25lIGVsc2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzE3YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNzAiIG5hbWU9IkhhaWxleUNoYXRFcDNfMTdhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDMzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzE3YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0hlIGhhcyBhbHJlYWR5IHNob3duIGludGVyZXN0IGluIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZSBoYXMgYWxyZWFkeSBzaG93biBpbnRlcmVzdCBpbiB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtIZSBoYXMgYWxyZWFkeSBzaG93biBpbnRlcmVzdCBpbiB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7VG9sa2tkb2xra2lvbGtrZG9sa2tCb2xra0lvbGtrV29sa2tMJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNUb2xra2RvbGtraW9sa2tkb2xra0JvbGtrSW9sa2tXb2xra0wmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7U28geW914oCZdmUgYWxyZWFkeSBnb3QgdGhlIHVwcGVyIGhhbmQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMThhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7U28geW914oCZdmUgYWxyZWFkeSBnb3QgdGhlIHVwcGVyIGhhbmQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzE4YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNzEiIG5hbWU9IkhhaWxleUNoYXRFcDNfMThhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMzQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMThhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7U28geW914oCZdmUgYWxyZWFkeSBnb3QgdGhlIHVwcGVyIGhhbmQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U28geW914oCZdmUgYWxyZWFkeSBnb3QgdGhlIHVwcGVyIGhhbmQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtTbyB5b3XigJl2ZSBhbHJlYWR5IGdvdCB0aGUgdXBwZXIgaGFuZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtCdXQgc2hvdWxkIEkganVzdCB3YWxrIHVwIHRvIGhpbT8mcXVvdDsgJnF1b3Q7Zm9sa2tIb2xra21vbGtrZW9sa2ttb2xra0FvbGtrVm9sa2tYb2xra2JvbGtrQW9sa2tYb2xra3JvbGtrRm9sa2tWb2xra1BvbGtrZiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCBzaG91bGQgSSBqdXN0IHdhbGsgdXAgdG8gaGltPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0J1dCBzaG91bGQgSSBqdXN0IHdhbGsgdXAgdG8gaGltPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1doYXQgc2hvdWxkIEkgc2F5PyZxdW90OyAmcXVvdDtsb2xra3pvbGtrdG9sa2tDb2xra1pvbGtraW9sa2tYb2xra0FvbGtrWm9sa2tzb2xra1NvbGtreW9sa2tKb2xra3lvbGtrWW9sa2t3JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2hhdCBzaG91bGQgSSBzYXk/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7V2hhdCBzaG91bGQgSSBzYXk/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt6b2xra1hvbGtraG9sa2t3b2xra1JvbGtrZW9sa2txb2xra2gmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuN3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3pvbGtrWG9sa2tob2xra3dvbGtrUm9sa2tlb2xra3FvbGtraCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIHRoaW5rIHlvdXIgcHJlc2VuY2UgYWxvbmUgd2lsbCBkbyB0aGUgcmVzdCBpZiB5b3UgYXBwcm9hY2ggaGltJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzE5YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgdGhpbmsgeW91ciBwcmVzZW5jZSBhbG9uZSB3aWxsIGRvIHRoZSByZXN0IGlmIHlvdSBhcHByb2FjaCBoaW0mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzE5YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNzIiIG5hbWU9IkhhaWxleUNoYXRFcDNfMTlhIiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsMzQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMTlhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSB0aGluayB5b3VyIHByZXNlbmNlIGFsb25lIHdpbGwgZG8gdGhlIHJlc3QgaWYgeW91IGFwcHJvYWNoIGhpbSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHRoaW5rIHlvdXIgcHJlc2VuY2UgYWxvbmUgd2lsbCBkbyB0aGUgcmVzdCBpZiB5b3UgYXBwcm9hY2ggaGltJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSB0aGluayB5b3VyIHByZXNlbmNlIGFsb25lIHdpbGwgZG8gdGhlIHJlc3QgaWYgeW91IGFwcHJvYWNoIGhpbSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt1b2xra1RvbGtrTW9sa2t0b2xra3VvbGtrQW9sa2thb2xra3YmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3VvbGtrVG9sa2tNb2xra3RvbGtrdW9sa2tBb2xra2FvbGtrdiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3UgZG9u4oCZdCBldmVuIGhhdmUgdG8gc2F5IGFueXRoaW5nJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzIwYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdSBkb27igJl0IGV2ZW4gaGF2ZSB0byBzYXkgYW55dGhpbmcmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzIwYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNzMiIG5hbWU9IkhhaWxleUNoYXRFcDNfMjBhIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsMzQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMjBhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WW91IGRvbuKAmXQgZXZlbiBoYXZlIHRvIHNheSBhbnl0aGluZyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3UgZG9u4oCZdCBldmVuIGhhdmUgdG8gc2F5IGFueXRoaW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WW91IGRvbuKAmXQgZXZlbiBoYXZlIHRvIHNheSBhbnl0aGluZyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtPaCwgbm8uLi4mcXVvdDsgJnF1b3Q7em9sa2tyb2xra1RvbGtrSW9sa2tBb2xra1RvbGtrZG9sa2tab2xra05vbGtrVW9sa2tQb2xra3lvbGtrSG9sa2trb2xra2dvbGtrcCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09oLCBuby4uLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O09oLCBuby4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Ym9sa2tNb2xra3ZvbGtrSm9sa2tJb2xra1VvbGtrb29sa2tOJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjFzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNib2xra01vbGtrdm9sa2tKb2xra0lvbGtrVW9sa2tvb2xra04mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7V2hhdOKAmXMgd3Jvbmc/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzIxYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1doYXTigJlzIHdyb25nPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMjFhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI3NCIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yMWEiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwzNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yMWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtXaGF04oCZcyB3cm9uZz8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2hhdOKAmXMgd3Jvbmc/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7V2hhdOKAmXMgd3Jvbmc/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgZG9u4oCZdCBzZWUgaGltIGFueW1vcmUsIGhlIG11c3QgaGF2ZSBsZWZ0JnF1b3Q7ICZxdW90O0lvbGtrVW9sa2tGb2xra3VvbGtrWm9sa2tub2xra0RvbGtraW9sa2tEb2xra0lvbGtrV29sa2tUb2xra0ZvbGtrYW9sa2tLb2xra2YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGRvbuKAmXQgc2VlIGhpbSBhbnltb3JlLCBoZSBtdXN0IGhhdmUgbGVmdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgZG9u4oCZdCBzZWUgaGltIGFueW1vcmUsIGhlIG11c3QgaGF2ZSBsZWZ0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtub2xra2NvbGtrUG9sa2t0b2xra3hvbGtrWW9sa2tEb2xra1YmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuOHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I25vbGtrY29sa2tQb2xra3RvbGtreG9sa2tZb2xra0RvbGtrViZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtHbyBmaW5kIGhpbSwgaGUgY2Fu4oCZdCBiZSBmYXImcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMjJhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7R28gZmluZCBoaW0sIGhlIGNhbuKAmXQgYmUgZmFyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yMmEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjc1IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzIyYSIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDM0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzIyYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0dvIGZpbmQgaGltLCBoZSBjYW7igJl0IGJlIGZhciZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtHbyBmaW5kIGhpbSwgaGUgY2Fu4oCZdCBiZSBmYXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtHbyBmaW5kIGhpbSwgaGUgY2Fu4oCZdCBiZSBmYXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7T2theSwgSeKAmWxsIGRvIHRoYXQmcXVvdDsgJnF1b3Q7RG9sa2tNb2xra1BvbGtrWG9sa2tCb2xra1dvbGtrZm9sa2tVb2xra2RvbGtrZm9sa2tib2xra1dvbGtrZG9sa2tBb2xra0lvbGtrZSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09rYXksIEnigJlsbCBkbyB0aGF0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7T2theSwgSeKAmWxsIGRvIHRoYXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJ4oCZbGwgdGV4dCB5b3UgaWYgYW55dGhpbmcgZWxzZSBoYXBwZW5zJnF1b3Q7ICZxdW90O1JvbGtrSm9sa2tkb2xra1lvbGtrcW9sa2tzb2xra1FvbGtrVW9sa2t3b2xra2NvbGtrTW9sa2trb2xra2lvbGtrb29sa2tzb2xra28mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbGwgdGV4dCB5b3UgaWYgYW55dGhpbmcgZWxzZSBoYXBwZW5zJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SeKAmWxsIHRleHQgeW91IGlmIGFueXRoaW5nIGVsc2UgaGFwcGVucyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7dW9sa2tib2xra25vbGtraW9sa2tub2xra29vbGtrWG9sa2t0JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjZzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyN1b2xra2JvbGtrbm9sa2tpb2xra25vbGtrb29sa2tYb2xra3QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7U3VyZSwga2VlcCBtZSB1cGRhdGVkJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzIzYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1N1cmUsIGtlZXAgbWUgdXBkYXRlZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMjNhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI3NiIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yM2EiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwzNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yM2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtTdXJlLCBrZWVwIG1lIHVwZGF0ZWQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U3VyZSwga2VlcCBtZSB1cGRhdGVkJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7U3VyZSwga2VlcCBtZSB1cGRhdGVkJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtTdXJlLCBrZWVwIG1lIHVwZGF0ZWQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSA9ICZxdW90O0hhaWxleUNoYXRFcDNfMjNhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0X2hvdXIgPSAmcXVvdDsyMzoyOSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdCA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDsyMzoyOSZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7b2ZmbGluZS10ZXh0JnF1b3Q7Jmd0O0hhaWxleSBpcyBvZmZsaW5lJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdCA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMSZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtPa2F5LCBJIG5lZWQgeW91ciBoZWxwIGFnYWluJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICR0cmFuc2l0aW9uID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkdHJhbnNpdGlvblRleHQgPSAmcXVvdDtBIGZldyBtaW51dGVzIGxhdGVyJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI3NyIgbmFtZT0iSGFpbGV5Q2hhdEVwM18xN2IiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCwzNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18xN2ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtCZXR0ZXIgd2FpdCBmb3Igc29tZW9uZSBlbHNlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0JldHRlciB3YWl0IGZvciBzb21lb25lIGVsc2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtCZXR0ZXIgd2FpdCBmb3Igc29tZW9uZSBlbHNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O09rYXkgJG5hbWUsIEkgdHJ1c3QgeW91JnF1b3Q7ICZxdW90O0tvbGtrb29sa2tWb2xra0ZvbGtrSW9sa2twb2xra2RvbGtrVm9sa2tDb2xra3ZvbGtrUG9sa2tTb2xra2pvbGtra29sa2tsb2xra1YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPa2F5ICRuYW1lLCBJIHRydXN0IHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O09rYXkgJG5hbWUsIEkgdHJ1c3QgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7VGhhbmtzIGFnYWluIGZvciB0aGlzJnF1b3Q7ICZxdW90O1pvbGtrem9sa2t0b2xra3RvbGtrSW9sa2tUb2xra1JvbGtrdW9sa2tNb2xra0ZvbGtrUG9sa2t3b2xra0JvbGtrQ29sa2tJb2xra3kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGFua3MgYWdhaW4gZm9yIHRoaXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGFua3MgYWdhaW4gZm9yIHRoaXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1NvbGtraG9sa2twb2xra1JvbGtrd29sa2tOb2xra2RvbGtrdSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjU29sa2tob2xra3BvbGtrUm9sa2t3b2xra05vbGtrZG9sa2t1JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O05vIHByb2JsZW0gSGFpbGV5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzE4YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O05vIHByb2JsZW0gSGFpbGV5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18xOGImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjc4IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzE4YiIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDM0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzE4YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O05vIHByb2JsZW0gSGFpbGV5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O05vIHByb2JsZW0gSGFpbGV5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7Tm8gcHJvYmxlbSBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7bW9sa2tNb2xra3ZvbGtraW9sa2tYb2xra1BvbGtrYm9sa2tUJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNtb2xra01vbGtrdm9sa2tpb2xra1hvbGtrUG9sa2tib2xra1QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SeKAmW0gaGFwcHkgdG8gaGVscCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18xOWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJ4oCZbSBoYXBweSB0byBoZWxwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18xOWImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjc5IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzE5YiIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwzNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18xOWImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJ4oCZbSBoYXBweSB0byBoZWxwJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJltIGhhcHB5IHRvIGhlbHAmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJ4oCZbSBoYXBweSB0byBoZWxwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2JpZ19zbWlsZS53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7SGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfYmlnX3NtaWxlLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SeKAmWxsIHRleHQgeW91IGlmIGFueXRoaW5nIGVsc2UgaGFwcGVucyZxdW90OyAmcXVvdDt1b2xra3RvbGtrV29sa2tqb2xra1ZvbGtrVm9sa2tab2xra0xvbGtrVG9sa2tXb2xra3lvbGtrcG9sa2tab2xra21vbGtrSW9sa2tXJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmWxsIHRleHQgeW91IGlmIGFueXRoaW5nIGVsc2UgaGFwcGVucyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0nigJlsbCB0ZXh0IHlvdSBpZiBhbnl0aGluZyBlbHNlIGhhcHBlbnMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3pvbGtrS29sa2tXb2xra3pvbGtrdm9sa2t5b2xra0pvbGtrYiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjem9sa2tLb2xra1dvbGtrem9sa2t2b2xra3lvbGtrSm9sa2tiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1N1cmUsIGtlZXAgbWUgdXBkYXRlZCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yM2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtTdXJlLCBrZWVwIG1lIHVwZGF0ZWQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzIzYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyODAiIG5hbWU9IkhhaWxleUNoYXRFcDNfMl8xIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDM0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O09rYXksIEkgbmVlZCB5b3VyIGhlbHAgYWdhaW4mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2theSwgSSBuZWVkIHlvdXIgaGVscCBhZ2FpbiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O09rYXksIEkgbmVlZCB5b3VyIGhlbHAgYWdhaW4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuNnMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfY3J5aW5nLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9jcnlpbmcud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1NvbGtrUG9sa2tBb2xra0JvbGtrRm9sa2tib2xra1ZvbGtrayZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjU29sa2tQb2xra0FvbGtrQm9sa2tGb2xra2JvbGtrVm9sa2trJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O09mIGNvdXJzZSwgd2hhdOKAmXMgZ29pbmcgb24/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O09mIGNvdXJzZSwgd2hhdOKAmXMgZ29pbmcgb24/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyODEiIG5hbWU9IkhhaWxleUNoYXRFcDNfMl8yIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMzYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl8yJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7T2YgY291cnNlLCB3aGF04oCZcyBnb2luZyBvbj8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2YgY291cnNlLCB3aGF04oCZcyBnb2luZyBvbj8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtPZiBjb3Vyc2UsIHdoYXTigJlzIGdvaW5nIG9uPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O2lmICAkaGFpbGV5X3RhbGtfMDEgPT0gdHJ1ZSZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1lvbGtrcm9sa2t6b2xra0JvbGtrSG9sa2tlb2xra1NvbGtrRyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4xcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjWW9sa2tyb2xra3pvbGtrQm9sa2tIb2xra2VvbGtrU29sa2tHJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0RpZCB5b3UgZmluZCB0aGUgZ3V5IGZyb20gYmVmb3JlPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzNhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7RGlkIHlvdSBmaW5kIHRoZSBndXkgZnJvbSBiZWZvcmU/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzNhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjJzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtXZWxsLCB0aGVyZeKAmXMgdGhpcyBraW5kYSB3ZWlyZCBndXkgd2hvIGtlZXBzIHN0YXJpbmcgYWNyb3NzIHRoZSBiYXImcXVvdDsgJnF1b3Q7dG9sa2tQb2xra3BvbGtrTG9sa2tWb2xra1RvbGtrSG9sa2tJb2xra21vbGtreG9sa2tib2xra0dvbGtrcm9sa2txb2xra0tvbGtrYSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dlbGwsIHRoZXJl4oCZcyB0aGlzIGtpbmRhIHdlaXJkIGd1eSB3aG8ga2VlcHMgc3RhcmluZyBhY3Jvc3MgdGhlIGJhciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1dlbGwsIHRoZXJl4oCZcyB0aGlzIGtpbmRhIHdlaXJkIGd1eSB3aG8ga2VlcHMgc3RhcmluZyBhY3Jvc3MgdGhlIGJhciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Sm9sa2tDb2xra1VvbGtrdW9sa2trb2xra3BvbGtrSG9sa2tLJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjlzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNKb2xra0NvbGtrVW9sa2t1b2xra2tvbGtrcG9sa2tIb2xra0smcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7V2VpcmQgaG93PyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzYmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXZWlyZCBob3c/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI4MiIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzNhIiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsMzYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl8zYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0RpZCB5b3UgZmluZCB0aGUgZ3V5IGZyb20gYmVmb3JlPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEaWQgeW91IGZpbmQgdGhlIGd1eSBmcm9tIGJlZm9yZT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtEaWQgeW91IGZpbmQgdGhlIGd1eSBmcm9tIGJlZm9yZT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7QWN0dWFsbHksIHllcywgYnV0IGhlIHdhcyBhbHJlYWR5IHdpdGggYW5vdGhlciBnaXJsIGluIGEgY29ybmVyJnF1b3Q7ICZxdW90O3NvbGtrcW9sa2tkb2xra2NvbGtrd29sa2tsb2xra2JvbGtrY29sa2tKb2xra29vbGtrZW9sa2tJb2xra2tvbGtrSG9sa2tXb2xra0EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBY3R1YWxseSwgeWVzLCBidXQgaGUgd2FzIGFscmVhZHkgd2l0aCBhbm90aGVyIGdpcmwgaW4gYSBjb3JuZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtBY3R1YWxseSwgeWVzLCBidXQgaGUgd2FzIGFscmVhZHkgd2l0aCBhbm90aGVyIGdpcmwgaW4gYSBjb3JuZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtTbyBJIHdlbnQgYmFjayB0byB0aGUgYmFyJnF1b3Q7ICZxdW90O3lvbGtrR29sa2tab2xra2pvbGtrcW9sa2tzb2xra3dvbGtrWW9sa2t1b2xra2NvbGtrRm9sa2tub2xra0RvbGtrbm9sa2tvb2xra0wmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTbyBJIHdlbnQgYmFjayB0byB0aGUgYmFyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7U28gSSB3ZW50IGJhY2sgdG8gdGhlIGJhciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7cW9sa2tEb2xra3hvbGtraG9sa2tOb2xra0tvbGtrZG9sa2tZJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjRzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNxb2xra0RvbGtreG9sa2tob2xra05vbGtrS29sa2tkb2xra1kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7T2gsIEnigJltIHNvcnJ5IEhhaWxleSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzRhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7T2gsIEnigJltIHNvcnJ5IEhhaWxleSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMl80YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyODMiIG5hbWU9IkhhaWxleUNoYXRFcDNfMl80YSIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDM2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfNGEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtPaCwgSeKAmW0gc29ycnkgSGFpbGV5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09oLCBJ4oCZbSBzb3JyeSBIYWlsZXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtPaCwgSeKAmW0gc29ycnkgSGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1hvbGtrdG9sa2tPb2xra1VvbGtrc29sa2tWb2xra1FvbGtrVSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjWG9sa2t0b2xra09vbGtrVW9sa2tzb2xra1ZvbGtrUW9sa2tVJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0Fub3RoZXIgZ3V5IHdpbGwgY29tZSBhbG9uZywgZG9u4oCZdCB3b3JyeSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzVhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QW5vdGhlciBndXkgd2lsbCBjb21lIGFsb25nLCBkb27igJl0IHdvcnJ5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzVhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI4NCIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzVhIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMzYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl81YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0Fub3RoZXIgZ3V5IHdpbGwgY29tZSBhbG9uZywgZG9u4oCZdCB3b3JyeSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbm90aGVyIGd1eSB3aWxsIGNvbWUgYWxvbmcsIGRvbuKAmXQgd29ycnkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtBbm90aGVyIGd1eSB3aWxsIGNvbWUgYWxvbmcsIGRvbuKAmXQgd29ycnkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7V2VsbCwgdG8gYmUgaG9uZXN0Li4uJnF1b3Q7ICZxdW90O3pvbGtrTW9sa2tmb2xra3BvbGtrdW9sa2tPb2xra09vbGtrQ29sa2tSb2xra05vbGtrYm9sa2tHb2xra2JvbGtrZG9sa2txb2xra1AmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZWxsLCB0byBiZSBob25lc3QuLi4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtXZWxsLCB0byBiZSBob25lc3QuLi4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtUaGVyZeKAmXMgdGhpcyBraW5kYSB3ZWlyZCBndXkgd2hvIGtlZXBzIHN0YXJpbmcgYWNyb3NzIHRoZSBiYXImcXVvdDsgJnF1b3Q7YW9sa2tUb2xra0dvbGtrb29sa2tab2xra0dvbGtrbG9sa2tIb2xra1VvbGtrUm9sa2t6b2xra2dvbGtrdm9sa2tqb2xra0pvbGtrVyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoZXJl4oCZcyB0aGlzIGtpbmRhIHdlaXJkIGd1eSB3aG8ga2VlcHMgc3RhcmluZyBhY3Jvc3MgdGhlIGJhciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RoZXJl4oCZcyB0aGlzIGtpbmRhIHdlaXJkIGd1eSB3aG8ga2VlcHMgc3RhcmluZyBhY3Jvc3MgdGhlIGJhciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7dG9sa2tPb2xra2JvbGtrbm9sa2tlb2xra29vbGtrdW9sa2trJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjBzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyN0b2xra09vbGtrYm9sa2tub2xra2VvbGtrb29sa2t1b2xra2smcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7V2VpcmQgaG93PyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzYmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXZWlyZCBob3c/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjg1IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzJfNiIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDM2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfNiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1dlaXJkIGhvdz8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2VpcmQgaG93PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1dlaXJkIGhvdz8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC45cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSBkb27igJl0IGtub3csIGhl4oCZcyBnaXZpbmcgbWUgdGhpcyBpbnRlbnNlIGxvb2smcXVvdDsgJnF1b3Q7dG9sa2t1b2xra05vbGtrb29sa2tTb2xra3VvbGtrbW9sa2twb2xra0lvbGtrcG9sa2tZb2xra25vbGtram9sa2tOb2xra0lvbGtrbiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZG9u4oCZdCBrbm93LCBoZeKAmXMgZ2l2aW5nIG1lIHRoaXMgaW50ZW5zZSBsb29rJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSBkb27igJl0IGtub3csIGhl4oCZcyBnaXZpbmcgbWUgdGhpcyBpbnRlbnNlIGxvb2smcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtQbHVzLCBoZSBzZWVtcyBraW5kYSBvbGRlciZxdW90OyAmcXVvdDtFb2xra1dvbGtrV29sa2tQb2xra0xvbGtrem9sa2tab2xra3NvbGtrRm9sa2tyb2xra0tvbGtrUG9sa2tJb2xra0RvbGtrc29sa2tNJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7UGx1cywgaGUgc2VlbXMga2luZGEgb2xkZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtQbHVzLCBoZSBzZWVtcyBraW5kYSBvbGRlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7UW9sa2tZb2xra2xvbGtrWG9sa2tlb2xra0pvbGtrVG9sa2tzJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjlzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNRb2xra1lvbGtrbG9sa2tYb2xra2VvbGtrSm9sa2tUb2xra3MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7U2VuZCBtZSBhIHBpY3R1cmUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMl83JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7U2VuZCBtZSBhIHBpY3R1cmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfNyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyODYiIG5hbWU9IkhhaWxleUNoYXRFcDNfMl83IiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsMzYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl83JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7U2VuZCBtZSBhIHBpY3R1cmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U2VuZCBtZSBhIHBpY3R1cmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtTZW5kIG1lIGEgcGljdHVyZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtCdXQuLi4gaGXigJlzIGxpdGVyYWxseSBzdGFyaW5nIHJpZ2h0IHRoaXMgd2F5JnF1b3Q7ICZxdW90O21vbGtrRW9sa2tJb2xra0VvbGtrU29sa2tRb2xra1lvbGtrbW9sa2tUb2xra2dvbGtrZm9sa2tCb2xra1NvbGtrY29sa2tnb2xra04mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQuLi4gaGXigJlzIGxpdGVyYWxseSBzdGFyaW5nIHJpZ2h0IHRoaXMgd2F5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QnV0Li4uIGhl4oCZcyBsaXRlcmFsbHkgc3RhcmluZyByaWdodCB0aGlzIHdheSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0nigJltIHByZXRlbmRpbmcgbm90IHRvIG5vdGljZSZxdW90OyAmcXVvdDthb2xra0ZvbGtram9sa2tqb2xra09vbGtrSG9sa2tyb2xra29vbGtrS29sa2tOb2xra2JvbGtrTW9sa2tMb2xra3pvbGtrbW9sa2tsJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gcHJldGVuZGluZyBub3QgdG8gbm90aWNlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SeKAmW0gcHJldGVuZGluZyBub3QgdG8gbm90aWNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SXTigJlzIHJlYWxseSBtYWtpbmcgbWUgdW5jb21mb3J0YWJsZSZxdW90OyAmcXVvdDtub2xra1FvbGtreW9sa2tJb2xra1BvbGtrRW9sa2t1b2xra2tvbGtrUm9sa2t4b2xra0VvbGtrWG9sa2tEb2xra0JvbGtrem9sa2tKJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXTigJlzIHJlYWxseSBtYWtpbmcgbWUgdW5jb21mb3J0YWJsZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0l04oCZcyByZWFsbHkgbWFraW5nIG1lIHVuY29tZm9ydGFibGUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0pvbGtrem9sa2tEb2xra1FvbGtrdG9sa2t3b2xra0ZvbGtrYSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy44cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjSm9sa2t6b2xra0RvbGtrUW9sa2t0b2xra3dvbGtrRm9sa2thJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0Rlc2NyaWJlIGhpbSB0byBtZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzgmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtEZXNjcmliZSBoaW0gdG8gbWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfOCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyODciIG5hbWU9IkhhaWxleUNoYXRFcDNfMl84IiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMzYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl84JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7RGVzY3JpYmUgaGltIHRvIG1lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0Rlc2NyaWJlIGhpbSB0byBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0Rlc2NyaWJlIGhpbSB0byBtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtXZWxsLCBoZSBsb29rcyBsaWtlIGFuIG9sZGVyIG1hbiwgb3ZlcndlaWdodCwgSSBkb27igJl0IGtub3cmcXVvdDsgJnF1b3Q7aG9sa2t0b2xra0RvbGtrUW9sa2tGb2xra1dvbGtrT29sa2tGb2xra0xvbGtrSm9sa2tGb2xra1lvbGtrc29sa2tjb2xra3BvbGtrYSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dlbGwsIGhlIGxvb2tzIGxpa2UgYW4gb2xkZXIgbWFuLCBvdmVyd2VpZ2h0LCBJIGRvbuKAmXQga25vdyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1dlbGwsIGhlIGxvb2tzIGxpa2UgYW4gb2xkZXIgbWFuLCBvdmVyd2VpZ2h0LCBJIGRvbuKAmXQga25vdyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgZmVlbCBsaWtlIGhlIGhhc27igJl0IHRha2VuIGhpcyBleWVzIG9mZiBtZSBmb3IgdGhlIGxhc3QgMyBtaW51dGVzJnF1b3Q7ICZxdW90O29vbGtra29sa2ttb2xra3FvbGtrTW9sa2tpb2xra09vbGtrbm9sa2tKb2xra2pvbGtrT29sa2tJb2xra1pvbGtrVW9sa2tub2xra2wmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGZlZWwgbGlrZSBoZSBoYXNu4oCZdCB0YWtlbiBoaXMgZXllcyBvZmYgbWUgZm9yIHRoZSBsYXN0IDMgbWludXRlcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgZmVlbCBsaWtlIGhlIGhhc27igJl0IHRha2VuIGhpcyBleWVzIG9mZiBtZSBmb3IgdGhlIGxhc3QgMyBtaW51dGVzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtnb2xra0NvbGtrdW9sa2tVb2xra1dvbGtrQm9sa2tVb2xra1UmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuMXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I2dvbGtrQ29sa2t1b2xra1VvbGtrV29sa2tCb2xra1VvbGtrVSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtMb29rIEhhaWxleSwgY2FsbSBkb3duJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfOSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0xvb2sgSGFpbGV5LCBjYWxtIGRvd24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfOSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyODgiIG5hbWU9IkhhaWxleUNoYXRFcDNfMl85IiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMzYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl85JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TG9vayBIYWlsZXksIGNhbG0gZG93biZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtMb29rIEhhaWxleSwgY2FsbSBkb3duJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7TG9vayBIYWlsZXksIGNhbG0gZG93biZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtTb2xra2ZvbGtrWG9sa2tKb2xra2ZvbGtrWm9sa2thb2xra3EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I1NvbGtrZm9sa2tYb2xra0pvbGtrZm9sa2tab2xra2FvbGtrcSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtNYXliZSB5b3XigJlyZSBpbWFnaW5pbmcgaXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMl8xMCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O01heWJlIHlvdeKAmXJlIGltYWdpbmluZyBpdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMl8xMCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyODkiIG5hbWU9IkhhaWxleUNoYXRFcDNfMl8xMCIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwzNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzEwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TWF5YmUgeW914oCZcmUgaW1hZ2luaW5nIGl0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O01heWJlIHlvdeKAmXJlIGltYWdpbmluZyBpdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O01heWJlIHlvdeKAmXJlIGltYWdpbmluZyBpdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt5b2xra2hvbGtrdW9sa2tyb2xra1VvbGtrem9sa2thb2xra3kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3lvbGtraG9sa2t1b2xra3JvbGtrVW9sa2t6b2xra2FvbGtreSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIG1lYW4sIHlvdeKAmXJlIG5vdCBldmVuIGxvb2tpbmcgYXQgaGltLCByaWdodD8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMl8xMSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgbWVhbiwgeW914oCZcmUgbm90IGV2ZW4gbG9va2luZyBhdCBoaW0sIHJpZ2h0PyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMl8xMSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyOTAiIG5hbWU9IkhhaWxleUNoYXRFcDNfMl8xMSIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSwzNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzExJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBtZWFuLCB5b3XigJlyZSBub3QgZXZlbiBsb29raW5nIGF0IGhpbSwgcmlnaHQ/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbWVhbiwgeW914oCZcmUgbm90IGV2ZW4gbG9va2luZyBhdCBoaW0sIHJpZ2h0PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgbWVhbiwgeW914oCZcmUgbm90IGV2ZW4gbG9va2luZyBhdCBoaW0sIHJpZ2h0PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtSaWdodCwgSSBoYXZlbuKAmXQgbG9va2VkIGluIGhpcyBkaXJlY3Rpb24gc2luY2UgSSBub3RpY2VkJnF1b3Q7ICZxdW90O0RvbGtrTm9sa2tsb2xra3lvbGtrZG9sa2ttb2xra1ZvbGtrcW9sa2tlb2xra0tvbGtrU29sa2trb2xra3VvbGtrVm9sa2tRb2xra1QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtSaWdodCwgSSBoYXZlbuKAmXQgbG9va2VkIGluIGhpcyBkaXJlY3Rpb24gc2luY2UgSSBub3RpY2VkJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7UmlnaHQsIEkgaGF2ZW7igJl0IGxvb2tlZCBpbiBoaXMgZGlyZWN0aW9uIHNpbmNlIEkgbm90aWNlZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7d29sa2tLb2xra1hvbGtrT29sa2tZb2xra2RvbGtrWm9sa2ttJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjlzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyN3b2xra0tvbGtrWG9sa2tPb2xra1lvbGtrZG9sa2tab2xra20mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhlbiBpdOKAmXMgaW1wb3NzaWJsZSBmb3IgeW91IHRvIGtub3cgaWYgaGXigJlzIHN0YXJpbmcgaWYgeW914oCZcmUgbm90IGxvb2tpbmcgYXQgaGltJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMTImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaGVuIGl04oCZcyBpbXBvc3NpYmxlIGZvciB5b3UgdG8ga25vdyBpZiBoZeKAmXMgc3RhcmluZyBpZiB5b3XigJlyZSBub3QgbG9va2luZyBhdCBoaW0mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMTImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjkxIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzJfMTIiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCwzNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzEyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhlbiBpdOKAmXMgaW1wb3NzaWJsZSBmb3IgeW91IHRvIGtub3cgaWYgaGXigJlzIHN0YXJpbmcgaWYgeW914oCZcmUgbm90IGxvb2tpbmcgYXQgaGltJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoZW4gaXTigJlzIGltcG9zc2libGUgZm9yIHlvdSB0byBrbm93IGlmIGhl4oCZcyBzdGFyaW5nIGlmIHlvdeKAmXJlIG5vdCBsb29raW5nIGF0IGhpbSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RoZW4gaXTigJlzIGltcG9zc2libGUgZm9yIHlvdSB0byBrbm93IGlmIGhl4oCZcyBzdGFyaW5nIGlmIHlvdeKAmXJlIG5vdCBsb29raW5nIGF0IGhpbSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt1b2xra2JvbGtrSm9sa2tKb2xra1lvbGtrUG9sa2t5b2xra04mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3VvbGtrYm9sa2tKb2xra0pvbGtrWW9sa2tQb2xra3lvbGtrTiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtBbmQgZXZlbiBpZiBoZSBpcywgaXTigJlzIG5vcm1hbCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzEzJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QW5kIGV2ZW4gaWYgaGUgaXMsIGl04oCZcyBub3JtYWwmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMTMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjkyIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzJfMTMiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSwzNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzEzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7QW5kIGV2ZW4gaWYgaGUgaXMsIGl04oCZcyBub3JtYWwmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5kIGV2ZW4gaWYgaGUgaXMsIGl04oCZcyBub3JtYWwmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtBbmQgZXZlbiBpZiBoZSBpcywgaXTigJlzIG5vcm1hbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt4b2xra2VvbGtrRW9sa2t1b2xra3ZvbGtrc29sa2tJb2xra2QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3hvbGtrZW9sa2tFb2xra3VvbGtrdm9sa2tzb2xra0lvbGtrZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3XigJlyZSBpbiBhIG5pZ2h0Y2x1YiwgYW5kIGd1eXMgYXNzdW1lIGdpcmxzIGFyZSB0aGVyZSBmb3IgdGhlIHNhbWUgcmVhc29uIHRoZXkgYXJlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMTQmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3XigJlyZSBpbiBhIG5pZ2h0Y2x1YiwgYW5kIGd1eXMgYXNzdW1lIGdpcmxzIGFyZSB0aGVyZSBmb3IgdGhlIHNhbWUgcmVhc29uIHRoZXkgYXJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzE0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI5MyIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzE0IiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsMzcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl8xNCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdeKAmXJlIGluIGEgbmlnaHRjbHViLCBhbmQgZ3V5cyBhc3N1bWUgZ2lybHMgYXJlIHRoZXJlIGZvciB0aGUgc2FtZSByZWFzb24gdGhleSBhcmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW914oCZcmUgaW4gYSBuaWdodGNsdWIsIGFuZCBndXlzIGFzc3VtZSBnaXJscyBhcmUgdGhlcmUgZm9yIHRoZSBzYW1lIHJlYXNvbiB0aGV5IGFyZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1lvdeKAmXJlIGluIGEgbmlnaHRjbHViLCBhbmQgZ3V5cyBhc3N1bWUgZ2lybHMgYXJlIHRoZXJlIGZvciB0aGUgc2FtZSByZWFzb24gdGhleSBhcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSBzdXBvc3NlIHlvdeKAmXJlIHJpZ2h0Li4uJnF1b3Q7ICZxdW90O1VvbGtrWG9sa2tWb2xra0NvbGtra29sa2tLb2xra1BvbGtrc29sa2tKb2xra2xvbGtrSG9sa2tjb2xra1RvbGtrcG9sa2t2b2xra1EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHN1cG9zc2UgeW914oCZcmUgcmlnaHQuLi4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIHN1cG9zc2UgeW914oCZcmUgcmlnaHQuLi4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2JvbGtrcm9sa2tzb2xra0xvbGtrWW9sa2tqb2xra1hvbGtrYSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjYm9sa2tyb2xra3NvbGtrTG9sa2tZb2xra2pvbGtrWG9sa2thJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0xvb2ssIHRyeSB0byB0YWtlIGEgcGljdHVyZSB0byBzaG93IG1lIHdoYXQgaGUgbG9va3MgbGlrZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzE1JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7TG9vaywgdHJ5IHRvIHRha2UgYSBwaWN0dXJlIHRvIHNob3cgbWUgd2hhdCBoZSBsb29rcyBsaWtlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzE1JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI5NCIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzE1IiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMzcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl8xNSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0xvb2ssIHRyeSB0byB0YWtlIGEgcGljdHVyZSB0byBzaG93IG1lIHdoYXQgaGUgbG9va3MgbGlrZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtMb29rLCB0cnkgdG8gdGFrZSBhIHBpY3R1cmUgdG8gc2hvdyBtZSB3aGF0IGhlIGxvb2tzIGxpa2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtMb29rLCB0cnkgdG8gdGFrZSBhIHBpY3R1cmUgdG8gc2hvdyBtZSB3aGF0IGhlIGxvb2tzIGxpa2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7R29sa2tGb2xra0ZvbGtrUW9sa2tzb2xra25vbGtrTW9sa2tDJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNHb2xra0ZvbGtrRm9sa2tRb2xra3NvbGtrbm9sa2tNb2xra0MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SnVzdCBkbyBpdCBkaXNjcmVldGx5LCBhbmQgaXTigJlsbCBiZSBmaW5lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMTYmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtKdXN0IGRvIGl0IGRpc2NyZWV0bHksIGFuZCBpdOKAmWxsIGJlIGZpbmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMTYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjk1IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzJfMTYiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCwzNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzE2JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SnVzdCBkbyBpdCBkaXNjcmVldGx5LCBhbmQgaXTigJlsbCBiZSBmaW5lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0p1c3QgZG8gaXQgZGlzY3JlZXRseSwgYW5kIGl04oCZbGwgYmUgZmluZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0p1c3QgZG8gaXQgZGlzY3JlZXRseSwgYW5kIGl04oCZbGwgYmUgZmluZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtCdXQgd2hhdCBpZiBoZSBub3RpY2VzPyZxdW90OyAmcXVvdDtEb2xra2NvbGtreG9sa2tHb2xra0VvbGtrd29sa2tCb2xra1VvbGtrc29sa2tyb2xra2hvbGtram9sa2tib2xra1dvbGtreG9sa2tNJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IHdoYXQgaWYgaGUgbm90aWNlcz8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtCdXQgd2hhdCBpZiBoZSBub3RpY2VzPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7aW9sa2tKb2xra0hvbGtraW9sa2tBb2xra2xvbGtra29sa2tEJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjRzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNpb2xra0pvbGtrSG9sa2tpb2xra0FvbGtrbG9sa2trb2xra0QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhlbiBoZeKAmWxsIHRoaW5rIHlvdeKAmXJlIHNlbmRpbmcgYSBwaWN0dXJlIG9mIHNvbWUgaG90IGd1eSB5b3Ugc2F3IHRvIGEgZnJpZW5kIG9yIHNvbWV0aGluZyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzE3JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhlbiBoZeKAmWxsIHRoaW5rIHlvdeKAmXJlIHNlbmRpbmcgYSBwaWN0dXJlIG9mIHNvbWUgaG90IGd1eSB5b3Ugc2F3IHRvIGEgZnJpZW5kIG9yIHNvbWV0aGluZyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMl8xNyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyOTYiIG5hbWU9IkhhaWxleUNoYXRFcDNfMl8xNyIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDM3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMTcmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGVuIGhl4oCZbGwgdGhpbmsgeW914oCZcmUgc2VuZGluZyBhIHBpY3R1cmUgb2Ygc29tZSBob3QgZ3V5IHlvdSBzYXcgdG8gYSBmcmllbmQgb3Igc29tZXRoaW5nJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoZW4gaGXigJlsbCB0aGluayB5b3XigJlyZSBzZW5kaW5nIGEgcGljdHVyZSBvZiBzb21lIGhvdCBndXkgeW91IHNhdyB0byBhIGZyaWVuZCBvciBzb21ldGhpbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGVuIGhl4oCZbGwgdGhpbmsgeW914oCZcmUgc2VuZGluZyBhIHBpY3R1cmUgb2Ygc29tZSBob3QgZ3V5IHlvdSBzYXcgdG8gYSBmcmllbmQgb3Igc29tZXRoaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgZG9u4oCZdCBrbm93JnF1b3Q7ICZxdW90O1hvbGtrVm9sa2tLb2xra05vbGtrcm9sa2t5b2xra0RvbGtrT29sa2t2b2xra3BvbGtrY29sa2t0b2xra3pvbGtrSG9sa2tIb2xra0gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGRvbuKAmXQga25vdyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgZG9u4oCZdCBrbm93JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4ycyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SeKAmWxsIHRyeS4uLiZxdW90OyAmcXVvdDtob2xra3VvbGtrRm9sa2tRb2xra2ZvbGtrY29sa2tub2xra2VvbGtrZG9sa2tDb2xra3ZvbGtrdG9sa2tWb2xra0RvbGtrWm9sa2t4JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmWxsIHRyeS4uLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0nigJlsbCB0cnkuLi4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi41cyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9pbWcgJnF1b3Q7YXNzZXRzL2ltZy9lcDMvaGFpbGV5X3Bob3RvXzUud2VicCZxdW90OyB0cnVlICZxdW90O1BvbGtrcW9sa2t6b2xra1ZvbGtrbm9sa2tJb2xra1RvbGtrWm9sa2tUb2xra0VvbGtrbW9sa2tIb2xra0RvbGtrY29sa2tab2xra1gmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDIsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2VwMy9oYWlsZXlfcGhvdG9fNS53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkcGhvdG9zLnB1c2goJnF1b3Q7YXNzZXRzL2ltZy9lcDMvaGFpbGV5X3Bob3RvXzUud2VicCZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy41cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtXaGF0IGRvIHlvdSB0aGluaz8mcXVvdDsgJnF1b3Q7YW9sa2tDb2xra2ZvbGtra29sa2tZb2xra01vbGtrbG9sa2tXb2xra1FvbGtrQW9sa2tub2xra0xvbGtrTm9sa2tlb2xra2ZvbGtrcyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1doYXQgZG8geW91IHRoaW5rPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1doYXQgZG8geW91IHRoaW5rPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7WG9sa2tib2xra3lvbGtrem9sa2tKb2xra2xvbGtram9sa2trJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjVzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNYb2xra2JvbGtreW9sa2t6b2xra0pvbGtrbG9sa2tqb2xra2smcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSB0aGluayB5b3Ugc2hvdWxkIGdpdmUgaGltIGEgY2hhbmNlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMThhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSB0aGluayB5b3Ugc2hvdWxkIGdpdmUgaGltIGEgY2hhbmNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzE4YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjWG9sa2tib2xra3lvbGtrem9sa2tKb2xra2xvbGtram9sa2trJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O09mIGNvdXJzZSBub3QmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMl8xOGImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtPZiBjb3Vyc2Ugbm90JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzE4YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyOTciIG5hbWU9IkhhaWxleUNoYXRFcDNfMl8xOGEiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCwzNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzE4YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgdGhpbmsgeW91IHNob3VsZCBnaXZlIGhpbSBhIGNoYW5jZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHRoaW5rIHlvdSBzaG91bGQgZ2l2ZSBoaW0gYSBjaGFuY2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIHRoaW5rIHlvdSBzaG91bGQgZ2l2ZSBoaW0gYSBjaGFuY2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGhhaWxleV91YiA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfbm90ZXMucHVzaCgmcXVvdDtIYWlsZXkgd2VudCB0byBhIG5pZ2h0Y2x1YiwgYW5kIEkgcmVjb21tZW5kZWQgc2hlIGhhdmUgc2V4IHdpdGggYW4gdWdseSBiYXN0YXJkLiZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1RvbGtrT29sa2tkb2xra1JvbGtrZm9sa2tsb2xra3JvbGtrSSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjVG9sa2tPb2xra2RvbGtrUm9sa2tmb2xra2xvbGtrcm9sa2tJJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1doYXQgeW91IG5lZWQgaXMgZXhwZXJpZW5jZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzE5YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1doYXQgeW91IG5lZWQgaXMgZXhwZXJpZW5jZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMl8xOWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjk4IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzJfMThiIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMzcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl8xOGImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtPZiBjb3Vyc2Ugbm90JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09mIGNvdXJzZSBub3QmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtPZiBjb3Vyc2Ugbm90JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRoYWlsZXlfdWIgPSBmYWxzZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9ub3Rlcy5wdXNoKCZxdW90O0hhaWxleSB3ZW50IHRvIGEgbmlnaHRjbHViLCBhbmQgSSB0b2xkIGhlciBub3QgdG8gZ2V0IGludm9sdmVkIHdpdGggYW4gdWdseSBiYXN0YXJkLiZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3VvbGtrT29sa2tEb2xra1RvbGtra29sa2tlb2xra05vbGtrYiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjdW9sa2tPb2xra0RvbGtrVG9sa2trb2xra2VvbGtrTm9sa2tiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1lvdeKAmXJlIHdheSB0b28gYmVhdXRpZnVsIHRvIGVuZCB1cCB3aXRoIGEgZ3V5IGxpa2UgdGhhdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzE5YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdeKAmXJlIHdheSB0b28gYmVhdXRpZnVsIHRvIGVuZCB1cCB3aXRoIGEgZ3V5IGxpa2UgdGhhdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMl8xOWImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjk5IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzJfMTlhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDM3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMTlhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7V2hhdCB5b3UgbmVlZCBpcyBleHBlcmllbmNlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1doYXQgeW91IG5lZWQgaXMgZXhwZXJpZW5jZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1doYXQgeW91IG5lZWQgaXMgZXhwZXJpZW5jZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtzb2xra2tvbGtrT29sa2tkb2xra0pvbGtrT29sa2t6b2xra28mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3NvbGtra29sa2tPb2xra2RvbGtrSm9sa2tPb2xra3pvbGtrbyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIHRoaW5rIHRoaXMgaXMgYSBnb29kIG1vbWVudCBmb3IgdGhhdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzIwYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgdGhpbmsgdGhpcyBpcyBhIGdvb2QgbW9tZW50IGZvciB0aGF0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzIwYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMDAiIG5hbWU9IkhhaWxleUNoYXRFcDNfMl8yMGEiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMzcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl8yMGEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIHRoaW5rIHRoaXMgaXMgYSBnb29kIG1vbWVudCBmb3IgdGhhdCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHRoaW5rIHRoaXMgaXMgYSBnb29kIG1vbWVudCBmb3IgdGhhdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgdGhpbmsgdGhpcyBpcyBhIGdvb2QgbW9tZW50IGZvciB0aGF0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0FyZSB5b3Ugc3VyZT8mcXVvdDsgJnF1b3Q7cG9sa2tXb2xra1VvbGtrUm9sa2tEb2xra3BvbGtrUm9sa2t2b2xra2RvbGtrbW9sa2tNb2xra1NvbGtrVG9sa2tHb2xra1RvbGtrWiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FyZSB5b3Ugc3VyZT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtBcmUgeW91IHN1cmU/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtIb2xra3NvbGtra29sa2tnb2xra2pvbGtrZG9sa2tCb2xra28mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuMnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I0hvbGtrc29sa2trb2xra2dvbGtram9sa2tkb2xra0JvbGtrbyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZZWFoLCBpdOKAmXMgbm90IHRoZSB0aW1lIHRvIGJlIHBpY2t5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjFhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WWVhaCwgaXTigJlzIG5vdCB0aGUgdGltZSB0byBiZSBwaWNreSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMl8yMWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzAxIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzJfMjFhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMzg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl8yMWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZZWFoLCBpdOKAmXMgbm90IHRoZSB0aW1lIHRvIGJlIHBpY2t5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1llYWgsIGl04oCZcyBub3QgdGhlIHRpbWUgdG8gYmUgcGlja3kmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZZWFoLCBpdOKAmXMgbm90IHRoZSB0aW1lIHRvIGJlIHBpY2t5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1FvbGtrUW9sa2tzb2xra2ZvbGtrVm9sa2tpb2xra1FvbGtrViZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjUW9sa2tRb2xra3NvbGtrZm9sa2tWb2xra2lvbGtrUW9sa2tWJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoaXMgaXMgeW91ciBmaXJzdCBzdGVwIHRvIGdhaW5pbmcgbW9yZSBjb25maWRlbmNlIGluIHlvdXJzZWxmJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjJhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhpcyBpcyB5b3VyIGZpcnN0IHN0ZXAgdG8gZ2FpbmluZyBtb3JlIGNvbmZpZGVuY2UgaW4geW91cnNlbGYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjJhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMwMiIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzIyYSIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDM4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjJhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhpcyBpcyB5b3VyIGZpcnN0IHN0ZXAgdG8gZ2FpbmluZyBtb3JlIGNvbmZpZGVuY2UgaW4geW91cnNlbGYmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhpcyBpcyB5b3VyIGZpcnN0IHN0ZXAgdG8gZ2FpbmluZyBtb3JlIGNvbmZpZGVuY2UgaW4geW91cnNlbGYmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGlzIGlzIHlvdXIgZmlyc3Qgc3RlcCB0byBnYWluaW5nIG1vcmUgY29uZmlkZW5jZSBpbiB5b3Vyc2VsZiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjFzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtPa2F5Li4uJnF1b3Q7ICZxdW90O25vbGtrVm9sa2tpb2xra0xvbGtrQW9sa2tzb2xra2hvbGtrdm9sa2tXb2xra3RvbGtrS29sa2tyb2xra3ZvbGtrd29sa2ttb2xra2UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPa2F5Li4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7T2theS4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0J1dCB3aGF0IGRvIEkgZG8/JnF1b3Q7ICZxdW90O2dvbGtrQW9sa2tpb2xra1NvbGtrVm9sa2tSb2xra2dvbGtrT29sa2tmb2xra1dvbGtrTm9sa2tJb2xra2NvbGtram9sa2ttb2xra2UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgd2hhdCBkbyBJIGRvPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0J1dCB3aGF0IGRvIEkgZG8/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SnVzdCBnbyB1cCBhbmQgdGFsayB0byBoaW0/JnF1b3Q7ICZxdW90O2dvbGtrdG9sa2tsb2xra0dvbGtrV29sa2tmb2xra2pvbGtrTW9sa2thb2xra3VvbGtrRm9sa2tQb2xra2lvbGtrUm9sa2tPb2xra3UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtKdXN0IGdvIHVwIGFuZCB0YWxrIHRvIGhpbT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtKdXN0IGdvIHVwIGFuZCB0YWxrIHRvIGhpbT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2NvbGtrY29sa2t0b2xra2ZvbGtrWm9sa2trb2xra2pvbGtraSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjY29sa2tjb2xra3RvbGtrZm9sa2tab2xra2tvbGtram9sa2tpJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1llYWgsIEkgdGhpbmsgZXZlbiBhIHNtaWxlIHdvdWxkIGJlIGVub3VnaCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzIzYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1llYWgsIEkgdGhpbmsgZXZlbiBhIHNtaWxlIHdvdWxkIGJlIGVub3VnaCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMl8yM2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzAzIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzJfMjNhIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsMzg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl8yM2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZZWFoLCBJIHRoaW5rIGV2ZW4gYSBzbWlsZSB3b3VsZCBiZSBlbm91Z2gmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WWVhaCwgSSB0aGluayBldmVuIGEgc21pbGUgd291bGQgYmUgZW5vdWdoJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WWVhaCwgSSB0aGluayBldmVuIGEgc21pbGUgd291bGQgYmUgZW5vdWdoJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2lvbGtrR29sa2tKb2xra0VvbGtrVG9sa2txb2xra1FvbGtrYyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjaW9sa2tHb2xra0pvbGtrRW9sa2tUb2xra3FvbGtrUW9sa2tjJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0J1dCBpdCB3b3VsZG7igJl0IGh1cnQgdG8gYXBwcm9hY2ggaGltIHRvIHNlYWwgdGhlIGRlYWwmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMl8yNGEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtCdXQgaXQgd291bGRu4oCZdCBodXJ0IHRvIGFwcHJvYWNoIGhpbSB0byBzZWFsIHRoZSBkZWFsJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzI0YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMDQiIG5hbWU9IkhhaWxleUNoYXRFcDNfMl8yNGEiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwzODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzI0YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0J1dCBpdCB3b3VsZG7igJl0IGh1cnQgdG8gYXBwcm9hY2ggaGltIHRvIHNlYWwgdGhlIGRlYWwmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IGl0IHdvdWxkbuKAmXQgaHVydCB0byBhcHByb2FjaCBoaW0gdG8gc2VhbCB0aGUgZGVhbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0J1dCBpdCB3b3VsZG7igJl0IGh1cnQgdG8gYXBwcm9hY2ggaGltIHRvIHNlYWwgdGhlIGRlYWwmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7V2hhdOKAmXMgdGhlIOKAnGRlYWzigJ0/JnF1b3Q7ICZxdW90O0hvbGtrbm9sa2tLb2xra2dvbGtrUW9sa2tlb2xra3RvbGtraW9sa2tMb2xra3VvbGtrV29sa2tSb2xra1FvbGtrbG9sa2t4b2xra08mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXaGF04oCZcyB0aGUg4oCcZGVhbOKAnT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtXaGF04oCZcyB0aGUg4oCcZGVhbOKAnT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4ycyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIGp1c3Qgd2FudCB0byBtYWtlIHN1cmUgSeKAmW0gbm90IG1pc3VuZGVyc3RhbmRpbmcgYW55dGhpbmcmcXVvdDsgJnF1b3Q7d29sa2tWb2xra0xvbGtrZ29sa2tQb2xra2VvbGtraG9sa2tFb2xra1VvbGtrRG9sa2tkb2xra09vbGtrV29sa2tCb2xra0VvbGtrQiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kganVzdCB3YW50IHRvIG1ha2Ugc3VyZSBJ4oCZbSBub3QgbWlzdW5kZXJzdGFuZGluZyBhbnl0aGluZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kganVzdCB3YW50IHRvIG1ha2Ugc3VyZSBJ4oCZbSBub3QgbWlzdW5kZXJzdGFuZGluZyBhbnl0aGluZyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7UW9sa2tRb2xra0hvbGtraG9sa2tvb2xra2xvbGtrV29sa2tQJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjhzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNRb2xra1FvbGtrSG9sa2tob2xra29vbGtrbG9sa2tXb2xra1AmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7V2VsbCwgSSBtZWFuIGhhdmluZyBzZXggd2l0aCBoaW0mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMl8yNWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXZWxsLCBJIG1lYW4gaGF2aW5nIHNleCB3aXRoIGhpbSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMl8yNWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzA1IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzJfMjVhIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsMzg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl8yNWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtXZWxsLCBJIG1lYW4gaGF2aW5nIHNleCB3aXRoIGhpbSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZWxsLCBJIG1lYW4gaGF2aW5nIHNleCB3aXRoIGhpbSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1dlbGwsIEkgbWVhbiBoYXZpbmcgc2V4IHdpdGggaGltJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX25vX3dvcmRzLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9ub193b3Jkcy53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuMXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1NleCZxdW90OyAmcXVvdDtib2xra29vbGtrZm9sa2twb2xra3BvbGtrbG9sa2thb2xra29vbGtrWW9sa2t6b2xra1pvbGtreW9sa2tKb2xra1BvbGtraW9sa2tUJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U2V4JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7U2V4JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4xcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7PyZxdW90OyAmcXVvdDtIb2xra1ZvbGtrTm9sa2tyb2xra3NvbGtrU29sa2tZb2xra1lvbGtrY29sa2tLb2xra2ZvbGtrY29sa2t4b2xra05vbGtrUG9sa2tCJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90Oz8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0FvbGtrQW9sa2tqb2xra3ZvbGtrRm9sa2tEb2xra1NvbGtrdSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi43cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjQW9sa2tBb2xra2pvbGtrdm9sa2tGb2xra0RvbGtrU29sa2t1JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1llYWgsIHlvdeKAmXJlIGFuIGFkdWx0LCBIYWlsZXkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMl8yNmEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZZWFoLCB5b3XigJlyZSBhbiBhZHVsdCwgSGFpbGV5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzI2YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMDYiIG5hbWU9IkhhaWxleUNoYXRFcDNfMl8yNmEiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwzODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzI2YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1llYWgsIHlvdeKAmXJlIGFuIGFkdWx0LCBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WWVhaCwgeW914oCZcmUgYW4gYWR1bHQsIEhhaWxleSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1llYWgsIHlvdeKAmXJlIGFuIGFkdWx0LCBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7WG9sa2tlb2xra29vbGtraW9sa2tqb2xra3pvbGtrV29sa2t1JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNYb2xra2VvbGtrb29sa2tpb2xra2pvbGtrem9sa2tXb2xra3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7V2hlbiBJIHNhaWQgeW91IG5lZWRlZCB0byBnbyBvdXQgYW5kIGhhdmUgZnVuLCB0aGlzIGlzIGV4YWN0bHkgd2hhdCBJIG1lYW50JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjdhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7V2hlbiBJIHNhaWQgeW91IG5lZWRlZCB0byBnbyBvdXQgYW5kIGhhdmUgZnVuLCB0aGlzIGlzIGV4YWN0bHkgd2hhdCBJIG1lYW50JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzI3YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMDciIG5hbWU9IkhhaWxleUNoYXRFcDNfMl8yN2EiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCwzODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzI3YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1doZW4gSSBzYWlkIHlvdSBuZWVkZWQgdG8gZ28gb3V0IGFuZCBoYXZlIGZ1biwgdGhpcyBpcyBleGFjdGx5IHdoYXQgSSBtZWFudCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXaGVuIEkgc2FpZCB5b3UgbmVlZGVkIHRvIGdvIG91dCBhbmQgaGF2ZSBmdW4sIHRoaXMgaXMgZXhhY3RseSB3aGF0IEkgbWVhbnQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtXaGVuIEkgc2FpZCB5b3UgbmVlZGVkIHRvIGdvIG91dCBhbmQgaGF2ZSBmdW4sIHRoaXMgaXMgZXhhY3RseSB3aGF0IEkgbWVhbnQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Rm9sa2tFb2xra3FvbGtraG9sa2tsb2xra3JvbGtrQW9sa2t3JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNGb2xra0VvbGtrcW9sa2tob2xra2xvbGtrcm9sa2tBb2xra3cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7TWVldGluZyBndXlzLCBoYXZpbmcgc2V4LCBsaXZpbmcgbGlmZS4uLiZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzI4YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O01lZXRpbmcgZ3V5cywgaGF2aW5nIHNleCwgbGl2aW5nIGxpZmUuLi4mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjhhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMwOCIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzI4YSIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDM4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjhhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TWVldGluZyBndXlzLCBoYXZpbmcgc2V4LCBsaXZpbmcgbGlmZS4uLiZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtNZWV0aW5nIGd1eXMsIGhhdmluZyBzZXgsIGxpdmluZyBsaWZlLi4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7TWVldGluZyBndXlzLCBoYXZpbmcgc2V4LCBsaXZpbmcgbGlmZS4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjRzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtCdXQgSeKAmW0gbm90IHN1cmUgSSBjYW4gZG8gdGhhdCB3aXRoIGEgc3RyYW5nZXIgSSBqdXN0IG1ldCZxdW90OyAmcXVvdDtCb2xra21vbGtrZW9sa2tQb2xra1pvbGtrdW9sa2tNb2xra0ZvbGtrSG9sa2t0b2xra0ZvbGtraG9sa2tRb2xra3BvbGtrSG9sa2t4JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IEnigJltIG5vdCBzdXJlIEkgY2FuIGRvIHRoYXQgd2l0aCBhIHN0cmFuZ2VyIEkganVzdCBtZXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtCdXQgSeKAmW0gbm90IHN1cmUgSSBjYW4gZG8gdGhhdCB3aXRoIGEgc3RyYW5nZXIgSSBqdXN0IG1ldCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Sm9sa2tzb2xra29vbGtrWm9sa2tlb2xra05vbGtrUm9sa2twJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNKb2xra3NvbGtrb29sa2tab2xra2VvbGtrTm9sa2tSb2xra3AmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7TG9vaywgSGFpbGV5LCBldmVyeW9uZSBkb2VzIGl0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjlhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7TG9vaywgSGFpbGV5LCBldmVyeW9uZSBkb2VzIGl0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzI5YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMDkiIG5hbWU9IkhhaWxleUNoYXRFcDNfMl8yOWEiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsMzg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl8yOWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtMb29rLCBIYWlsZXksIGV2ZXJ5b25lIGRvZXMgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TG9vaywgSGFpbGV5LCBldmVyeW9uZSBkb2VzIGl0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7TG9vaywgSGFpbGV5LCBldmVyeW9uZSBkb2VzIGl0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O01vbGtrbW9sa2tCb2xra2VvbGtrc29sa2t5b2xra1FvbGtrUSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjTW9sa2ttb2xra0JvbGtrZW9sa2tzb2xra3lvbGtrUW9sa2tRJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1lvdSBkb27igJl0IGhhdmUgdG8gbWFycnkgaGltLCBqdXN0IGhhdmUgc29tZSBmdW4mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMl8zMGEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3UgZG9u4oCZdCBoYXZlIHRvIG1hcnJ5IGhpbSwganVzdCBoYXZlIHNvbWUgZnVuJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzMwYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMTAiIG5hbWU9IkhhaWxleUNoYXRFcDNfMl8zMGEiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMzg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl8zMGEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZb3UgZG9u4oCZdCBoYXZlIHRvIG1hcnJ5IGhpbSwganVzdCBoYXZlIHNvbWUgZnVuJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBkb27igJl0IGhhdmUgdG8gbWFycnkgaGltLCBqdXN0IGhhdmUgc29tZSBmdW4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZb3UgZG9u4oCZdCBoYXZlIHRvIG1hcnJ5IGhpbSwganVzdCBoYXZlIHNvbWUgZnVuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1BvbGtrdm9sa2ttb2xra0tvbGtrcm9sa2tXb2xra0VvbGtrRSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjUG9sa2t2b2xra21vbGtrS29sa2tyb2xra1dvbGtrRW9sa2tFJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RydXN0IG1lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMzFhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VHJ1c3QgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMzFhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMxMSIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzMxYSIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDM5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMzFhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VHJ1c3QgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VHJ1c3QgbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUcnVzdCBtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9jcnlpbmcud2VicCZxdW90OyB0cnVlICZxdW90O0hhaWxleSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2NyeWluZy53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O09rYXksIEnigJlsbCBzZWUgd2hhdCBJIGNhbiBkbyZxdW90OyAmcXVvdDtUb2xra2ZvbGtrV29sa2tsb2xra1lvbGtrcm9sa2tKb2xra3dvbGtrTm9sa2tZb2xra0pvbGtrQ29sa2trb2xra0hvbGtrVm9sa2tFJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2theSwgSeKAmWxsIHNlZSB3aGF0IEkgY2FuIGRvJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7T2theSwgSeKAmWxsIHNlZSB3aGF0IEkgY2FuIGRvJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtTb2xra0dvbGtrUm9sa2tnb2xra2lvbGtrSm9sa2tDb2xra1ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuNnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I1NvbGtrR29sa2tSb2xra2dvbGtraW9sa2tKb2xra0NvbGtrUiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtHcmVhdCwgSeKAmWxsIGJlIHdhaXRpbmcmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMl8zMmEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtHcmVhdCwgSeKAmWxsIGJlIHdhaXRpbmcmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMzJhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMxMiIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzE5YiIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDM5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMTliJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WW914oCZcmUgd2F5IHRvbyBiZWF1dGlmdWwgdG8gZW5kIHVwIHdpdGggYSBndXkgbGlrZSB0aGF0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdeKAmXJlIHdheSB0b28gYmVhdXRpZnVsIHRvIGVuZCB1cCB3aXRoIGEgZ3V5IGxpa2UgdGhhdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1lvdeKAmXJlIHdheSB0b28gYmVhdXRpZnVsIHRvIGVuZCB1cCB3aXRoIGEgZ3V5IGxpa2UgdGhhdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9mbHVzaC53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7SGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfZmx1c2gud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtUaGFua3MgJG5hbWUmcXVvdDsgJnF1b3Q7eG9sa2tyb2xra09vbGtrTG9sa2tOb2xra2NvbGtrUW9sa2tib2xra1hvbGtrem9sa2tab2xra3lvbGtrcG9sa2tCb2xra1BvbGtraiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYW5rcyAkbmFtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RoYW5rcyAkbmFtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNnMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgZG9u4oCZdCBrbm93IHdoYXQgdG8gc2F5JnF1b3Q7ICZxdW90O3VvbGtrTm9sa2tNb2xra2JvbGtrcW9sa2tQb2xra3BvbGtreW9sa2tQb2xra05vbGtrUW9sa2t4b2xra2xvbGtraG9sa2tvb2xra1QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGRvbuKAmXQga25vdyB3aGF0IHRvIHNheSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgZG9u4oCZdCBrbm93IHdoYXQgdG8gc2F5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtSb2xra3VvbGtrRW9sa2t0b2xra3ZvbGtrRG9sa2tjb2xra1EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I1JvbGtrdW9sa2tFb2xra3RvbGtrdm9sa2tEb2xra2NvbGtrUSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3UgZG9u4oCZdCBoYXZlIHRvIHNheSBhbnl0aGluZyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzIwYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdSBkb27igJl0IGhhdmUgdG8gc2F5IGFueXRoaW5nJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzIwYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMTMiIG5hbWU9IkhhaWxleUNoYXRFcDNfMl8yMGIiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCwzOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzIwYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdSBkb27igJl0IGhhdmUgdG8gc2F5IGFueXRoaW5nJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBkb27igJl0IGhhdmUgdG8gc2F5IGFueXRoaW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WW91IGRvbuKAmXQgaGF2ZSB0byBzYXkgYW55dGhpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Zm9sa2tNb2xra0pvbGtrZG9sa2t3b2xra0hvbGtreG9sa2taJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNmb2xra01vbGtrSm9sa2tkb2xra3dvbGtrSG9sa2t4b2xra1omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7TGlrZSBJIHNhaWQsIEnigJltIGhlcmUgdG8gaGVscCB5b3UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMl8yMWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtMaWtlIEkgc2FpZCwgSeKAmW0gaGVyZSB0byBoZWxwIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMl8yMWImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzE0IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzJfMjFiIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMzk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl8yMWImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtMaWtlIEkgc2FpZCwgSeKAmW0gaGVyZSB0byBoZWxwIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtMaWtlIEkgc2FpZCwgSeKAmW0gaGVyZSB0byBoZWxwIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0xpa2UgSSBzYWlkLCBJ4oCZbSBoZXJlIHRvIGhlbHAgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgaGF2ZSB0byBtZW50aW9uLCBJIHJlYWxseSBmZWVsIGx1Y2t5IHRvIGhhdmUgeW91IGluIG15IGxpZmUmcXVvdDsgJnF1b3Q7WG9sa2tQb2xra1FvbGtrVG9sa2tub2xra3JvbGtrY29sa2tzb2xra05vbGtrY29sa2tIb2xra2tvbGtrT29sa2tLb2xra1FvbGtreCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgaGF2ZSB0byBtZW50aW9uLCBJIHJlYWxseSBmZWVsIGx1Y2t5IHRvIGhhdmUgeW91IGluIG15IGxpZmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIGhhdmUgdG8gbWVudGlvbiwgSSByZWFsbHkgZmVlbCBsdWNreSB0byBoYXZlIHlvdSBpbiBteSBsaWZlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt5b2xra2NvbGtrbm9sa2trb2xra0VvbGtrbm9sa2tmb2xra0YmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3lvbGtrY29sa2tub2xra2tvbGtrRW9sa2tub2xra2ZvbGtrRiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJ4oCZbSB0aGUgbHVja3kgb25lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjJiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SeKAmW0gdGhlIGx1Y2t5IG9uZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMl8yMmImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzE1IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzJfMjJiIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsMzk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl8yMmImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJ4oCZbSB0aGUgbHVja3kgb25lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJltIHRoZSBsdWNreSBvbmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJ4oCZbSB0aGUgbHVja3kgb25lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2JpZ19zbWlsZS53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7SGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfYmlnX3NtaWxlLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SGV5LCBJIHRoaW5rIHRoYXTigJlzIGVub3VnaCBmb3IgdG9uaWdodCZxdW90OyAmcXVvdDt1b2xra2RvbGtrUG9sa2tqb2xra09vbGtrTG9sa2txb2xra2tvbGtrTm9sa2tEb2xra2FvbGtrVG9sa2tWb2xra1BvbGtrV29sa2trJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGV5LCBJIHRoaW5rIHRoYXTigJlzIGVub3VnaCBmb3IgdG9uaWdodCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0hleSwgSSB0aGluayB0aGF04oCZcyBlbm91Z2ggZm9yIHRvbmlnaHQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIGp1c3Qgd2FudCB0byBnbyBob21lJnF1b3Q7ICZxdW90O2ZvbGtrVm9sa2tTb2xra2ZvbGtrTG9sa2tVb2xra2pvbGtrd29sa2tXb2xra0FvbGtrb29sa2tEb2xra2dvbGtrV29sa2tGb2xra0smcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGp1c3Qgd2FudCB0byBnbyBob21lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSBqdXN0IHdhbnQgdG8gZ28gaG9tZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7dW9sa2tmb2xra0hvbGtrZ29sa2tOb2xra3FvbGtrbG9sa2tWJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjhzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyN1b2xra2ZvbGtrSG9sa2tnb2xra05vbGtrcW9sa2tsb2xra1YmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7Tm90IGEgYmFkIGlkZWEmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMl8yM2ImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtOb3QgYSBiYWQgaWRlYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMl8yM2ImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzE2IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzJfMjNiIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsMzk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl8yM2ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtOb3QgYSBiYWQgaWRlYSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtOb3QgYSBiYWQgaWRlYSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O05vdCBhIGJhZCBpZGVhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O21vbGtrdG9sa2thb2xra3pvbGtrR29sa2tnb2xra2RvbGtrYSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjbW9sa2t0b2xra2FvbGtrem9sa2tHb2xra2dvbGtrZG9sa2thJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0l0IHdhcyBhIGdvb2QgZmlyc3QgdHJ5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjRiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SXQgd2FzIGEgZ29vZCBmaXJzdCB0cnkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjRiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMxNyIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzI0YiIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDM5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjRiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SXQgd2FzIGEgZ29vZCBmaXJzdCB0cnkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXQgd2FzIGEgZ29vZCBmaXJzdCB0cnkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJdCB3YXMgYSBnb29kIGZpcnN0IHRyeSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtxb2xra2FvbGtrcm9sa2tOb2xra3FvbGtrb29sa2t5b2xra3YmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3FvbGtrYW9sa2tyb2xra05vbGtrcW9sa2tvb2xra3lvbGtrdiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtKdXN0IGtlZXAgYXQgaXQgdW50aWwgeW91IGZlZWwgbW9yZSBjb25maWRlbnQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMl8yNWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtKdXN0IGtlZXAgYXQgaXQgdW50aWwgeW91IGZlZWwgbW9yZSBjb25maWRlbnQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjViJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMxOCIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzI1YiIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDM5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjViJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SnVzdCBrZWVwIGF0IGl0IHVudGlsIHlvdSBmZWVsIG1vcmUgY29uZmlkZW50JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0p1c3Qga2VlcCBhdCBpdCB1bnRpbCB5b3UgZmVlbCBtb3JlIGNvbmZpZGVudCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0p1c3Qga2VlcCBhdCBpdCB1bnRpbCB5b3UgZmVlbCBtb3JlIGNvbmZpZGVudCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIHdpbGwsIG5vIGRvdWJ0IGFib3V0IGl0JnF1b3Q7ICZxdW90O3dvbGtrZG9sa2tIb2xra1dvbGtrRW9sa2tSb2xra1ZvbGtrcW9sa2tMb2xra2NvbGtrT29sa2tEb2xra2hvbGtrQm9sa2tNb2xra0YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHdpbGwsIG5vIGRvdWJ0IGFib3V0IGl0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSB3aWxsLCBubyBkb3VidCBhYm91dCBpdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0J1dCBhbnl3YXksIEnigJlsbCBsZXQgeW91IGdldCBiYWNrIHRvIHlvdXIgc3R1ZmYmcXVvdDsgJnF1b3Q7QW9sa2tNb2xra21vbGtrbG9sa2tBb2xra1dvbGtrZW9sa2tvb2xra2RvbGtrQW9sa2tib2xra1ZvbGtrZm9sa2tDb2xra3VvbGtrRCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCBhbnl3YXksIEnigJlsbCBsZXQgeW91IGdldCBiYWNrIHRvIHlvdXIgc3R1ZmYmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtCdXQgYW55d2F5LCBJ4oCZbGwgbGV0IHlvdSBnZXQgYmFjayB0byB5b3VyIHN0dWZmJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SGF2ZSBhIGdvb2QgbmlnaHQgJG5hbWUmcXVvdDsgJnF1b3Q7eG9sa2tYb2xra1FvbGtrd29sa2tRb2xra0pvbGtrTG9sa2t1b2xra3FvbGtra29sa2t6b2xra09vbGtrWW9sa2tnb2xra29vbGtreSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hhdmUgYSBnb29kIG5pZ2h0ICRuYW1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SGF2ZSBhIGdvb2QgbmlnaHQgJG5hbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0FvbGtrc29sa2tNb2xra1JvbGtrRW9sa2tNb2xra1VvbGtrWiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjQW9sa2tzb2xra01vbGtrUm9sa2tFb2xra01vbGtrVW9sa2taJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0dvb2QgbmlnaHQgSGFpbGV5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjZiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7R29vZCBuaWdodCBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjZiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMxOSIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzI2YiIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwzOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzI2YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0dvb2QgbmlnaHQgSGFpbGV5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0dvb2QgbmlnaHQgSGFpbGV5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7R29vZCBuaWdodCBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0dvb2QgbmlnaHQgSGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjZiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0X2hvdXIgPSAmcXVvdDswNzozOCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdCA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDswNzozOCZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7b2ZmbGluZS10ZXh0JnF1b3Q7Jmd0O0hhaWxleSBpcyBvZmZsaW5lJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICR0cmFuc2l0aW9uID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkdHJhbnNpdGlvblRleHQgPSAmcXVvdDtUaGUgbmV4dCBtb3JuaW5nJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVDaGF0RXAzXzEmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtHb29kIG1vcm5pbmcgaG9uZXkmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzIwIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzJfMzJhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDM5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMzJhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7R3JlYXQsIEnigJlsbCBiZSB3YWl0aW5nJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0dyZWF0LCBJ4oCZbGwgYmUgd2FpdGluZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0dyZWF0LCBJ4oCZbGwgYmUgd2FpdGluZyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7R29vZCBuaWdodCBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl8zMmEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RfaG91ciA9ICZxdW90OzA3OjM4JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0ID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkaG91ciA9ICZxdW90OzA3OjM4JnF1b3Q7Jmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtvZmZsaW5lLXRleHQmcXVvdDsmZ3Q7SGFpbGV5IGlzIG9mZmxpbmUmbHQ7L2RpdiZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJHRyYW5zaXRpb24gPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICR0cmFuc2l0aW9uVGV4dCA9ICZxdW90O1RoZSBuZXh0IG1vcm5pbmcmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2NoYXQgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgPSAmcXVvdDtBbm5pZUNoYXRFcDNfMSZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0dvb2QgbW9ybmluZyBob25leSZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMjEiIG5hbWU9IkhhaWxleUNoYXRFcDNfM18xIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsNDEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SGkgJG5hbWUsIGhvdyBhcmUgeW91PyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIaSAkbmFtZSwgaG93IGFyZSB5b3U/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SGkgJG5hbWUsIGhvdyBhcmUgeW91PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIGp1c3Qgd2FudGVkIHRvIHRoYW5rIHlvdSBmb3IgeWVzdGVyZGF5JnF1b3Q7ICZxdW90O0xvbGtrbm9sa2t6b2xra2xvbGtrSW9sa2t5b2xra2VvbGtrRW9sa2tEb2xra29vbGtrdm9sa2tSb2xra2dvbGtrbG9sa2tHb2xra1QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGp1c3Qgd2FudGVkIHRvIHRoYW5rIHlvdSBmb3IgeWVzdGVyZGF5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSBqdXN0IHdhbnRlZCB0byB0aGFuayB5b3UgZm9yIHllc3RlcmRheSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7VG9sa2txb2xra1RvbGtrQm9sa2thb2xra2NvbGtrVm9sa2tDJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjBzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNUb2xra3FvbGtrVG9sa2tCb2xra2FvbGtrY29sa2tWb2xra0MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SGkgSGFpbGV5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0hpIEhhaWxleSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfM18yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzIyIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfMiIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDQxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0hpIEhhaWxleSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIaSBIYWlsZXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtIaSBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7VW9sa2t4b2xra21vbGtreG9sa2tOb2xra1VvbGtrcG9sa2t5JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNVb2xra3hvbGtrbW9sa2t4b2xra05vbGtrVW9sa2twb2xra3kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7Tm8gcHJvYmxlbSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtObyBwcm9ibGVtJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzIzIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfMyIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDQxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O05vIHByb2JsZW0mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm8gcHJvYmxlbSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O05vIHByb2JsZW0mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Y29sa2tTb2xra1VvbGtrRW9sa2tlb2xra2dvbGtrZm9sa2ttJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNjb2xra1NvbGtrVW9sa2tFb2xra2VvbGtrZ29sa2tmb2xra20mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SGFwcHkgdG8gaGVscCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzQmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtIYXBweSB0byBoZWxwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzI0IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfNCIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDQxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfNCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0hhcHB5IHRvIGhlbHAmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGFwcHkgdG8gaGVscCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0hhcHB5IHRvIGhlbHAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfYmlnX3NtaWxlLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9iaWdfc21pbGUud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OyZsdDsmbHQ7aWYgICRoYWlsZXlfdWIgPT0gdHJ1ZSZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0tvbGtrUW9sa2tUb2xra0pvbGtrd29sa2tIb2xra2xvbGtrVSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4xcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjS29sa2tRb2xra1RvbGtrSm9sa2t3b2xra0hvbGtrbG9sa2tVJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0hleSwgYnV0IHRlbGwgbWUsIGhvdyBkaWQgaXQgZ28gd2l0aCB0aGF0IGd1eSBsYXN0IG5pZ2h0PyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzVhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SGV5LCBidXQgdGVsbCBtZSwgaG93IGRpZCBpdCBnbyB3aXRoIHRoYXQgZ3V5IGxhc3QgbmlnaHQ/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzVhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtQb2xra0JvbGtrbG9sa2tsb2xra1BvbGtrdW9sa2tZb2xra0kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuMXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I1BvbGtrQm9sa2tsb2xra2xvbGtrUG9sa2t1b2xra1lvbGtrSSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtEaWQgeW91IHRhbGsgdG8gYW55IG90aGVyIGd1eXMgYWZ0ZXIgd2Ugc3RvcHBlZCB0ZXh0aW5nIGxhc3QgbmlnaHQ/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfNWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtEaWQgeW91IHRhbGsgdG8gYW55IG90aGVyIGd1eXMgYWZ0ZXIgd2Ugc3RvcHBlZCB0ZXh0aW5nIGxhc3QgbmlnaHQ/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzViJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMjUiIG5hbWU9IkhhaWxleUNoYXRFcDNfM181YSIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDQxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfNWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtIZXksIGJ1dCB0ZWxsIG1lLCBob3cgZGlkIGl0IGdvIHdpdGggdGhhdCBndXkgbGFzdCBuaWdodD8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGV5LCBidXQgdGVsbCBtZSwgaG93IGRpZCBpdCBnbyB3aXRoIHRoYXQgZ3V5IGxhc3QgbmlnaHQ/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SGV5LCBidXQgdGVsbCBtZSwgaG93IGRpZCBpdCBnbyB3aXRoIHRoYXQgZ3V5IGxhc3QgbmlnaHQ/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1dlbGwsIEkgZm9sbG93ZWQgeW91ciBhZHZpY2UmcXVvdDsgJnF1b3Q7RG9sa2tyb2xra0dvbGtrWW9sa2tHb2xra3NvbGtrQ29sa2tCb2xra1FvbGtrT29sa2tOb2xra1lvbGtrUG9sa2tob2xra3ZvbGtrdyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dlbGwsIEkgZm9sbG93ZWQgeW91ciBhZHZpY2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtXZWxsLCBJIGZvbGxvd2VkIHlvdXIgYWR2aWNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7V2Ugc3RhcnRlZCB0YWxraW5nJnF1b3Q7ICZxdW90O1RvbGtraG9sa2txb2xra3FvbGtrVG9sa2tIb2xra1FvbGtrdW9sa2tyb2xra0lvbGtrQW9sa2tUb2xra1lvbGtrU29sa2tub2xra0YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZSBzdGFydGVkIHRhbGtpbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtXZSBzdGFydGVkIHRhbGtpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtIZSB3YXMgdmVyeSBpbnRlbnNlLCBoZSBrZXB0IGxlYW5pbmcgaW4gd2hpbGUgd2UgdGFsa2VkJnF1b3Q7ICZxdW90O0JvbGtrY29sa2tZb2xra3lvbGtrdm9sa2tZb2xra1dvbGtra29sa2tEb2xra2tvbGtrTW9sa2tRb2xra2lvbGtram9sa2tvb2xra1omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZSB3YXMgdmVyeSBpbnRlbnNlLCBoZSBrZXB0IGxlYW5pbmcgaW4gd2hpbGUgd2UgdGFsa2VkJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SGUgd2FzIHZlcnkgaW50ZW5zZSwgaGUga2VwdCBsZWFuaW5nIGluIHdoaWxlIHdlIHRhbGtlZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7cW9sa2t5b2xra0hvbGtrVm9sa2trb2xra1lvbGtrR29sa2tCJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjBzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNxb2xra3lvbGtrSG9sa2tWb2xra2tvbGtrWW9sa2tHb2xra0ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7TW1taCwgYW5kIHdoYXQgZWxzZT8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfM182YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O01tbWgsIGFuZCB3aGF0IGVsc2U/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzZhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMyNiIgbmFtZT0iSGFpbGV5Q2hhdEVwM18zXzZhIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsNDEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfM182YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O01tbWgsIGFuZCB3aGF0IGVsc2U/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O01tbWgsIGFuZCB3aGF0IGVsc2U/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7TW1taCwgYW5kIHdoYXQgZWxzZT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7V2VsbCwgSSBmb2xsb3dlZCB5b3VyIGFkdmljZSZxdW90OyAmcXVvdDtub2xra3hvbGtra29sa2trb2xra2pvbGtra29sa2tQb2xra3hvbGtrUm9sa2tqb2xra0VvbGtrcG9sa2tYb2xra3dvbGtrRG9sa2taJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2VsbCwgSSBmb2xsb3dlZCB5b3VyIGFkdmljZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1dlbGwsIEkgZm9sbG93ZWQgeW91ciBhZHZpY2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS40cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtUaGluZ3MgaGFwcGVuZWQsIGxldOKAmXMgc2F5JnF1b3Q7ICZxdW90O1JvbGtrTm9sa2trb2xra1ZvbGtrcm9sa2tEb2xra0hvbGtrcG9sa2tab2xra2JvbGtrZ29sa2tVb2xra2xvbGtrTG9sa2tPb2xra2UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGluZ3MgaGFwcGVuZWQsIGxldOKAmXMgc2F5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhpbmdzIGhhcHBlbmVkLCBsZXTigJlzIHNheSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7d29sa2tzb2xra1RvbGtreW9sa2tBb2xra1RvbGtrYm9sa2tZJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjRzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyN3b2xra3NvbGtrVG9sa2t5b2xra0FvbGtrVG9sa2tib2xra1kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7T2theSwgdGVsbCBtZSBpbiBkZXRhaWwmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfM183YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O09rYXksIHRlbGwgbWUgaW4gZGV0YWlsJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzdhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMyNyIgbmFtZT0iSGFpbGV5Q2hhdEVwM18zXzdhIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsNDEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfM183YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O09rYXksIHRlbGwgbWUgaW4gZGV0YWlsJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09rYXksIHRlbGwgbWUgaW4gZGV0YWlsJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7T2theSwgdGVsbCBtZSBpbiBkZXRhaWwmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbm9fd29yZHMud2VicCZxdW90OyB0cnVlICZxdW90O0hhaWxleSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX25vX3dvcmRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7QWJvdXQgdGhlIHNleD8mcXVvdDsgJnF1b3Q7R29sa2tpb2xra09vbGtrY29sa2tPb2xra3VvbGtrZG9sa2tob2xra2VvbGtrVG9sa2tzb2xra0dvbGtrRW9sa2tXb2xra05vbGtrUCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0Fib3V0IHRoZSBzZXg/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QWJvdXQgdGhlIHNleD8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1VvbGtrTW9sa2t1b2xra1lvbGtrcW9sa2tTb2xra0tvbGtrdiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjVW9sa2tNb2xra3VvbGtrWW9sa2txb2xra1NvbGtrS29sa2t2JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1llYWgsIHdoYXQgZWxzZT8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfM184YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1llYWgsIHdoYXQgZWxzZT8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfOGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzI4IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfOGEiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSw0MTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzhhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WWVhaCwgd2hhdCBlbHNlPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFoLCB3aGF0IGVsc2U/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WWVhaCwgd2hhdCBlbHNlPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIGRvbuKAmXQga25vdyBpZiBJIHdvdWxkIGZlZWwgY29tZm9ydGFibGUgc2hhcmluZyB0aGF0IHN0dWZmJnF1b3Q7ICZxdW90O0hvbGtrbG9sa2tYb2xra25vbGtrVW9sa2t6b2xra01vbGtrVG9sa2twb2xra2VvbGtrSW9sa2tib2xra09vbGtrRm9sa2t1b2xra20mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGRvbuKAmXQga25vdyBpZiBJIHdvdWxkIGZlZWwgY29tZm9ydGFibGUgc2hhcmluZyB0aGF0IHN0dWZmJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSBkb27igJl0IGtub3cgaWYgSSB3b3VsZCBmZWVsIGNvbWZvcnRhYmxlIHNoYXJpbmcgdGhhdCBzdHVmZiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7SG9sa2tJb2xra1lvbGtrSW9sa2trb2xra3ZvbGtraW9sa2tBJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjBzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNIb2xra0lvbGtrWW9sa2tJb2xra2tvbGtrdm9sa2tpb2xra0EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SXTigJlzIG5vcm1hbCB0byB0YWxrIGFib3V0IHRoZXNlIHRoaW5ncyB3aXRoIHlvdXIgZnJpZW5kcyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzlhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SXTigJlzIG5vcm1hbCB0byB0YWxrIGFib3V0IHRoZXNlIHRoaW5ncyB3aXRoIHlvdXIgZnJpZW5kcyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfM185YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMjkiIG5hbWU9IkhhaWxleUNoYXRFcDNfM185YSIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCw0MTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzlhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SXTigJlzIG5vcm1hbCB0byB0YWxrIGFib3V0IHRoZXNlIHRoaW5ncyB3aXRoIHlvdXIgZnJpZW5kcyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdOKAmXMgbm9ybWFsIHRvIHRhbGsgYWJvdXQgdGhlc2UgdGhpbmdzIHdpdGggeW91ciBmcmllbmRzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SXTigJlzIG5vcm1hbCB0byB0YWxrIGFib3V0IHRoZXNlIHRoaW5ncyB3aXRoIHlvdXIgZnJpZW5kcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtub2xra3NvbGtrSG9sa2tWb2xra1RvbGtrWG9sa2tsb2xra1cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I25vbGtrc29sa2tIb2xra1ZvbGtrVG9sa2tYb2xra2xvbGtrVyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtCZXNpZGVzLCB5b3UgYXNrZWQgZm9yIG15IGhlbHAmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfM18xMGEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtCZXNpZGVzLCB5b3UgYXNrZWQgZm9yIG15IGhlbHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMTBhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMzMCIgbmFtZT0iSGFpbGV5Q2hhdEVwM18zXzEwYSIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSw0MTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzEwYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0Jlc2lkZXMsIHlvdSBhc2tlZCBmb3IgbXkgaGVscCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCZXNpZGVzLCB5b3UgYXNrZWQgZm9yIG15IGhlbHAmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtCZXNpZGVzLCB5b3UgYXNrZWQgZm9yIG15IGhlbHAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7dW9sa2tub2xra01vbGtreG9sa2tGb2xra2RvbGtrYm9sa2tDJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyN1b2xra25vbGtrTW9sa2t4b2xra0ZvbGtrZG9sa2tib2xra0MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBuZWVkIHRvIGtub3cgaG93IHRoaW5ncyBhcmUgZ29pbmcmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfM18xMWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIG5lZWQgdG8ga25vdyBob3cgdGhpbmdzIGFyZSBnb2luZyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfM18xMWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzMxIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfMTFhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsNDIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfM18xMWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIG5lZWQgdG8ga25vdyBob3cgdGhpbmdzIGFyZSBnb2luZyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIG5lZWQgdG8ga25vdyBob3cgdGhpbmdzIGFyZSBnb2luZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgbmVlZCB0byBrbm93IGhvdyB0aGluZ3MgYXJlIGdvaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgZGlkbuKAmXQga25vdyBpdCB3YXMgbm9ybWFsIHRvIHNoYXJlIHRoZXNlIHRoaW5ncyZxdW90OyAmcXVvdDtyb2xra09vbGtrSm9sa2t3b2xra0RvbGtrSm9sa2tCb2xra0NvbGtraG9sa2t5b2xra2RvbGtrQ29sa2tsb2xra1RvbGtrQm9sa2tJJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBkaWRu4oCZdCBrbm93IGl0IHdhcyBub3JtYWwgdG8gc2hhcmUgdGhlc2UgdGhpbmdzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSBkaWRu4oCZdCBrbm93IGl0IHdhcyBub3JtYWwgdG8gc2hhcmUgdGhlc2UgdGhpbmdzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuOXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SeKAmXZlIG5ldmVyIGhhZCBjbG9zZSBmcmllbmRzIGxpa2UgdGhhdCZxdW90OyAmcXVvdDt1b2xra1ZvbGtrR29sa2t5b2xra0dvbGtrTG9sa2t4b2xra2lvbGtrcm9sa2tlb2xra3lvbGtrZW9sa2tMb2xra3dvbGtraG9sa2tCJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmXZlIG5ldmVyIGhhZCBjbG9zZSBmcmllbmRzIGxpa2UgdGhhdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0nigJl2ZSBuZXZlciBoYWQgY2xvc2UgZnJpZW5kcyBsaWtlIHRoYXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3BvbGtrTG9sa2tCb2xra0VvbGtrV29sa2tQb2xra1RvbGtrbCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjcG9sa2tMb2xra0JvbGtrRW9sa2tXb2xra1BvbGtrVG9sa2tsJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0p1c3QgZ28gZm9yIGl0LCB5b3XigJlsbCBmZWVsIGJldHRlciB0YWxraW5nIHRvIHNvbWVvbmUgYWJvdXQgaXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfM18xMmEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtKdXN0IGdvIGZvciBpdCwgeW914oCZbGwgZmVlbCBiZXR0ZXIgdGFsa2luZyB0byBzb21lb25lIGFib3V0IGl0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzEyYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMzIiIG5hbWU9IkhhaWxleUNoYXRFcDNfM18xMmEiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSw0MjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzEyYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0p1c3QgZ28gZm9yIGl0LCB5b3XigJlsbCBmZWVsIGJldHRlciB0YWxraW5nIHRvIHNvbWVvbmUgYWJvdXQgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SnVzdCBnbyBmb3IgaXQsIHlvdeKAmWxsIGZlZWwgYmV0dGVyIHRhbGtpbmcgdG8gc29tZW9uZSBhYm91dCBpdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0p1c3QgZ28gZm9yIGl0LCB5b3XigJlsbCBmZWVsIGJldHRlciB0YWxraW5nIHRvIHNvbWVvbmUgYWJvdXQgaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfZG91YnQud2VicCZxdW90OyB0cnVlICZxdW90O0hhaWxleSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2RvdWJ0LndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7VGhlIGd1eSBsZWFuZWQgaW4gb24gbWUsIGFuZCBoZSBzbWVsbGVkIHN0cm9uZ2x5IG9mIGFsY29ob2wmcXVvdDsgJnF1b3Q7ZW9sa2trb2xra0ZvbGtrSm9sa2ttb2xra3RvbGtrTG9sa2tYb2xra0ZvbGtrQm9sa2tzb2xra1pvbGtrdG9sa2tlb2xra0FvbGtreSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoZSBndXkgbGVhbmVkIGluIG9uIG1lLCBhbmQgaGUgc21lbGxlZCBzdHJvbmdseSBvZiBhbGNvaG9sJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhlIGd1eSBsZWFuZWQgaW4gb24gbWUsIGFuZCBoZSBzbWVsbGVkIHN0cm9uZ2x5IG9mIGFsY29ob2wmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtUaGVuIGhlIGludml0ZWQgbWUgdG8gZ28gc29tZXdoZXJlIGVsc2UmcXVvdDsgJnF1b3Q7SG9sa2tab2xra3lvbGtrbG9sa2tsb2xra0hvbGtrRG9sa2t5b2xra2xvbGtrbG9sa2tZb2xra1JvbGtrdW9sa2tqb2xra2VvbGtrUiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoZW4gaGUgaW52aXRlZCBtZSB0byBnbyBzb21ld2hlcmUgZWxzZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RoZW4gaGUgaW52aXRlZCBtZSB0byBnbyBzb21ld2hlcmUgZWxzZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgd291bGQgbmV2ZXIgaGF2ZSBhY2NlcHRlZCB1bmRlciBub3JtYWwgY2lyY3Vtc3RhbmNlcywgYnV0IEkgZGVjaWRlZCB0byBmb2xsb3cgeW91ciBhZHZpY2UmcXVvdDsgJnF1b3Q7R29sa2tyb2xra0hvbGtrVm9sa2tzb2xra2RvbGtrWm9sa2tQb2xra1NvbGtrc29sa2thb2xra2NvbGtrT29sa2tlb2xra3pvbGtraCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgd291bGQgbmV2ZXIgaGF2ZSBhY2NlcHRlZCB1bmRlciBub3JtYWwgY2lyY3Vtc3RhbmNlcywgYnV0IEkgZGVjaWRlZCB0byBmb2xsb3cgeW91ciBhZHZpY2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIHdvdWxkIG5ldmVyIGhhdmUgYWNjZXB0ZWQgdW5kZXIgbm9ybWFsIGNpcmN1bXN0YW5jZXMsIGJ1dCBJIGRlY2lkZWQgdG8gZm9sbG93IHlvdXIgYWR2aWNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDYuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS40cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7V2UgZ290IGluIGhpcyBjYXIsIGFuZCBoZSBzdGFydGVkIHB1dHRpbmcgaGlzIGhhbmQgdW5kZXIgbXkgZHJlc3MmcXVvdDsgJnF1b3Q7T29sa2tWb2xra2dvbGtraW9sa2tWb2xra0tvbGtrZW9sa2t2b2xra2pvbGtrcG9sa2tob2xra2FvbGtrdm9sa2tVb2xra1FvbGtrTiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dlIGdvdCBpbiBoaXMgY2FyLCBhbmQgaGUgc3RhcnRlZCBwdXR0aW5nIGhpcyBoYW5kIHVuZGVyIG15IGRyZXNzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7V2UgZ290IGluIGhpcyBjYXIsIGFuZCBoZSBzdGFydGVkIHB1dHRpbmcgaGlzIGhhbmQgdW5kZXIgbXkgZHJlc3MmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgOC42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjJzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIGZlbHQgcmVhbGx5IHVuY29tZm9ydGFibGUsIGJ1dCBJIGxldCBoaW0gYnkgbm90IHNheWluZyBhbnl0aGluZyZxdW90OyAmcXVvdDt6b2xra1ZvbGtrcW9sa2tFb2xra1FvbGtrZ29sa2tWb2xra1RvbGtrTW9sa2tSb2xra0hvbGtrRW9sa2t2b2xra3NvbGtrWG9sa2tmJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBmZWx0IHJlYWxseSB1bmNvbWZvcnRhYmxlLCBidXQgSSBsZXQgaGltIGJ5IG5vdCBzYXlpbmcgYW55dGhpbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIGZlbHQgcmVhbGx5IHVuY29tZm9ydGFibGUsIGJ1dCBJIGxldCBoaW0gYnkgbm90IHNheWluZyBhbnl0aGluZyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7TG9sa2tyb2xra3lvbGtrTW9sa2t1b2xra1dvbGtrcm9sa2twJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxMC40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjTG9sa2tyb2xra3lvbGtrTW9sa2t1b2xra1dvbGtrcm9sa2twJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0dvIG9uJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMTNhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7R28gb24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMTNhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMzMyIgbmFtZT0iSGFpbGV5Q2hhdEVwM18zXzEzYSIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDQyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMTNhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7R28gb24mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7R28gb24mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtHbyBvbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtIZSBzdGFydGVkIHRvdWNoaW5nIG1lJnF1b3Q7ICZxdW90O1NvbGtrTm9sa2thb2xra0hvbGtrQW9sa2tzb2xra1VvbGtrcG9sa2tDb2xra2tvbGtraW9sa2tTb2xra25vbGtrY29sa2tXb2xra3EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZSBzdGFydGVkIHRvdWNoaW5nIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SGUgc3RhcnRlZCB0b3VjaGluZyBtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0lzIGl0IHJlYWxseSBub3JtYWwgdG8gdGFsayBhYm91dCB0aGlzPyZxdW90OyAmcXVvdDtab2xra3NvbGtrc29sa2tVb2xra1BvbGtrYm9sa2tab2xra29vbGtrVG9sa2tnb2xra1FvbGtreW9sa2ttb2xra3dvbGtraG9sa2txJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXMgaXQgcmVhbGx5IG5vcm1hbCB0byB0YWxrIGFib3V0IHRoaXM/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SXMgaXQgcmVhbGx5IG5vcm1hbCB0byB0YWxrIGFib3V0IHRoaXM/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtqb2xra1JvbGtrUW9sa2t1b2xra29vbGtrZG9sa2tnb2xra0omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuN3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I2pvbGtrUm9sa2tRb2xra3VvbGtrb29sa2tkb2xra2dvbGtrSiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZZXMsIEkgYWxyZWFkeSB0b2xkIHlvdSwgeW91IG5lZWQgdG8gc3RlcCBvdXQgb2YgeW91ciBjb21mb3J0IHpvbmUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfM18xNGEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZZXMsIEkgYWxyZWFkeSB0b2xkIHlvdSwgeW91IG5lZWQgdG8gc3RlcCBvdXQgb2YgeW91ciBjb21mb3J0IHpvbmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMTRhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMzNCIgbmFtZT0iSGFpbGV5Q2hhdEVwM18zXzE0YSIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDQyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMTRhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WWVzLCBJIGFscmVhZHkgdG9sZCB5b3UsIHlvdSBuZWVkIHRvIHN0ZXAgb3V0IG9mIHlvdXIgY29tZm9ydCB6b25lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1llcywgSSBhbHJlYWR5IHRvbGQgeW91LCB5b3UgbmVlZCB0byBzdGVwIG91dCBvZiB5b3VyIGNvbWZvcnQgem9uZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1llcywgSSBhbHJlYWR5IHRvbGQgeW91LCB5b3UgbmVlZCB0byBzdGVwIG91dCBvZiB5b3VyIGNvbWZvcnQgem9uZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9kb3VidC53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7SGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfZG91YnQud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtUaGVuIGhlIHN0YXJ0ZWQgdG91Y2hpbmcgbWUgZG93biB0aGVyZSZxdW90OyAmcXVvdDtLb2xra0ZvbGtrQW9sa2tVb2xra0NvbGtra29sa2tDb2xra1BvbGtrU29sa2tTb2xra3JvbGtrTm9sa2tNb2xra0ZvbGtrY29sa2trJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhlbiBoZSBzdGFydGVkIHRvdWNoaW5nIG1lIGRvd24gdGhlcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGVuIGhlIHN0YXJ0ZWQgdG91Y2hpbmcgbWUgZG93biB0aGVyZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0hlIGhhZCByZWFsbHkgYmlnIGhhbmRzJnF1b3Q7ICZxdW90O3RvbGtrU29sa2tBb2xra0tvbGtrYm9sa2tkb2xra1pvbGtrS29sa2tob2xra1dvbGtrb29sa2tFb2xra29vbGtraW9sa2tGb2xra3omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZSBoYWQgcmVhbGx5IGJpZyBoYW5kcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0hlIGhhZCByZWFsbHkgYmlnIGhhbmRzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7VGhleSB3ZXJlIGEgYml0IHNsaXBwZXJ5JnF1b3Q7ICZxdW90O1ZvbGtrbm9sa2t6b2xra3dvbGtrTm9sa2tpb2xra0lvbGtrSW9sa2tNb2xra05vbGtrVm9sa2tab2xra3pvbGtrdm9sa2twb2xra2QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGV5IHdlcmUgYSBiaXQgc2xpcHBlcnkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGV5IHdlcmUgYSBiaXQgc2xpcHBlcnkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2JvbGtrS29sa2tHb2xra0lvbGtrcW9sa2tSb2xra2VvbGtrWCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC44cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjYm9sa2tLb2xra0dvbGtrSW9sa2txb2xra1JvbGtrZW9sa2tYJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1NsaXBwZXJ5PyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzE1YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1NsaXBwZXJ5PyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfM18xNWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzM1IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfMTVhIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsNDIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfM18xNWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtTbGlwcGVyeT8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U2xpcHBlcnk/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7U2xpcHBlcnk/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNnMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1VtLCB3ZWxsLCBJIHdhcyByZWFsbHkgd2V0JnF1b3Q7ICZxdW90O0pvbGtrSm9sa2tzb2xra1VvbGtrT29sa2tyb2xra0hvbGtrZm9sa2tub2xra3hvbGtrbW9sa2tmb2xra3dvbGtraG9sa2tkb2xra0EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtVbSwgd2VsbCwgSSB3YXMgcmVhbGx5IHdldCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1VtLCB3ZWxsLCBJIHdhcyByZWFsbHkgd2V0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7UGx1cywgaGUgcmlwcGVkIG15IHVuZGVyd2VhciB0byBnZXQgYmV0dGVyIGFjY2VzcywgSSBndWVzcyZxdW90OyAmcXVvdDtwb2xra2VvbGtra29sa2t4b2xra1FvbGtraW9sa2tab2xra3FvbGtrYm9sa2thb2xra0tvbGtrT29sa2tyb2xra2JvbGtrSm9sa2tpJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7UGx1cywgaGUgcmlwcGVkIG15IHVuZGVyd2VhciB0byBnZXQgYmV0dGVyIGFjY2VzcywgSSBndWVzcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1BsdXMsIGhlIHJpcHBlZCBteSB1bmRlcndlYXIgdG8gZ2V0IGJldHRlciBhY2Nlc3MsIEkgZ3Vlc3MmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1NvbGtrem9sa2tXb2xra1hvbGtrbm9sa2tab2xra3dvbGtreSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjU29sa2t6b2xra1dvbGtrWG9sa2tub2xra1pvbGtrd29sa2t5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0FuZCB0aGVuPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzE2YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0FuZCB0aGVuPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfM18xNmEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzM2IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfMTZhIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsNDIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfM18xNmEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtBbmQgdGhlbj8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5kIHRoZW4/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QW5kIHRoZW4/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1RoZW4gd2Ugd2VudCB0byBhbiBlbXB0eSBsb3QmcXVvdDsgJnF1b3Q7bm9sa2tJb2xra0xvbGtram9sa2tnb2xra1VvbGtrY29sa2tjb2xra1hvbGtrZG9sa2tYb2xra1FvbGtrYm9sa2t6b2xra2dvbGtrZCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoZW4gd2Ugd2VudCB0byBhbiBlbXB0eSBsb3QmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGVuIHdlIHdlbnQgdG8gYW4gZW1wdHkgbG90JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSB0aG91Z2h0IGhlIHdvdWxkIHRha2UgbWUgdG8gaGlzIHBsYWNlLCBidXQgaGUgZGlkbuKAmXQmcXVvdDsgJnF1b3Q7UG9sa2tDb2xra0FvbGtrcG9sa2tub2xra0ZvbGtrSm9sa2tWb2xra2lvbGtrd29sa2t3b2xra0NvbGtrdW9sa2tKb2xra2dvbGtrTCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgdGhvdWdodCBoZSB3b3VsZCB0YWtlIG1lIHRvIGhpcyBwbGFjZSwgYnV0IGhlIGRpZG7igJl0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSB0aG91Z2h0IGhlIHdvdWxkIHRha2UgbWUgdG8gaGlzIHBsYWNlLCBidXQgaGUgZGlkbuKAmXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy40cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjNzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtIZSBwdXNoZWQgbWUgb250byB0aGUgaG9vZCBvZiB0aGUgY2FyIGFuZCBsaWZ0ZWQgbXkgZHJlc3MmcXVvdDsgJnF1b3Q7Sm9sa2tlb2xra1hvbGtrbG9sa2tmb2xra3VvbGtrT29sa2tHb2xra1pvbGtrZm9sa2tFb2xra0lvbGtrZm9sa2tWb2xra0lvbGtrayZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hlIHB1c2hlZCBtZSBvbnRvIHRoZSBob29kIG9mIHRoZSBjYXIgYW5kIGxpZnRlZCBteSBkcmVzcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0hlIHB1c2hlZCBtZSBvbnRvIHRoZSBob29kIG9mIHRoZSBjYXIgYW5kIGxpZnRlZCBteSBkcmVzcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0FyZSB5b3Ugc3VyZSBJIHNob3VsZCBrZWVwIGdvaW5nPyZxdW90OyAmcXVvdDtYb2xra2hvbGtrRG9sa2twb2xra1JvbGtrRm9sa2tob2xra3JvbGtrQW9sa2tib2xra21vbGtrb29sa2tVb2xra2hvbGtrY29sa2tjJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QXJlIHlvdSBzdXJlIEkgc2hvdWxkIGtlZXAgZ29pbmc/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QXJlIHlvdSBzdXJlIEkgc2hvdWxkIGtlZXAgZ29pbmc/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtub2xra1dvbGtrZm9sa2tCb2xra2xvbGtrVW9sa2t2b2xra3YmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDYuNnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I25vbGtrV29sa2tmb2xra0JvbGtrbG9sa2tVb2xra3ZvbGtrdiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZZXMsIGtlZXAgZ29pbmcmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfM18xN2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZZXMsIGtlZXAgZ29pbmcmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMTdhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMzNyIgbmFtZT0iSGFpbGV5Q2hhdEVwM18zXzE3YSIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDQyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMTdhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WWVzLCBrZWVwIGdvaW5nJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1llcywga2VlcCBnb2luZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1llcywga2VlcCBnb2luZyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjNzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtMaWtlIEkgc2FpZCwgaGUgbGlmdGVkIG15IGRyZXNzIGFuZCBzdGFydGVkIGxpY2tpbmcgbWUgZG93biB0aGVyZSZxdW90OyAmcXVvdDt2b2xra0pvbGtrU29sa2t2b2xra1BvbGtraW9sa2tUb2xra1NvbGtrem9sa2tsb2xra0dvbGtrTW9sa2tRb2xra2dvbGtra29sa2t5JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGlrZSBJIHNhaWQsIGhlIGxpZnRlZCBteSBkcmVzcyBhbmQgc3RhcnRlZCBsaWNraW5nIG1lIGRvd24gdGhlcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtMaWtlIEkgc2FpZCwgaGUgbGlmdGVkIG15IGRyZXNzIGFuZCBzdGFydGVkIGxpY2tpbmcgbWUgZG93biB0aGVyZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNnMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1RoZW4gaGUgcHVsbGVkIGRvd24gaGlzIHBhbnRzJnF1b3Q7ICZxdW90O25vbGtrbW9sa2t4b2xra05vbGtrZm9sa2tEb2xra2ZvbGtrTW9sa2tUb2xra0FvbGtrU29sa2tGb2xra1dvbGtrYm9sa2tTb2xra2wmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGVuIGhlIHB1bGxlZCBkb3duIGhpcyBwYW50cyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RoZW4gaGUgcHVsbGVkIGRvd24gaGlzIHBhbnRzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSBjb3VsZCBzbWVsbCBhIHJlYWxseSBzdHJvbmcgb2RvciZxdW90OyAmcXVvdDtLb2xra1RvbGtreG9sa2tlb2xra3VvbGtrcW9sa2t4b2xra2xvbGtrcG9sa2tVb2xra3hvbGtrSm9sa2tqb2xra3RvbGtrSG9sa2tQJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBjb3VsZCBzbWVsbCBhIHJlYWxseSBzdHJvbmcgb2RvciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgY291bGQgc21lbGwgYSByZWFsbHkgc3Ryb25nIG9kb3ImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC43cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAyLjBzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtIaXMgZGljayB3YXMgcHJldHR5IGJpZyBldmVuIHdoZW4gc29mdC4gSSB0aG91Z2h0IHRoZXkgd2VyZW7igJl0IGFzIGJpZyBhcyBpbiBwb3JuLCBidXQgaGlzIHdhcyZxdW90OyAmcXVvdDtPb2xra29vbGtrWm9sa2tQb2xra2FvbGtrcm9sa2tPb2xra1ZvbGtrZW9sa2tTb2xra2ZvbGtrZW9sa2ttb2xra2NvbGtrVG9sa2tXJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGlzIGRpY2sgd2FzIHByZXR0eSBiaWcgZXZlbiB3aGVuIHNvZnQuIEkgdGhvdWdodCB0aGV5IHdlcmVu4oCZdCBhcyBiaWcgYXMgaW4gcG9ybiwgYnV0IGhpcyB3YXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtIaXMgZGljayB3YXMgcHJldHR5IGJpZyBldmVuIHdoZW4gc29mdC4gSSB0aG91Z2h0IHRoZXkgd2VyZW7igJl0IGFzIGJpZyBhcyBpbiBwb3JuLCBidXQgaGlzIHdhcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7UG9sa2tJb2xra1RvbGtrVm9sa2tmb2xra1ZvbGtrem9sa2t6JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA3LjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNQb2xra0lvbGtrVG9sa2tWb2xra2ZvbGtrVm9sa2t6b2xra3omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7U28geW91IHdhdGNoIGEgbG90IG9mIHBvcm4/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMThhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7U28geW91IHdhdGNoIGEgbG90IG9mIHBvcm4/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzE4YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMzgiIG5hbWU9IkhhaWxleUNoYXRFcDNfM18xOGEiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSw0MjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzE4YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1NvIHlvdSB3YXRjaCBhIGxvdCBvZiBwb3JuPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTbyB5b3Ugd2F0Y2ggYSBsb3Qgb2YgcG9ybj8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtTbyB5b3Ugd2F0Y2ggYSBsb3Qgb2YgcG9ybj8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfZG91YnQud2VicCZxdW90OyB0cnVlICZxdW90O0hhaWxleSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2RvdWJ0LndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SGUgcHVzaGVkIG15IGhlYWQgdG93YXJkIGhpcyBkaWNrJnF1b3Q7ICZxdW90O2lvbGtrbG9sa2tZb2xra0dvbGtrUW9sa2tVb2xra2tvbGtraG9sa2tOb2xra3lvbGtrR29sa2tIb2xra1RvbGtrcm9sa2tEb2xra0smcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZSBwdXNoZWQgbXkgaGVhZCB0b3dhcmQgaGlzIGRpY2smcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtIZSBwdXNoZWQgbXkgaGVhZCB0b3dhcmQgaGlzIGRpY2smcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjdzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtBbmQgYmVmb3JlIEkga25ldyBpdCwgSSB3YXMgb24gbXkga25lZXMgd2l0aCB0aGF0IGdpYW50IHRoaW5nIGluIG15IG1vdXRoJnF1b3Q7ICZxdW90O05vbGtra29sa2tRb2xra3hvbGtrcm9sa2tsb2xra2pvbGtrS29sa2tmb2xra0RvbGtrcW9sa2txb2xra21vbGtrZ29sa2tHb2xra08mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbmQgYmVmb3JlIEkga25ldyBpdCwgSSB3YXMgb24gbXkga25lZXMgd2l0aCB0aGF0IGdpYW50IHRoaW5nIGluIG15IG1vdXRoJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QW5kIGJlZm9yZSBJIGtuZXcgaXQsIEkgd2FzIG9uIG15IGtuZWVzIHdpdGggdGhhdCBnaWFudCB0aGluZyBpbiBteSBtb3V0aCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1RoZSBzbWVsbCB3YXMgcmVhbGx5IHN0cm9uZyZxdW90OyAmcXVvdDt1b2xra0RvbGtrUm9sa2tPb2xra21vbGtrbG9sa2tTb2xra0hvbGtrZm9sa2tzb2xra1lvbGtrT29sa2tTb2xra1pvbGtrdW9sa2tCJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhlIHNtZWxsIHdhcyByZWFsbHkgc3Ryb25nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhlIHNtZWxsIHdhcyByZWFsbHkgc3Ryb25nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDYuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC45cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7QW5kIEkgY291bGQgYmFyZWx5IG9wZW4gbXkgbW91dGggd2lkZSBlbm91Z2gmcXVvdDsgJnF1b3Q7Wm9sa2tob2xra1RvbGtrbm9sa2tob2xra2hvbGtrVm9sa2txb2xra2pvbGtrdm9sa2tDb2xra25vbGtrdG9sa2tMb2xra2lvbGtrTCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FuZCBJIGNvdWxkIGJhcmVseSBvcGVuIG15IG1vdXRoIHdpZGUgZW5vdWdoJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QW5kIEkgY291bGQgYmFyZWx5IG9wZW4gbXkgbW91dGggd2lkZSBlbm91Z2gmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0NvbGtrc29sa2tBb2xra2pvbGtrZW9sa2txb2xra2lvbGtrRCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNy41cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjQ29sa2tzb2xra0FvbGtram9sa2tlb2xra3FvbGtraW9sa2tEJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0FuZCBob3cgZGlkIGl0IGNvbnRpbnVlPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzE5YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0FuZCBob3cgZGlkIGl0IGNvbnRpbnVlPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfM18xOWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzM5IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfMTlhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDQyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMTlhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7QW5kIGhvdyBkaWQgaXQgY29udGludWU/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FuZCBob3cgZGlkIGl0IGNvbnRpbnVlPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0FuZCBob3cgZGlkIGl0IGNvbnRpbnVlPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtIZSBzdGFydGVkIG1vdmluZyBpbnNpZGUgbXkgbW91dGgmcXVvdDsgJnF1b3Q7WW9sa2tvb2xra2hvbGtrcW9sa2tCb2xra25vbGtrWm9sa2tOb2xra2dvbGtrYm9sa2twb2xra2FvbGtrcG9sa2tsb2xra25vbGtrdyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hlIHN0YXJ0ZWQgbW92aW5nIGluc2lkZSBteSBtb3V0aCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0hlIHN0YXJ0ZWQgbW92aW5nIGluc2lkZSBteSBtb3V0aCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMnMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgZmVsdCBraW5kIG9mIGNob2tlZCB3aXRoIGFsbCBvZiBpdCBpbiBteSB0aHJvYXQmcXVvdDsgJnF1b3Q7TW9sa2tBb2xra0ZvbGtrRW9sa2tNb2xra0RvbGtrSm9sa2tMb2xra0VvbGtrT29sa2t1b2xra3pvbGtrZG9sa2tGb2xra1VvbGtrdSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZmVsdCBraW5kIG9mIGNob2tlZCB3aXRoIGFsbCBvZiBpdCBpbiBteSB0aHJvYXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIGZlbHQga2luZCBvZiBjaG9rZWQgd2l0aCBhbGwgb2YgaXQgaW4gbXkgdGhyb2F0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7QnV0IHRoZW4gd2Ugc2F3IHNvbWUgbGlnaHRzJnF1b3Q7ICZxdW90O3pvbGtrem9sa2tRb2xra2lvbGtrem9sa2tSb2xra1FvbGtrcm9sa2tVb2xra01vbGtrZ29sa2tEb2xra0FvbGtrUG9sa2tnb2xra0ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgdGhlbiB3ZSBzYXcgc29tZSBsaWdodHMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtCdXQgdGhlbiB3ZSBzYXcgc29tZSBsaWdodHMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC41cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtIZSBzYWlkIHNvbWVvbmUgaGFkIHByb2JhYmx5IGNhbGxlZCB0aGUgcG9saWNlJnF1b3Q7ICZxdW90O0dvbGtrVG9sa2tCb2xra3ZvbGtrdW9sa2tub2xra2ZvbGtrRm9sa2tPb2xra0lvbGtrem9sa2tVb2xra1lvbGtrTm9sa2tyb2xra0kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZSBzYWlkIHNvbWVvbmUgaGFkIHByb2JhYmx5IGNhbGxlZCB0aGUgcG9saWNlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SGUgc2FpZCBzb21lb25lIGhhZCBwcm9iYWJseSBjYWxsZWQgdGhlIHBvbGljZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1NvIHdlIGxlZnQmcXVvdDsgJnF1b3Q7Rm9sa2trb2xra01vbGtrUW9sa2tVb2xra3VvbGtrQm9sa2trb2xra1lvbGtrbW9sa2t2b2xra0JvbGtram9sa2t3b2xra3lvbGtrViZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1NvIHdlIGxlZnQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtTbyB3ZSBsZWZ0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDYuOHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SGUgd2FudGVkIHRvIGZpbmQgYW5vdGhlciBzcG90JnF1b3Q7ICZxdW90O2VvbGtrU29sa2tHb2xra1RvbGtram9sa2tGb2xra0hvbGtrUm9sa2tXb2xra2FvbGtrZm9sa2t2b2xra3dvbGtrcm9sa2tob2xra1ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZSB3YW50ZWQgdG8gZmluZCBhbm90aGVyIHNwb3QmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtIZSB3YW50ZWQgdG8gZmluZCBhbm90aGVyIHNwb3QmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgOC4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtCdXQgaXQgd2FzIHByZXR0eSBsYXRlJnF1b3Q7ICZxdW90O1hvbGtrb29sa2tBb2xra1NvbGtrdm9sa2tLb2xra1VvbGtrV29sa2tMb2xra0FvbGtrWm9sa2tlb2xra1RvbGtrbm9sa2twb2xra2gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgaXQgd2FzIHByZXR0eSBsYXRlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QnV0IGl0IHdhcyBwcmV0dHkgbGF0ZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA5LjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuOXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1NvIEkgYXNrZWQgaGltIHRvIGRyb3AgbWUgb2ZmIGF0IHRoZSBidXMgc3RvcCBuZWFyYnksIHRoZW4gSSB0b29rIGFuIHViZXIgaG9tZSZxdW90OyAmcXVvdDtIb2xra0RvbGtrVm9sa2tib2xra29vbGtrb29sa2tob2xra0VvbGtrZG9sa2tyb2xra2lvbGtrYW9sa2thb2xra2JvbGtrWW9sa2tFJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U28gSSBhc2tlZCBoaW0gdG8gZHJvcCBtZSBvZmYgYXQgdGhlIGJ1cyBzdG9wIG5lYXJieSwgdGhlbiBJIHRvb2sgYW4gdWJlciBob21lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7U28gSSBhc2tlZCBoaW0gdG8gZHJvcCBtZSBvZmYgYXQgdGhlIGJ1cyBzdG9wIG5lYXJieSwgdGhlbiBJIHRvb2sgYW4gdWJlciBob21lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtZb2xra3lvbGtrUG9sa2tJb2xra2JvbGtrTG9sa2ttb2xra00mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDExLjZzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNZb2xra3lvbGtrUG9sa2tJb2xra2JvbGtrTG9sa2ttb2xra00mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SGUgZGlkbuKAmXQgZXZlbiB0YWtlIHlvdSBob21lPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzIwYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0hlIGRpZG7igJl0IGV2ZW4gdGFrZSB5b3UgaG9tZT8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMjBhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM0MCIgbmFtZT0iSGFpbGV5Q2hhdEVwM18zXzIwYSIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSw0MjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzIwYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0hlIGRpZG7igJl0IGV2ZW4gdGFrZSB5b3UgaG9tZT8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGUgZGlkbuKAmXQgZXZlbiB0YWtlIHlvdSBob21lPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0hlIGRpZG7igJl0IGV2ZW4gdGFrZSB5b3UgaG9tZT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS41cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7Tm8sIGhlIGV2ZW4gc2VlbWVkIGFubm95ZWQgdGhhdCBJIGRpZG7igJl0IHdhbnQgdG8gZ28gc29tZXdoZXJlIGVsc2Ugd2l0aCBoaW0mcXVvdDsgJnF1b3Q7SG9sa2tRb2xra2hvbGtrd29sa2tvb2xra2JvbGtrZm9sa2tEb2xra3pvbGtram9sa2txb2xra3VvbGtrRG9sa2tVb2xra2ZvbGtrZCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O05vLCBoZSBldmVuIHNlZW1lZCBhbm5veWVkIHRoYXQgSSBkaWRu4oCZdCB3YW50IHRvIGdvIHNvbWV3aGVyZSBlbHNlIHdpdGggaGltJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7Tm8sIGhlIGV2ZW4gc2VlbWVkIGFubm95ZWQgdGhhdCBJIGRpZG7igJl0IHdhbnQgdG8gZ28gc29tZXdoZXJlIGVsc2Ugd2l0aCBoaW0mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi40cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtUaG91Z2ggaGUgZ2F2ZSBtZSBoaXMgbnVtYmVyIHRvIG1lZXQgdXAgYW5vdGhlciB0aW1lJnF1b3Q7ICZxdW90O3JvbGtrRG9sa2tWb2xra3ZvbGtrcm9sa2t6b2xra25vbGtrcm9sa2tub2xra3lvbGtreW9sa2tFb2xra1VvbGtrbm9sa2tJb2xra2omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaG91Z2ggaGUgZ2F2ZSBtZSBoaXMgbnVtYmVyIHRvIG1lZXQgdXAgYW5vdGhlciB0aW1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhvdWdoIGhlIGdhdmUgbWUgaGlzIG51bWJlciB0byBtZWV0IHVwIGFub3RoZXIgdGltZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7eW9sa2tlb2xra1FvbGtrcW9sa2tmb2xra0ZvbGtrRW9sa2tSJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjFzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyN5b2xra2VvbGtrUW9sa2txb2xra2ZvbGtrRm9sa2tFb2xra1ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBzZWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfM18yMWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIHNlZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfM18yMWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzQxIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfMjFhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsNDM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfM18yMWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIHNlZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHNlZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgc2VlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0RvIHlvdSB0aGluayBJIHNob3VsZCBjYWxsIGhpbSBvciBzb21ldGhpbmc/JnF1b3Q7ICZxdW90O1dvbGtrRG9sa2tpb2xra0FvbGtrV29sa2tzb2xra0lvbGtrSW9sa2tjb2xra3NvbGtreG9sa2tBb2xra0xvbGtrTG9sa2tnb2xra1ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEbyB5b3UgdGhpbmsgSSBzaG91bGQgY2FsbCBoaW0gb3Igc29tZXRoaW5nPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0RvIHlvdSB0aGluayBJIHNob3VsZCBjYWxsIGhpbSBvciBzb21ldGhpbmc/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtQb2xra3ZvbGtraG9sa2tVb2xra2tvbGtra29sa2tYb2xra1EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuOHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I1BvbGtrdm9sa2tob2xra1VvbGtra29sa2trb2xra1hvbGtrUSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZZXMsIEkgdGhpbmsgaXQgY291bGQgYmUgaW50ZXJlc3RpbmcmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfM18yMmFfMSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1llcywgSSB0aGluayBpdCBjb3VsZCBiZSBpbnRlcmVzdGluZyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfM18yMmFfMSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjUG9sa2t2b2xra2hvbGtrVW9sa2trb2xra2tvbGtrWG9sa2tRJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O05vLCB0aGF0IGd1eSBqdXN0IHRvb2sgYWR2YW50YWdlIG9mIHlvdSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzIyYl8xJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7Tm8sIHRoYXQgZ3V5IGp1c3QgdG9vayBhZHZhbnRhZ2Ugb2YgeW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzIyYl8xJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM0MiIgbmFtZT0iSGFpbGV5Q2hhdEVwM18zXzIyYV8xIiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsNDM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfM18yMmFfMSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1llcywgSSB0aGluayBpdCBjb3VsZCBiZSBpbnRlcmVzdGluZyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZXMsIEkgdGhpbmsgaXQgY291bGQgYmUgaW50ZXJlc3RpbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZZXMsIEkgdGhpbmsgaXQgY291bGQgYmUgaW50ZXJlc3RpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGhhaWxleV91Yl9uZXh0ID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9ub3Rlcy5wdXNoKCZxdW90O0hhaWxleSBoYWQgc2V4IHdpdGggdGhhdCB1Z2x5IGJhc3RhcmQsIGFuZCBJIHJlY29tbWVuZGVkIHNoZSBrZWVwIHNlZWluZyBoaW0uJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7dG9sa2thb2xra0VvbGtrc29sa2tsb2xra3BvbGtrbG9sa2tEJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyN0b2xra2FvbGtrRW9sa2tzb2xra2xvbGtrcG9sa2tsb2xra0QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhvdWdoIG5vdCByaWdodCBub3cmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfM18yMmFfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1Rob3VnaCBub3QgcmlnaHQgbm93JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzIyYV8yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM0MyIgbmFtZT0iSGFpbGV5Q2hhdEVwM18zXzIyYV8yIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsNDM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfM18yMmFfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1Rob3VnaCBub3QgcmlnaHQgbm93JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1Rob3VnaCBub3QgcmlnaHQgbm93JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhvdWdoIG5vdCByaWdodCBub3cmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7VG9sa2t5b2xra1BvbGtrY29sa2tub2xra2JvbGtreG9sa2t4JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNUb2xra3lvbGtrUG9sa2tjb2xra25vbGtrYm9sa2t4b2xra3gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7R2l2ZSBpdCBhIGNvdXBsZSBvZiBkYXlzJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMjJhXzMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtHaXZlIGl0IGEgY291cGxlIG9mIGRheXMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMjJhXzMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzQ0IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfMjJhXzMiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSw0MzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzIyYV8zJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7R2l2ZSBpdCBhIGNvdXBsZSBvZiBkYXlzJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0dpdmUgaXQgYSBjb3VwbGUgb2YgZGF5cyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0dpdmUgaXQgYSBjb3VwbGUgb2YgZGF5cyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtPa2F5LCBJ4oCZbGwgY2hlY2sgd2l0aCB5b3UgYmVmb3JlIEkgZG8mcXVvdDsgJnF1b3Q7Vm9sa2tib2xra21vbGtrZG9sa2t6b2xra0pvbGtrbG9sa2trb2xra3hvbGtrZm9sa2t6b2xra3ZvbGtrWm9sa2tlb2xra0VvbGtrdiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09rYXksIEnigJlsbCBjaGVjayB3aXRoIHlvdSBiZWZvcmUgSSBkbyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O09rYXksIEnigJlsbCBjaGVjayB3aXRoIHlvdSBiZWZvcmUgSSBkbyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNnMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0J5IHRoZSB3YXksIHRoYW5rcyBhZ2FpbiAkbmFtZSZxdW90OyAmcXVvdDtkb2xra2pvbGtrS29sa2tVb2xra0pvbGtrSm9sa2tib2xra0pvbGtrR29sa2tsb2xra1VvbGtrQ29sa2trb2xra0ZvbGtrRG9sa2t6JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnkgdGhlIHdheSwgdGhhbmtzIGFnYWluICRuYW1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QnkgdGhlIHdheSwgdGhhbmtzIGFnYWluICRuYW1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuOXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC45cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSBmZWVsIHByb3RlY3RlZCBrbm93aW5nIEkgY2FuIGNvdW50IG9uIHlvdSZxdW90OyAmcXVvdDttb2xra0tvbGtra29sa2tsb2xra09vbGtrSW9sa2t1b2xra2dvbGtraW9sa2tqb2xra3BvbGtrVW9sa2txb2xra09vbGtram9sa2tqJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBmZWVsIHByb3RlY3RlZCBrbm93aW5nIEkgY2FuIGNvdW50IG9uIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgZmVlbCBwcm90ZWN0ZWQga25vd2luZyBJIGNhbiBjb3VudCBvbiB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2hvbGtrTW9sa2tJb2xra3NvbGtrbm9sa2tFb2xra1pvbGtrYyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjaG9sa2tNb2xra0lvbGtrc29sa2tub2xra0VvbGtrWm9sa2tjJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoYXTigJlzIHdoYXQgZnJpZW5kcyBhcmUgZm9yJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMjMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaGF04oCZcyB3aGF0IGZyaWVuZHMgYXJlIGZvciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfM18yMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzNDUiIG5hbWU9IkhhaWxleUNoYXRFcDNfM18yMmJfMSIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDQzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMjJiXzEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtObywgdGhhdCBndXkganVzdCB0b29rIGFkdmFudGFnZSBvZiB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm8sIHRoYXQgZ3V5IGp1c3QgdG9vayBhZHZhbnRhZ2Ugb2YgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7Tm8sIHRoYXQgZ3V5IGp1c3QgdG9vayBhZHZhbnRhZ2Ugb2YgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRoYWlsZXlfdWJfbmV4dCA9IGZhbHNlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X25vdGVzLnB1c2goJnF1b3Q7SGFpbGV5IGhhZCBzZXggd2l0aCB0aGF0IHVnbHkgYmFzdGFyZCwgYW5kIEkgcmVjb21tZW5kZWQgc2hlIHN0b3Agc2VlaW5nIGhpbS4mcXVvdDspJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtmb2xra1hvbGtra29sa2tlb2xra2xvbGtrVm9sa2tRb2xra08mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I2ZvbGtrWG9sa2trb2xra2VvbGtrbG9sa2tWb2xra1FvbGtrTyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGRvbuKAmXQgdGhpbmsgaGXigJlzIHdvcnRoIGl0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMjJiXzImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGRvbuKAmXQgdGhpbmsgaGXigJlzIHdvcnRoIGl0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzIyYl8yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM0NiIgbmFtZT0iSGFpbGV5Q2hhdEVwM18zXzIyYl8yIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsNDM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfM18yMmJfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgZG9u4oCZdCB0aGluayBoZeKAmXMgd29ydGggaXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBkb27igJl0IHRoaW5rIGhl4oCZcyB3b3J0aCBpdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgZG9u4oCZdCB0aGluayBoZeKAmXMgd29ydGggaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7VGhhbmtzICRuYW1lLCBJIGZlZWwgcHJvdGVjdGVkIGtub3dpbmcgSSBjYW4gY291bnQgb24geW91JnF1b3Q7ICZxdW90O01vbGtraG9sa2t1b2xra2FvbGtrZ29sa2tvb2xra3JvbGtreW9sa2tPb2xra2JvbGtrdW9sa2trb2xra3NvbGtrTW9sa2tnb2xra3YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGFua3MgJG5hbWUsIEkgZmVlbCBwcm90ZWN0ZWQga25vd2luZyBJIGNhbiBjb3VudCBvbiB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGFua3MgJG5hbWUsIEkgZmVlbCBwcm90ZWN0ZWQga25vd2luZyBJIGNhbiBjb3VudCBvbiB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0VvbGtrQm9sa2t2b2xra2ZvbGtrb29sa2tub2xra0RvbGtreCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi4wcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjRW9sa2tCb2xra3ZvbGtrZm9sa2tvb2xra25vbGtrRG9sa2t4JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoYXTigJlzIHdoYXQgZnJpZW5kcyBhcmUgZm9yJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMjMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaGF04oCZcyB3aGF0IGZyaWVuZHMgYXJlIGZvciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfM18yMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzNDciIG5hbWU9IkhhaWxleUNoYXRFcDNfM18yMyIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDQzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMjMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGF04oCZcyB3aGF0IGZyaWVuZHMgYXJlIGZvciZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGF04oCZcyB3aGF0IGZyaWVuZHMgYXJlIGZvciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RoYXTigJlzIHdoYXQgZnJpZW5kcyBhcmUgZm9yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2JpZ19zbWlsZS53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7SGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfYmlnX3NtaWxlLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7T2gsIGJ5IHRoZSB3YXksIGhvd+KAmXMgdGhlIHJlcG9ydCBnb2luZz8mcXVvdDsgJnF1b3Q7dW9sa2twb2xra3FvbGtrVG9sa2tWb2xra1VvbGtrcG9sa2tqb2xra2ZvbGtrSW9sa2tPb2xra3RvbGtrRG9sa2tMb2xra2FvbGtrZCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09oLCBieSB0aGUgd2F5LCBob3figJlzIHRoZSByZXBvcnQgZ29pbmc/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7T2gsIGJ5IHRoZSB3YXksIGhvd+KAmXMgdGhlIHJlcG9ydCBnb2luZz8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1BvbGtrT29sa2t1b2xra3dvbGtrYm9sa2thb2xra2tvbGtrQiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi43cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjUG9sa2tPb2xra3VvbGtrd29sa2tib2xra2FvbGtra29sa2tCJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1dlbGwsIGl04oCZcyBtb3ZpbmcgYWxvbmcsIHNsb3dseSBidXQgc3VyZWx5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMjQmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXZWxsLCBpdOKAmXMgbW92aW5nIGFsb25nLCBzbG93bHkgYnV0IHN1cmVseSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfM18yNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzNDgiIG5hbWU9IkhhaWxleUNoYXRFcDNfM18yNCIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDQzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMjQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtXZWxsLCBpdOKAmXMgbW92aW5nIGFsb25nLCBzbG93bHkgYnV0IHN1cmVseSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZWxsLCBpdOKAmXMgbW92aW5nIGFsb25nLCBzbG93bHkgYnV0IHN1cmVseSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1dlbGwsIGl04oCZcyBtb3ZpbmcgYWxvbmcsIHNsb3dseSBidXQgc3VyZWx5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3ZvbGtrZ29sa2tXb2xra2ZvbGtrem9sa2txb2xra0VvbGtreiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjdm9sa2tnb2xra1dvbGtrZm9sa2t6b2xra3FvbGtrRW9sa2t6JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgZG9u4oCZdCB0aGluayBJ4oCZdmUgZXZlciBkcmFuayB0aGlzIG11Y2ggUmVkIEJ1bGwgaW4gbXkgbGlmZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzI1JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBkb27igJl0IHRoaW5rIEnigJl2ZSBldmVyIGRyYW5rIHRoaXMgbXVjaCBSZWQgQnVsbCBpbiBteSBsaWZlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzI1JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM0OSIgbmFtZT0iSGFpbGV5Q2hhdEVwM18zXzI1IiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDQzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMjUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGRvbuKAmXQgdGhpbmsgSeKAmXZlIGV2ZXIgZHJhbmsgdGhpcyBtdWNoIFJlZCBCdWxsIGluIG15IGxpZmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBkb27igJl0IHRoaW5rIEnigJl2ZSBldmVyIGRyYW5rIHRoaXMgbXVjaCBSZWQgQnVsbCBpbiBteSBsaWZlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSBkb27igJl0IHRoaW5rIEnigJl2ZSBldmVyIGRyYW5rIHRoaXMgbXVjaCBSZWQgQnVsbCBpbiBteSBsaWZlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMnMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1RoYXTigJlzIGdvb2QsIHRoZSBpbXBvcnRhbnQgdGhpbmcgaXMgdGhhdCB5b3UgZmluaXNoIGl0IG9uIHRpbWUmcXVvdDsgJnF1b3Q7T29sa2tJb2xra2RvbGtrVm9sa2tjb2xra3dvbGtraG9sa2tab2xra1lvbGtrem9sa2tZb2xra2RvbGtrcm9sa2t2b2xra2tvbGtrVCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYXTigJlzIGdvb2QsIHRoZSBpbXBvcnRhbnQgdGhpbmcgaXMgdGhhdCB5b3UgZmluaXNoIGl0IG9uIHRpbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGF04oCZcyBnb29kLCB0aGUgaW1wb3J0YW50IHRoaW5nIGlzIHRoYXQgeW91IGZpbmlzaCBpdCBvbiB0aW1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSBrbm93IHlvdSBjYW4gZG8gaXQhJnF1b3Q7ICZxdW90O3hvbGtrSW9sa2tib2xra1VvbGtrSG9sa2txb2xra3VvbGtrS29sa2tOb2xra0lvbGtrZW9sa2trb2xra1RvbGtrR29sa2t4b2xra2YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGtub3cgeW91IGNhbiBkbyBpdCEmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIGtub3cgeW91IGNhbiBkbyBpdCEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1hvbGtrZG9sa2tSb2xra0RvbGtrRG9sa2tMb2xra3NvbGtrUiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjWG9sa2tkb2xra1JvbGtrRG9sa2tEb2xra0xvbGtrc29sa2tSJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoYW5rcyBIYWlsZXksIEkgYmVsaWV2ZSBzbyB0b28mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfM18yNiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoYW5rcyBIYWlsZXksIEkgYmVsaWV2ZSBzbyB0b28mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMjYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzUwIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfMjYiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsNDM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfM18yNiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RoYW5rcyBIYWlsZXksIEkgYmVsaWV2ZSBzbyB0b28mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhbmtzIEhhaWxleSwgSSBiZWxpZXZlIHNvIHRvbyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RoYW5rcyBIYWlsZXksIEkgYmVsaWV2ZSBzbyB0b28mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfbW91dGgud2VicCZxdW90OyB0cnVlICZxdW90O0hhaWxleSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X21vdXRoLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O3FvbGtrcW9sa2trb2xra2pvbGtrd29sa2tFb2xra0pvbGtrZyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjcW9sa2txb2xra2tvbGtram9sa2t3b2xra0VvbGtrSm9sa2tnJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0FueXdheSwgSSBzaG91bGQgZ2V0IGJhY2sgdG8gd29yayZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzI3JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QW55d2F5LCBJIHNob3VsZCBnZXQgYmFjayB0byB3b3JrJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzI3JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM1MSIgbmFtZT0iSGFpbGV5Q2hhdEVwM18zXzI3IiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsNDQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfM18yNyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0FueXdheSwgSSBzaG91bGQgZ2V0IGJhY2sgdG8gd29yayZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbnl3YXksIEkgc2hvdWxkIGdldCBiYWNrIHRvIHdvcmsmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtBbnl3YXksIEkgc2hvdWxkIGdldCBiYWNrIHRvIHdvcmsmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7cW9sa2t5b2xra1NvbGtrVW9sa2tZb2xra2JvbGtrTm9sa2tLJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNxb2xra3lvbGtrU29sa2tVb2xra1lvbGtrYm9sa2tOb2xra0smcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7TGV04oCZcyB0YWxrIGxhdGVyJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMjgmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtMZXTigJlzIHRhbGsgbGF0ZXImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMjgmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzUyIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfMjgiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSw0NDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzI4JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TGV04oCZcyB0YWxrIGxhdGVyJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0xldOKAmXMgdGFsayBsYXRlciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0xldOKAmXMgdGFsayBsYXRlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtTb3VuZHMgZ29vZCAkbmFtZSwgdGhhbmtzIGFnYWluJnF1b3Q7ICZxdW90O3VvbGtrTm9sa2tLb2xra3dvbGtrem9sa2tlb2xra0lvbGtrbW9sa2tPb2xra0FvbGtrZW9sa2tzb2xra0tvbGtrZG9sa2tTb2xra3YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTb3VuZHMgZ29vZCAkbmFtZSwgdGhhbmtzIGFnYWluJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7U291bmRzIGdvb2QgJG5hbWUsIHRoYW5rcyBhZ2FpbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjRzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7U291bmRzIGdvb2QgJG5hbWUsIHRoYW5rcyBhZ2FpbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzI4JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0X2hvdXIgPSAmcXVvdDswOTo0NyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdCA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDswOTo0NyZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7b2ZmbGluZS10ZXh0JnF1b3Q7Jmd0O0hhaWxleSBpcyBvZmZsaW5lJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0ID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjRzJmd0OyZndDsmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdFN0YXRlID0gJnF1b3Q7UGhpbGxpcHNDaGF0RXAzXzEmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS40cyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtIb3figJlzIHRoZSBpbmNvbWUgcmVwb3J0IGNvbWluZyBhbG9uZz8mcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzUzIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfNWIiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCw0NDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzViJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7RGlkIHlvdSB0YWxrIHRvIGFueSBvdGhlciBndXlzIGFmdGVyIHdlIHN0b3BwZWQgdGV4dGluZyBsYXN0IG5pZ2h0PyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEaWQgeW91IHRhbGsgdG8gYW55IG90aGVyIGd1eXMgYWZ0ZXIgd2Ugc3RvcHBlZCB0ZXh0aW5nIGxhc3QgbmlnaHQ/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7RGlkIHlvdSB0YWxrIHRvIGFueSBvdGhlciBndXlzIGFmdGVyIHdlIHN0b3BwZWQgdGV4dGluZyBsYXN0IG5pZ2h0PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtObywgSSBqdXN0IHdlbnQgaG9tZSBhZnRlciB3ZSBmaW5pc2hlZCB0YWxraW5nJnF1b3Q7ICZxdW90O2ZvbGtrSG9sa2tLb2xra2dvbGtrcm9sa2tyb2xra2xvbGtrRW9sa2tDb2xra0xvbGtrZG9sa2tzb2xra1RvbGtraG9sa2t3b2xra3gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtObywgSSBqdXN0IHdlbnQgaG9tZSBhZnRlciB3ZSBmaW5pc2hlZCB0YWxraW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7Tm8sIEkganVzdCB3ZW50IGhvbWUgYWZ0ZXIgd2UgZmluaXNoZWQgdGFsa2luZyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjhzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgd2FzIGtpbmQgb2YgdGlyZWQsIHRvIGJlIGhvbmVzdCZxdW90OyAmcXVvdDt2b2xra0lvbGtrQm9sa2tQb2xra1lvbGtrVm9sa2t2b2xra1FvbGtrTG9sa2tMb2xra0tvbGtrb29sa2tmb2xra3lvbGtrRW9sa2tOJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB3YXMga2luZCBvZiB0aXJlZCwgdG8gYmUgaG9uZXN0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSB3YXMga2luZCBvZiB0aXJlZCwgdG8gYmUgaG9uZXN0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtib2xra0dvbGtrWG9sa2tUb2xra0RvbGtrcm9sa2tFb2xra24mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuMnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I2JvbGtrR29sa2tYb2xra1RvbGtrRG9sa2tyb2xra0VvbGtrbiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGF04oCZcyBmaW5lLCBpdOKAmXMgYSBzdGVwLWJ5LXN0ZXAgdGhpbmcmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfM182YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoYXTigJlzIGZpbmUsIGl04oCZcyBhIHN0ZXAtYnktc3RlcCB0aGluZyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfM182YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzNTQiIG5hbWU9IkhhaWxleUNoYXRFcDNfM182YiIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDQ0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfNmImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGF04oCZcyBmaW5lLCBpdOKAmXMgYSBzdGVwLWJ5LXN0ZXAgdGhpbmcmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhdOKAmXMgZmluZSwgaXTigJlzIGEgc3RlcC1ieS1zdGVwIHRoaW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhhdOKAmXMgZmluZSwgaXTigJlzIGEgc3RlcC1ieS1zdGVwIHRoaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2pvbGtrT29sa2tYb2xra2lvbGtrZW9sa2tLb2xra1VvbGtrUyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjam9sa2tPb2xra1hvbGtraW9sa2tlb2xra0tvbGtrVW9sa2tTJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1lvdSBkb27igJl0IGhhdmUgdG8gbGl2ZSBhbGwgdGhlIGV4cGVyaWVuY2VzIGluIG9uZSBuaWdodCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzdiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WW91IGRvbuKAmXQgaGF2ZSB0byBsaXZlIGFsbCB0aGUgZXhwZXJpZW5jZXMgaW4gb25lIG5pZ2h0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzdiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM1NSIgbmFtZT0iSGFpbGV5Q2hhdEVwM18zXzdiIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsNDQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfM183YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdSBkb27igJl0IGhhdmUgdG8gbGl2ZSBhbGwgdGhlIGV4cGVyaWVuY2VzIGluIG9uZSBuaWdodCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3UgZG9u4oCZdCBoYXZlIHRvIGxpdmUgYWxsIHRoZSBleHBlcmllbmNlcyBpbiBvbmUgbmlnaHQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZb3UgZG9u4oCZdCBoYXZlIHRvIGxpdmUgYWxsIHRoZSBleHBlcmllbmNlcyBpbiBvbmUgbmlnaHQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7a29sa2tlb2xra1lvbGtrWm9sa2tEb2xra1NvbGtrdG9sa2tyJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNrb2xra2VvbGtrWW9sa2tab2xra0RvbGtrU29sa2t0b2xra3ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WW914oCZbGwgaGF2ZSBtb3JlIG9wcG9ydHVuaXRpZXMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfM184YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdeKAmWxsIGhhdmUgbW9yZSBvcHBvcnR1bml0aWVzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzhiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM1NiIgbmFtZT0iSGFpbGV5Q2hhdEVwM18zXzhiIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsNDQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfM184YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdeKAmWxsIGhhdmUgbW9yZSBvcHBvcnR1bml0aWVzJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdeKAmWxsIGhhdmUgbW9yZSBvcHBvcnR1bml0aWVzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WW914oCZbGwgaGF2ZSBtb3JlIG9wcG9ydHVuaXRpZXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7VGhhbmtzICRuYW1lLCBJIGZlZWwgcHJvdGVjdGVkIGtub3dpbmcgSSBjYW4gY291bnQgb24geW91JnF1b3Q7ICZxdW90O1lvbGtrVG9sa2tyb2xra0VvbGtrb29sa2tQb2xra1VvbGtraG9sa2tKb2xra2hvbGtrZm9sa2tTb2xra3BvbGtraW9sa2tKb2xra0ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGFua3MgJG5hbWUsIEkgZmVlbCBwcm90ZWN0ZWQga25vd2luZyBJIGNhbiBjb3VudCBvbiB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGFua3MgJG5hbWUsIEkgZmVlbCBwcm90ZWN0ZWQga25vd2luZyBJIGNhbiBjb3VudCBvbiB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3VvbGtrQm9sa2tlb2xra0hvbGtrUG9sa2tpb2xra3NvbGtrWSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi4wcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjdW9sa2tCb2xra2VvbGtrSG9sa2tQb2xra2lvbGtrc29sa2tZJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoYXTigJlzIHdoYXQgZnJpZW5kcyBhcmUgZm9yJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMjMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaGF04oCZcyB3aGF0IGZyaWVuZHMgYXJlIGZvciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfM18yMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzNTciIG5hbWU9IkhhaWxleV9ub3RlIiB0YWdzPSJub3Rlc2luIG5vdGhvdXIiIHBvc2l0aW9uPSI4NTAsNDQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtoZWFkZXIgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtOb3RlcyZxdW90OyB0cnVlJmd0OyZndDsKICAgICZsdDtkaXYgaWQ9JnF1b3Q7cGFkZGluZy1jb250YWluZXImcXVvdDsgY2xhc3M9JnF1b3Q7dGV4dF9ibGFjayZxdW90OyZndDsKICAgICAgICAmbHQ7ZGl2Jmd0Oy0gU2hl4oCZcyBhIGNvd29ya2VyLiBFdmVyIHNpbmNlIHNoZSBqb2luZWQgdGhlIGNvbXBhbnksIEkgZGVjaWRlZCB0byBoZWxwIGhlciBmaXQgaW4gZmFzdGVyLiBTaGXigJlzIGEgdmVyeSByZXNwb25zaWJsZSBhbmQgaGFyZHdvcmtpbmcgZ2lybCwgdGhvdWdoIHNoZSBzZWVtcyBhIGJpdCBsb25lbHkuJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDtmb3IgX2kgcmFuZ2UgJEhhaWxleV9ub3RlcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgc3R5bGU9JnF1b3Q7bWFyZ2luLXRvcDogMTZweCZxdW90OyZndDstIF9pJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDsvZm9yJmd0OyZndDsKICAgICZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM1OCIgbmFtZT0iSmVubmFfY2hhdCIgdGFncz0ibWFwcCBub3Rob3VyIiBwb3NpdGlvbj0iOTc1LDQ0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7Ci8qcmVnaW9uIEVtaWx5IGNoYXQqLwombHQ7Jmx0O2lmICRwbWRscCA9PSB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJEplbm5hX2NoYXQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtoZWFkZXIgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsgJEplbm5hX3BhdXNlZCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtoZWFkZXIgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsgdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aGVhZGVyICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7bWVzc2FnZV9jb250YWluZXImcXVvdDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRwbWRscCA9PSB0cnVlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2ZvciBfbGluZSByYW5nZSAkSmVubmFfY2hhdExvZyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aWYgX2xpbmUudHlwZSA9PSAxJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCBfbGluZS5zZW5kZXIgX2xpbmUubWVzc2FnZSBfbGluZS5hdmF0YXImZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Vsc2VpZiBfbGluZS50eXBlID09IDImZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlX2ltZyBfbGluZS5tZXNzYWdlJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtlbHNlaWYgX2xpbmUudHlwZSA9PSAzJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZV92aWRlbyBfbGluZS5tZXNzYWdlWzBdIF9saW5lLm1lc3NhZ2VbMV0mZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Vsc2VpZiBfbGluZS50eXBlID09IDQmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlX2Vtb2ppIF9saW5lLm1lc3NhZ2UgZmFsc2UgX2xpbmUuc2VuZGVyJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2ZvciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpZiAkSmVubmFfcGF1c2VkID09IGZhbHNlJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpZiAkSmVubmFfY2hhdCA9PSB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkSmVubmFfY2hhdFN0YXRlJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0O2RpdiBAaWQ9JnF1b3Q7JEplbm5hX2xhc3RJZC5zbGljZSgxKSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7SmVubmEgaXMgYW4gZXhjbHVzaXZlIGNoYXJhY3RlciBmb3IgUGF0cmVvbiBzdXBwb3J0ZXJzLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4xcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9pbWcgJnF1b3Q7YXNzZXRzL2ltZy9wcmVtaXVtL0plbm5hL2plbm5hX3Bob3RvXzAwLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtQb2xra1dvbGtrQ29sa2twb2xra1NvbGtrdW9sa2tzb2xra01vbGtrY29sa2t3b2xra0NvbGtrUm9sa2tVb2xra1dvbGtrRm9sa2trJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS41cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtUaGlzIGNoYXQgaW5jbHVkZXMgYSBzdG9yeWxpbmUgd2l0aCBhbiBleC1jb3dlcmtlciB0aGF0IG5vdyBpcyBhIG5zZncgY29udGVudCBjcmVhdG9yLiZxdW90OyAmcXVvdDtNb2xra3pvbGtram9sa2tFb2xra0xvbGtrcW9sa2tGb2xra2pvbGtrSW9sa2tZb2xra1ZvbGtrZ29sa2t3b2xra3ZvbGtram9sa2tqJnF1b3Q7KCkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC4ycyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjVzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O1lvdSBjYW4gZmluZCB0aGUgUGF0cmVvbiBjb2RlIGluIHRoZSBtb3N0IHJlY2VudCB1cGRhdGVzIG9uIG91ciBQYXRyZW9uIHBhZ2UuJnF1b3Q7ICZxdW90O3JvbGtrUW9sa2tCb2xra09vbGtrRm9sa2t1b2xra2hvbGtrTW9sa2ttb2xra1VvbGtrbG9sa2tKb2xra3FvbGtrVW9sa2thb2xra3ImcXVvdDsoKSZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICBzZXR1cC5zY3JvbGwoKTsKICAgICAgICAgICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDtlbmQmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2NoYXRfYmFyJnF1b3Q7Jmd0OwogICAgJmx0O2RpdiBpZD0mcXVvdDtjb250ZW50JnF1b3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkcG1kbHAgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgCiAgICAgICAgJmx0OyZsdDtpZiAkSmVubmFfcGF1c2VkID09IHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2lmICRKZW5uYV9vcHRpb25zWzBdJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7bGluayAkSmVubmFfb3B0aW9uc1swXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJEplbm5hX29wdGlvbnNbMF0ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2lmICRKZW5uYV9vcHRpb25zWzFdJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7bGluayAkSmVubmFfb3B0aW9uc1sxXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJEplbm5hX29wdGlvbnNbMV0ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2lmICRKZW5uYV9vcHRpb25zWzJdJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7bGluayAkSmVubmFfb3B0aW9uc1syXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJEplbm5hX29wdGlvbnNbMl0ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2lmICRKZW5uYV9vcHRpb25zWzNdJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7bGluayAkSmVubmFfb3B0aW9uc1szXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJEplbm5hX29wdGlvbnNbM10ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICZxdW90O1VubG9jayBQcmVtaXVtIENvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2dvdG8gJnF1b3Q7cGF0cm9uJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsvZGl2Jmd0OwombHQ7L2RpdiZndDsKJmx0OyZsdDt0aW1lZCAwLjJzJmd0OyZndDsKICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGxJbnN0YSgpOwogICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM1OSIgbmFtZT0iSmVubmFfbm90ZSIgdGFncz0ibm90ZXNpbiBub3Rob3VyIiBwb3NpdGlvbj0iMTEwMCw0NDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2hlYWRlciAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtOb3RlcyZxdW90OyB0cnVlJmd0OyZndDsKICAgICZsdDtkaXYgaWQ9JnF1b3Q7cGFkZGluZy1jb250YWluZXImcXVvdDsgY2xhc3M9JnF1b3Q7dGV4dF9ibGFjayZxdW90OyZndDsKICAgICAgICAmbHQ7ZGl2Jmd0Oy0gV2Ugam9pbmVkIHRoZSBjb21wYW55IGFyb3VuZCB0aGUgc2FtZSB0aW1lLiBJIGNvbnNpZGVyZWQgaGVyIGEgZ29vZCBmcmllbmQgdW50aWwgTXIuIFBoaWxsaXBzIHRhcmdldGVkIGhlciBhbmQgZ290IGhlciBmaXJlZC4gQWZ0ZXIgdGhhdCwgc2hlIGp1c3QgZGlzYXBwZWFyZWQgYW5kIEkgbmV2ZXIgaGVhcmQgYW55dGhpbmcgYWJvdXQgaGVyIGxpZmUgYWdhaW4uJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDtmb3IgX2kgcmFuZ2UgJEplbm5hX25vdGVzJmd0OyZndDsKICAgICAgICAgICAgJmx0O2RpdiBzdHlsZT0mcXVvdDttYXJnaW4tdG9wOiAxNnB4JnF1b3Q7Jmd0Oy0gX2kmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7Jmx0Oy9mb3ImZ3Q7Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzYwIiBuYW1lPSJKZW5uYTFfMSIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSw0NDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0hpICRuYW1lLCBpcyB0aGlzIHlvdXIgbnVtYmVyPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGkgJG5hbWUsIGlzIHRoaXMgeW91ciBudW1iZXI/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtIaSAkbmFtZSwgaXMgdGhpcyB5b3VyIG51bWJlcj8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtVb2xra3lvbGtrc29sa2tTb2xra2JvbGtrVG9sa2tGb2xra20mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuNnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I1VvbGtreW9sa2tzb2xra1NvbGtrYm9sa2tUb2xra0ZvbGtrbSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1dobyBpcyB0aGlzPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXaG8gaXMgdGhpcz8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtKZW5uYTFfMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM2MSIgbmFtZT0iSmVubmExXzIiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCw0NjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRTdGF0ZSAgPSAmcXVvdDtKZW5uYTFfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtXaG8gaXMgdGhpcz8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXaG8gaXMgdGhpcz8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O1dobyBpcyB0aGlzPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0l04oCZcyBtZSwgSmVubmEmcXVvdDsgJnF1b3Q7dG9sa2tJb2xra2JvbGtrWG9sa2t5b2xra0JvbGtrQW9sa2tGb2xra1hvbGtrQW9sa2tNb2xra1RvbGtra29sa2tFb2xra2hvbGtrUiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdOKAmXMgbWUsIEplbm5hJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtJdOKAmXMgbWUsIEplbm5hJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtZb3VyIGV4IGNvLXdvcmtlciZxdW90OyAmcXVvdDtnb2xra3FvbGtrQ29sa2tYb2xra21vbGtrY29sa2tMb2xra0lvbGtreW9sa2trb2xra1JvbGtraG9sa2tEb2xra2hvbGtrY29sa2twJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdXIgZXggY28td29ya2VyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtZb3VyIGV4IGNvLXdvcmtlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7VG9sa2tGb2xra25vbGtrdG9sa2ttb2xra3pvbGtrY29sa2tGJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjFzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdElkICA9ICZxdW90OyNUb2xra0ZvbGtrbm9sa2t0b2xra21vbGtrem9sa2tjb2xra0YmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtPaCwgSmVubmEhIEhvdyBoYXZlIHlvdSBiZWVuPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtPaCwgSmVubmEhIEhvdyBoYXZlIHlvdSBiZWVuPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8zJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM2MiIgbmFtZT0iSmVubmExXzMiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSw0NjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRTdGF0ZSAgPSAmcXVvdDtKZW5uYTFfMyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtPaCwgSmVubmEhIEhvdyBoYXZlIHlvdSBiZWVuPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09oLCBKZW5uYSEgSG93IGhhdmUgeW91IGJlZW4/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtPaCwgSmVubmEhIEhvdyBoYXZlIHlvdSBiZWVuPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtTb2xra3VvbGtrSG9sa2tqb2xra0dvbGtrUW9sa2t3b2xra2ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I1NvbGtrdW9sa2tIb2xra2pvbGtrR29sa2tRb2xra3dvbGtrYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgZGlkbuKAmXQgcmVjb2duaXplIHlvdSBmcm9tIHlvdXIgcHJvZmlsZSBwaWN0dXJlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgZGlkbuKAmXQgcmVjb2duaXplIHlvdSBmcm9tIHlvdXIgcHJvZmlsZSBwaWN0dXJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SmVubmExXzQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzYzIiBuYW1lPSJKZW5uYTFfNCIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDQ2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdFN0YXRlICA9ICZxdW90O0plbm5hMV80JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSmVubmFfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgZGlkbuKAmXQgcmVjb2duaXplIHlvdSBmcm9tIHlvdXIgcHJvZmlsZSBwaWN0dXJlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBkaWRu4oCZdCByZWNvZ25pemUgeW91IGZyb20geW91ciBwcm9maWxlIHBpY3R1cmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0kgZGlkbuKAmXQgcmVjb2duaXplIHlvdSBmcm9tIHlvdXIgcHJvZmlsZSBwaWN0dXJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7TG9sLCBJ4oCZdmUgY2hhbmdlZCBhIGxvdCZxdW90OyAmcXVvdDtQb2xra1JvbGtrQW9sa2tJb2xra1ZvbGtrRG9sa2trb2xra2tvbGtraW9sa2tDb2xra1ZvbGtrZW9sa2tFb2xra3hvbGtrRG9sa2tFJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0xvbCwgSeKAmXZlIGNoYW5nZWQgYSBsb3QmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0xvbCwgSeKAmXZlIGNoYW5nZWQgYSBsb3QmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3VvbGtrSG9sa2tzb2xra09vbGtrR29sa2tib2xra3hvbGtrUSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsjdW9sa2tIb2xra3NvbGtrT29sa2tHb2xra2JvbGtreG9sa2tRJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WWVhaCwgSSBjYW4gc2VlIHRoYXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0plbm5hMV81JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WWVhaCwgSSBjYW4gc2VlIHRoYXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtKZW5uYTFfNSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzNjQiIG5hbWU9Ikplbm5hMV81IiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsNDYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRKZW5uYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WWVhaCwgSSBjYW4gc2VlIHRoYXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFoLCBJIGNhbiBzZWUgdGhhdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7WWVhaCwgSSBjYW4gc2VlIHRoYXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7d29sa2tJb2xra29vbGtraW9sa2tib2xra2VvbGtrUm9sa2tlJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdElkICA9ICZxdW90OyN3b2xra0lvbGtrb29sa2tpb2xra2JvbGtrZW9sa2tSb2xra2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtIb3cgZGlkIHlvdSBnZXQgbXkgbnVtYmVyPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzYmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtIb3cgZGlkIHlvdSBnZXQgbXkgbnVtYmVyPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV82JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM2NSIgbmFtZT0iSmVubmExXzYiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCw0NjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRTdGF0ZSAgPSAmcXVvdDtKZW5uYTFfNiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtIb3cgZGlkIHlvdSBnZXQgbXkgbnVtYmVyPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvdyBkaWQgeW91IGdldCBteSBudW1iZXI/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtIb3cgZGlkIHlvdSBnZXQgbXkgbnVtYmVyPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0hhaWxleSBnYXZlIGl0IHRvIG1lJnF1b3Q7ICZxdW90O0lvbGtraG9sa2tSb2xra2xvbGtrQW9sa2tWb2xra1FvbGtrV29sa2tNb2xra2ZvbGtrRG9sa2tTb2xra3pvbGtrZm9sa2tjb2xra3QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGFpbGV5IGdhdmUgaXQgdG8gbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0hhaWxleSBnYXZlIGl0IHRvIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtJIG1lYW4sIEkgYXNrZWQgaGVyIGZvciBpdCZxdW90OyAmcXVvdDt6b2xra2FvbGtrSW9sa2twb2xra0NvbGtrTm9sa2t0b2xra0NvbGtrcW9sa2tEb2xra3NvbGtrcW9sa2ttb2xra3lvbGtrcm9sa2t5JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbWVhbiwgSSBhc2tlZCBoZXIgZm9yIGl0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtJIG1lYW4sIEkgYXNrZWQgaGVyIGZvciBpdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNXMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7WW91IHR3byB1c2VkIHRvIGJlIG15IGZyaWVuZHMsIGFuZCBJIHdhbnRlZCB0byBzZWUgaG93IHlvdeKAmXZlIGJlZW4mcXVvdDsgJnF1b3Q7ZW9sa2t6b2xra0pvbGtrbm9sa2tDb2xra0tvbGtrWG9sa2txb2xra1hvbGtrUm9sa2tJb2xra1dvbGtrVW9sa2tyb2xra0pvbGtrQSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3UgdHdvIHVzZWQgdG8gYmUgbXkgZnJpZW5kcywgYW5kIEkgd2FudGVkIHRvIHNlZSBob3cgeW914oCZdmUgYmVlbiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7WW91IHR3byB1c2VkIHRvIGJlIG15IGZyaWVuZHMsIGFuZCBJIHdhbnRlZCB0byBzZWUgaG93IHlvdeKAmXZlIGJlZW4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0kgaG9wZSBpdOKAmXMgbm90IGEgcHJvYmxlbSZxdW90OyAmcXVvdDtwb2xra29vbGtrU29sa2tub2xra3NvbGtrWG9sa2tDb2xra1JvbGtrWG9sa2tGb2xra0RvbGtrUm9sa2tIb2xra1JvbGtrQ29sa2tqJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgaG9wZSBpdOKAmXMgbm90IGEgcHJvYmxlbSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7SSBob3BlIGl04oCZcyBub3QgYSBwcm9ibGVtJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtxb2xra2xvbGtrVW9sa2tWb2xra1hvbGtrTW9sa2tzb2xra0QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDYuMHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I3FvbGtrbG9sa2tVb2xra1ZvbGtrWG9sa2tNb2xra3NvbGtrRCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O05vLCBub3QgYXQgYWxsJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfNyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O05vLCBub3QgYXQgYWxsJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SmVubmExXzcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzY2IiBuYW1lPSJKZW5uYTFfNyIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDQ2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdFN0YXRlICA9ICZxdW90O0plbm5hMV83JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSmVubmFfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O05vLCBub3QgYXQgYWxsJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm8sIG5vdCBhdCBhbGwmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O05vLCBub3QgYXQgYWxsJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2hvbGtrcW9sa2tUb2xra2xvbGtrdm9sa2tab2xra3JvbGtrcCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsjaG9sa2txb2xra1RvbGtrbG9sa2t2b2xra1pvbGtrcm9sa2twJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSB3YXMganVzdCBjdXJpb3VzIGFib3V0IGhvdyB5b3UgZm91bmQgbWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0plbm5hMV84JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSB3YXMganVzdCBjdXJpb3VzIGFib3V0IGhvdyB5b3UgZm91bmQgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtKZW5uYTFfOCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzNjciIG5hbWU9Ikplbm5hMV84IiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsNDYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzgmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRKZW5uYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSB3YXMganVzdCBjdXJpb3VzIGFib3V0IGhvdyB5b3UgZm91bmQgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHdhcyBqdXN0IGN1cmlvdXMgYWJvdXQgaG93IHlvdSBmb3VuZCBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7SSB3YXMganVzdCBjdXJpb3VzIGFib3V0IGhvdyB5b3UgZm91bmQgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7d29sa2tzb2xra2xvbGtrZG9sa2tkb2xra3pvbGtrYW9sa2tqJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdElkICA9ICZxdW90OyN3b2xra3NvbGtrbG9sa2tkb2xra2RvbGtrem9sa2thb2xra2omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtCdXQgdGVsbCBtZSwgd2hhdCBoYXZlIHlvdSBiZWVuIHVwIHRvIGFsbCB0aGlzIHRpbWU/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfOSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0J1dCB0ZWxsIG1lLCB3aGF0IGhhdmUgeW91IGJlZW4gdXAgdG8gYWxsIHRoaXMgdGltZT8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtKZW5uYTFfOSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzNjgiIG5hbWU9Ikplbm5hMV85IiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsNDYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRKZW5uYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7QnV0IHRlbGwgbWUsIHdoYXQgaGF2ZSB5b3UgYmVlbiB1cCB0byBhbGwgdGhpcyB0aW1lPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCB0ZWxsIG1lLCB3aGF0IGhhdmUgeW91IGJlZW4gdXAgdG8gYWxsIHRoaXMgdGltZT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0J1dCB0ZWxsIG1lLCB3aGF0IGhhdmUgeW91IGJlZW4gdXAgdG8gYWxsIHRoaXMgdGltZT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtXZWxsLCBhcyB5b3UgY2FuIHNlZSwgSeKAmXZlIGNoYW5nZWQgYSBsb3Qgc2luY2UgYmFjayB0aGVuJnF1b3Q7ICZxdW90O0VvbGtrbG9sa2t3b2xra29vbGtrdW9sa2tMb2xra2ZvbGtrY29sa2tVb2xra1hvbGtreW9sa2tCb2xra1JvbGtraG9sa2tVb2xra1UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2VsbCwgYXMgeW91IGNhbiBzZWUsIEnigJl2ZSBjaGFuZ2VkIGEgbG90IHNpbmNlIGJhY2sgdGhlbiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7V2VsbCwgYXMgeW91IGNhbiBzZWUsIEnigJl2ZSBjaGFuZ2VkIGEgbG90IHNpbmNlIGJhY2sgdGhlbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuOXMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7QXQgbGVhc3QgcGh5c2ljYWxseS4gSSB0aGluayBnZXR0aW5nIGZpcmVkIGJ5IHRoYXQgaWRpb3QgUGhpbGxpcHMgdHVybmVkIG91dCB0byBiZSByZWFsbHkgZ29vZCBmb3IgbWUmcXVvdDsgJnF1b3Q7eW9sa2tzb2xra2FvbGtrZG9sa2tSb2xra2tvbGtrRm9sa2tzb2xra3VvbGtrY29sa2ttb2xra2ZvbGtrWW9sa2tFb2xra1BvbGtrWCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBdCBsZWFzdCBwaHlzaWNhbGx5LiBJIHRoaW5rIGdldHRpbmcgZmlyZWQgYnkgdGhhdCBpZGlvdCBQaGlsbGlwcyB0dXJuZWQgb3V0IHRvIGJlIHJlYWxseSBnb29kIGZvciBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7QXQgbGVhc3QgcGh5c2ljYWxseS4gSSB0aGluayBnZXR0aW5nIGZpcmVkIGJ5IHRoYXQgaWRpb3QgUGhpbGxpcHMgdHVybmVkIG91dCB0byBiZSByZWFsbHkgZ29vZCBmb3IgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O1RoaXMgaXMgdGhlIG1lIHlvdSByZW1lbWJlcjomcXVvdDsgJnF1b3Q7VW9sa2tpb2xra1NvbGtrd29sa2ttb2xra1dvbGtrY29sa2tSb2xra1RvbGtrem9sa2tOb2xra3FvbGtrSG9sa2tSb2xra0pvbGtrSCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGlzIGlzIHRoZSBtZSB5b3UgcmVtZW1iZXI6JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtUaGlzIGlzIHRoZSBtZSB5b3UgcmVtZW1iZXI6JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDYuM3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfaW1nICZxdW90O2Fzc2V0cy9pbWcvcHJlbWl1bS9KZW5uYS9qZW5uYV9waG90b18wMS53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7Vm9sa2tUb2xra0FvbGtrcG9sa2t4b2xra0JvbGtraW9sa2tVb2xra2tvbGtrdW9sa2tnb2xra2FvbGtrTG9sa2tQb2xra0lvbGtrWiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAyLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL3ByZW1pdW0vSmVubmEvamVubmFfcGhvdG9fMDEud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzZXQgJHBob3Rvcy5wdXNoKCZxdW90O2Fzc2V0cy9pbWcvcHJlbWl1bS9KZW5uYS9qZW5uYV9waG90b18wMS53ZWJwJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA3LjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7QW5kIHRoaXMgaXMgaG93IEkgbG9vayBub3c6JnF1b3Q7ICZxdW90O2ZvbGtrb29sa2t6b2xra0lvbGtrYm9sa2tqb2xra3lvbGtrZG9sa2txb2xra0xvbGtrUW9sa2tnb2xra3lvbGtrWG9sa2trb2xra2kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5kIHRoaXMgaXMgaG93IEkgbG9vayBub3c6JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtBbmQgdGhpcyBpcyBob3cgSSBsb29rIG5vdzomcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgOS4xcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9pbWcgJnF1b3Q7YXNzZXRzL2ltZy9wcmVtaXVtL0plbm5hL2plbm5hX3Bob3RvXzAyLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtyb2xra2JvbGtrVG9sa2tub2xra3BvbGtrR29sa2tKb2xra2JvbGtrdG9sa2tqb2xra2dvbGtrS29sa2tLb2xra25vbGtrVW9sa2tWJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDIsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvcHJlbWl1bS9KZW5uYS9qZW5uYV9waG90b18wMi53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkcGhvdG9zLnB1c2goJnF1b3Q7YXNzZXRzL2ltZy9wcmVtaXVtL0plbm5hL2plbm5hX3Bob3RvXzAyLndlYnAmcXVvdDspJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEwLjFzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEplbm5hX25vdGVzLnB1c2goJnF1b3Q7SmVubmEgZ290IGJhY2sgaW4gdG91Y2ggd2l0aCBtZSBhZnRlciBhIGxvbmcgdGltZS4gU2hlIGdvdCBzb21lIGNvc21ldGljIHN1cmdlcnkgYW5kIGdvdCBpbiBzaGFwZSwgc28gbm93IHNoZSBsb29rcyByZWFsbHkgc2V4eS4mcXVvdDspJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxMC4xcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEplbm5hQWNoaXZlbWVudCA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O01vbGtrdW9sa2tSb2xra1BvbGtrQm9sa2trb2xra2RvbGtrcSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMTAuMXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I01vbGtrdW9sa2tSb2xra1BvbGtrQm9sa2trb2xra2RvbGtrcSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1dvdywgeW91IGxvb2sgYmVhdXRpZnVsLCBKZW5uYSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzEwYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1dvdywgeW91IGxvb2sgYmVhdXRpZnVsLCBKZW5uYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8xMGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsjTW9sa2t1b2xra1JvbGtrUG9sa2tCb2xra2tvbGtrZG9sa2txJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WW914oCZdmUgcmVhbGx5IGNoYW5nZWQsIGNvbmdyYXRzISZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzEwYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdeKAmXZlIHJlYWxseSBjaGFuZ2VkLCBjb25ncmF0cyEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtKZW5uYTFfMTBiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM2OSIgbmFtZT0iSmVubmExXzEwYSIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCw0NjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRTdGF0ZSAgPSAmcXVvdDtKZW5uYTFfMTBhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSmVubmFfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1dvdywgeW91IGxvb2sgYmVhdXRpZnVsLCBKZW5uYSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dvdywgeW91IGxvb2sgYmVhdXRpZnVsLCBKZW5uYSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7V293LCB5b3UgbG9vayBiZWF1dGlmdWwsIEplbm5hJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuN3MgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7VGhhbmtzLiBJIG9ubHkgaGFkIHR3byBvcHRpb25zIGFmdGVyIHRoZSBkZWVwIGRlcHJlc3Npb24gSSB3ZW50IHRocm91Z2ggd2hlbiBJIGdvdCBmaXJlZCZxdW90OyAmcXVvdDtEb2xra2hvbGtrS29sa2tlb2xra3JvbGtrT29sa2tvb2xra1FvbGtrZ29sa2txb2xra1FvbGtrSm9sa2tDb2xra3dvbGtraW9sa2ttJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYW5rcy4gSSBvbmx5IGhhZCB0d28gb3B0aW9ucyBhZnRlciB0aGUgZGVlcCBkZXByZXNzaW9uIEkgd2VudCB0aHJvdWdoIHdoZW4gSSBnb3QgZmlyZWQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O1RoYW5rcy4gSSBvbmx5IGhhZCB0d28gb3B0aW9ucyBhZnRlciB0aGUgZGVlcCBkZXByZXNzaW9uIEkgd2VudCB0aHJvdWdoIHdoZW4gSSBnb3QgZmlyZWQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0tlZXAgZ2FpbmluZyB3ZWlnaHQgb3IgY29tcGxldGVseSBjaGFuZ2UgbXkgbGlmZXN0eWxlJnF1b3Q7ICZxdW90O2hvbGtraG9sa2tsb2xra3hvbGtrQW9sa2tWb2xra1RvbGtrUG9sa2tjb2xra29vbGtrQW9sa2tKb2xra3pvbGtrWW9sa2tQb2xra2YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7S2VlcCBnYWluaW5nIHdlaWdodCBvciBjb21wbGV0ZWx5IGNoYW5nZSBteSBsaWZlc3R5bGUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0tlZXAgZ2FpbmluZyB3ZWlnaHQgb3IgY29tcGxldGVseSBjaGFuZ2UgbXkgbGlmZXN0eWxlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS41cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtMdWNraWx5LCBhbmQgd2l0aCBhIGJpdCBvZiBwbGFzdGljIHN1cmdlcnksIEkgd2FzIGFibGUgdG8gZG8gdGhlIGxhdHRlciZxdW90OyAmcXVvdDtib2xra09vbGtrZ29sa2t2b2xra2ZvbGtrWm9sa2t1b2xra1BvbGtram9sa2tDb2xra3VvbGtrYm9sa2tmb2xra3lvbGtrSG9sa2tQJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0x1Y2tpbHksIGFuZCB3aXRoIGEgYml0IG9mIHBsYXN0aWMgc3VyZ2VyeSwgSSB3YXMgYWJsZSB0byBkbyB0aGUgbGF0dGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtMdWNraWx5LCBhbmQgd2l0aCBhIGJpdCBvZiBwbGFzdGljIHN1cmdlcnksIEkgd2FzIGFibGUgdG8gZG8gdGhlIGxhdHRlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA2LjFzJmd0OyZndDsmbHQ7Jmx0O3NldCAkamVubmEgPSAkamVubmErMSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7am9sa2tIb2xra2xvbGtrcm9sa2tzb2xra0VvbGtraG9sa2tKJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA2LjFzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdElkICA9ICZxdW90OyNqb2xra0hvbGtrbG9sa2tyb2xra3NvbGtrRW9sa2tob2xra0omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtIb25lc3RseSwgaXQgd29ya2VkIG91dCBncmVhdCBmb3IgeW91JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMTEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtIb25lc3RseSwgaXQgd29ya2VkIG91dCBncmVhdCBmb3IgeW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SmVubmExXzExJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM3MCIgbmFtZT0iSmVubmExXzEwYiIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSw0NjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRTdGF0ZSAgPSAmcXVvdDtKZW5uYTFfMTBiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSmVubmFfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdeKAmXZlIHJlYWxseSBjaGFuZ2VkLCBjb25ncmF0cyEmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3XigJl2ZSByZWFsbHkgY2hhbmdlZCwgY29uZ3JhdHMhJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtZb3XigJl2ZSByZWFsbHkgY2hhbmdlZCwgY29uZ3JhdHMhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuN3MgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7VGhhbmtzLiBJIG9ubHkgaGFkIHR3byBvcHRpb25zIGFmdGVyIHRoZSBkZWVwIGRlcHJlc3Npb24gSSB3ZW50IHRocm91Z2ggd2hlbiBJIGdvdCBmaXJlZCZxdW90OyAmcXVvdDtCb2xra1RvbGtrWG9sa2tsb2xra2NvbGtrZm9sa2t2b2xra09vbGtrYm9sa2t3b2xra3ZvbGtrRm9sa2tBb2xra0xvbGtrQm9sa2tkJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYW5rcy4gSSBvbmx5IGhhZCB0d28gb3B0aW9ucyBhZnRlciB0aGUgZGVlcCBkZXByZXNzaW9uIEkgd2VudCB0aHJvdWdoIHdoZW4gSSBnb3QgZmlyZWQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O1RoYW5rcy4gSSBvbmx5IGhhZCB0d28gb3B0aW9ucyBhZnRlciB0aGUgZGVlcCBkZXByZXNzaW9uIEkgd2VudCB0aHJvdWdoIHdoZW4gSSBnb3QgZmlyZWQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0tlZXAgZ2FpbmluZyB3ZWlnaHQgb3IgY29tcGxldGVseSBjaGFuZ2UgbXkgbGlmZXN0eWxlJnF1b3Q7ICZxdW90O1BvbGtrR29sa2twb2xra3hvbGtrcG9sa2tQb2xra3RvbGtreW9sa2tsb2xra25vbGtrZ29sa2t4b2xra29vbGtrQ29sa2tUb2xra3MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7S2VlcCBnYWluaW5nIHdlaWdodCBvciBjb21wbGV0ZWx5IGNoYW5nZSBteSBsaWZlc3R5bGUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0tlZXAgZ2FpbmluZyB3ZWlnaHQgb3IgY29tcGxldGVseSBjaGFuZ2UgbXkgbGlmZXN0eWxlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS41cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtMdWNraWx5LCBhbmQgd2l0aCBhIGJpdCBvZiBwbGFzdGljIHN1cmdlcnksIEkgd2FzIGFibGUgdG8gZG8gdGhlIGxhdHRlciZxdW90OyAmcXVvdDtzb2xra0NvbGtrU29sa2tPb2xra05vbGtrTW9sa2tVb2xra2VvbGtrV29sa2tYb2xra3dvbGtrRW9sa2tjb2xra2RvbGtrbm9sa2t1JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0x1Y2tpbHksIGFuZCB3aXRoIGEgYml0IG9mIHBsYXN0aWMgc3VyZ2VyeSwgSSB3YXMgYWJsZSB0byBkbyB0aGUgbGF0dGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtMdWNraWx5LCBhbmQgd2l0aCBhIGJpdCBvZiBwbGFzdGljIHN1cmdlcnksIEkgd2FzIGFibGUgdG8gZG8gdGhlIGxhdHRlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7TW9sa2tEb2xra0FvbGtrYW9sa2tSb2xra1VvbGtrcm9sa2tkJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA2LjFzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdElkICA9ICZxdW90OyNNb2xra0RvbGtrQW9sa2thb2xra1JvbGtrVW9sa2tyb2xra2QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtIb25lc3RseSwgaXQgd29ya2VkIG91dCBncmVhdCBmb3IgeW91JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMTEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtIb25lc3RseSwgaXQgd29ya2VkIG91dCBncmVhdCBmb3IgeW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SmVubmExXzExJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM3MSIgbmFtZT0iSmVubmExXzExIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsNDcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzExJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSmVubmFfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0hvbmVzdGx5LCBpdCB3b3JrZWQgb3V0IGdyZWF0IGZvciB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIb25lc3RseSwgaXQgd29ya2VkIG91dCBncmVhdCBmb3IgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtIb25lc3RseSwgaXQgd29ya2VkIG91dCBncmVhdCBmb3IgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2NvbGtrZG9sa2tBb2xra0xvbGtrTG9sa2tqb2xra2xvbGtrbyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsjY29sa2tkb2xra0FvbGtrTG9sa2tMb2xra2pvbGtrbG9sa2tvJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WW914oCZcmUgYSB0b3RhbGx5IGRpZmZlcmVudCBwZXJzb24gbm93JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMTImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3XigJlyZSBhIHRvdGFsbHkgZGlmZmVyZW50IHBlcnNvbiBub3cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtKZW5uYTFfMTImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzcyIiBuYW1lPSJKZW5uYTFfMTIiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSw0NzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRTdGF0ZSAgPSAmcXVvdDtKZW5uYTFfMTImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRKZW5uYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WW914oCZcmUgYSB0b3RhbGx5IGRpZmZlcmVudCBwZXJzb24gbm93JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW914oCZcmUgYSB0b3RhbGx5IGRpZmZlcmVudCBwZXJzb24gbm93JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtZb3XigJlyZSBhIHRvdGFsbHkgZGlmZmVyZW50IHBlcnNvbiBub3cmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4ycyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtUaGFua3MgJG5hbWUmcXVvdDsgJnF1b3Q7am9sa2tub2xra3hvbGtrWm9sa2tYb2xra21vbGtrZG9sa2tHb2xra1hvbGtrUG9sa2t3b2xra2xvbGtrWm9sa2tKb2xra1JvbGtrdiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGFua3MgJG5hbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O1RoYW5rcyAkbmFtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7SSByZWFsbHkgbWlzc2VkIHRoaXMsIHlvdSB3ZXJlIGFsd2F5cyBzbyBraW5kIHRvIG1lJnF1b3Q7ICZxdW90O0RvbGtrRG9sa2tub2xra2JvbGtrQW9sa2tzb2xra1pvbGtrZm9sa2tJb2xra3pvbGtrZm9sa2tTb2xra0JvbGtreG9sa2t2b2xra3omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSByZWFsbHkgbWlzc2VkIHRoaXMsIHlvdSB3ZXJlIGFsd2F5cyBzbyBraW5kIHRvIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtJIHJlYWxseSBtaXNzZWQgdGhpcywgeW91IHdlcmUgYWx3YXlzIHNvIGtpbmQgdG8gbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjlzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0nigJltIHNvcnJ5IEkgZGlzYXBwZWFyZWQsIGJ1dCBJIGp1c3QgZGlkbuKAmXQgaGF2ZSB0aGUgc3RyZW5ndGggdG8gcHJldGVuZCBldmVyeXRoaW5nIHdhcyBva2F5IGFmdGVyIHdoYXQgaGFwcGVuZWQmcXVvdDsgJnF1b3Q7bG9sa2tFb2xra1pvbGtrT29sa2tNb2xra25vbGtrVm9sa2tyb2xra0ZvbGtrZW9sa2tOb2xra3ZvbGtrVG9sa2tBb2xra1ZvbGtrbCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBzb3JyeSBJIGRpc2FwcGVhcmVkLCBidXQgSSBqdXN0IGRpZG7igJl0IGhhdmUgdGhlIHN0cmVuZ3RoIHRvIHByZXRlbmQgZXZlcnl0aGluZyB3YXMgb2theSBhZnRlciB3aGF0IGhhcHBlbmVkJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtJ4oCZbSBzb3JyeSBJIGRpc2FwcGVhcmVkLCBidXQgSSBqdXN0IGRpZG7igJl0IGhhdmUgdGhlIHN0cmVuZ3RoIHRvIHByZXRlbmQgZXZlcnl0aGluZyB3YXMgb2theSBhZnRlciB3aGF0IGhhcHBlbmVkJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtVb2xra2VvbGtrRW9sa2tsb2xra0JvbGtrUm9sa2tab2xra04mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDUuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I1VvbGtrZW9sa2tFb2xra2xvbGtrQm9sa2tSb2xra1pvbGtrTiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgZ2V0IGl0LCBkb24mIzM5O3Qgd29ycnkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0plbm5hMV8xM2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGdldCBpdCwgZG9uJiMzOTt0IHdvcnJ5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SmVubmExXzEzYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdElkICA9ICZxdW90OyNVb2xra2VvbGtrRW9sa2tsb2xra0JvbGtrUm9sa2tab2xra04mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtKdXN0IGRvbuKAmXQgZGlzYXBwZWFyIGFnYWluJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMTNiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SnVzdCBkb27igJl0IGRpc2FwcGVhciBhZ2FpbiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8xM2ImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzczIiBuYW1lPSJKZW5uYTFfMTNhIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsNDcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzEzYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGdldCBpdCwgZG9u4oCZdCB3b3JyeSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZ2V0IGl0LCBkb27igJl0IHdvcnJ5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtJIGdldCBpdCwgZG9u4oCZdCB3b3JyeSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtQb2xra1ZvbGtrT29sa2tZb2xra0ZvbGtrRG9sa2t0b2xra2omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I1BvbGtrVm9sa2tPb2xra1lvbGtrRm9sa2tEb2xra3RvbGtraiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoZSBpbXBvcnRhbnQgdGhpbmcgaXMgdGhhdCB5b3XigJlyZSBkb2luZyB3ZWxsIG5vdyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzE0YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoZSBpbXBvcnRhbnQgdGhpbmcgaXMgdGhhdCB5b3XigJlyZSBkb2luZyB3ZWxsIG5vdyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8xNGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzc0IiBuYW1lPSJKZW5uYTFfMTRhIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsNDcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzE0YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGUgaW1wb3J0YW50IHRoaW5nIGlzIHRoYXQgeW914oCZcmUgZG9pbmcgd2VsbCBub3cmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGUgaW1wb3J0YW50IHRoaW5nIGlzIHRoYXQgeW914oCZcmUgZG9pbmcgd2VsbCBub3cmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O1RoZSBpbXBvcnRhbnQgdGhpbmcgaXMgdGhhdCB5b3XigJlyZSBkb2luZyB3ZWxsIG5vdyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjFzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O1RoYW5rcyZxdW90OyAmcXVvdDtLb2xra0FvbGtrbG9sa2tXb2xra0pvbGtrUG9sa2tWb2xra2ZvbGtrRW9sa2tYb2xra0hvbGtrVm9sa2tnb2xra2lvbGtrb29sa2tLJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYW5rcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7VGhhbmtzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfYmlnX3NtaWxlLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtKZW5uYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9iaWdfc21pbGUud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMi4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0J1dCBhbnl3YXksIHdoYXQgYWJvdXQgeW91PyZxdW90OyAmcXVvdDt0b2xra0xvbGtrRm9sa2tFb2xra09vbGtrZm9sa2tkb2xra0VvbGtrZG9sa2tIb2xra3JvbGtrTG9sa2t3b2xra3dvbGtrVm9sa2tXJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCBhbnl3YXksIHdoYXQgYWJvdXQgeW91PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7QnV0IGFueXdheSwgd2hhdCBhYm91dCB5b3U/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtIb3figJlzIGV2ZXJ5dGhpbmcgaW4geW91ciBsaWZlPyZxdW90OyAmcXVvdDtDb2xra21vbGtrRm9sa2tvb2xra1RvbGtrTW9sa2tJb2xra0NvbGtram9sa2tFb2xra2FvbGtrem9sa2tDb2xra3BvbGtrcW9sa2tCJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvd+KAmXMgZXZlcnl0aGluZyBpbiB5b3VyIGxpZmU/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtIb3figJlzIGV2ZXJ5dGhpbmcgaW4geW91ciBsaWZlPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7QXJlIHlvdSBzdGlsbCB3aXRoIEFubmllPyZxdW90OyAmcXVvdDtFb2xra1JvbGtrVG9sa2tob2xra0FvbGtrc29sa2thb2xra2tvbGtrUm9sa2tqb2xra1ZvbGtrT29sa2t2b2xra0FvbGtrT29sa2tnJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FyZSB5b3Ugc3RpbGwgd2l0aCBBbm5pZT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0FyZSB5b3Ugc3RpbGwgd2l0aCBBbm5pZT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1lvbGtrQW9sa2tPb2xra2pvbGtram9sa2tub2xra3FvbGtrRiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNS4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsjWW9sa2tBb2xra09vbGtram9sa2tqb2xra25vbGtrcW9sa2tGJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7V2VsbCwgZXZlcnl0aGluZ+KAmXMgZmluZS4gWW91IGtub3csIFBoaWxsaXBzIGlzIHN0aWxsIGJyZWF0aGluZyBkb3duIG15IG5lY2ssIHRoYXQgZ3V54oCZcyBzdWNoIGFuIGlkaW90JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMTUmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXZWxsLCBldmVyeXRoaW5n4oCZcyBmaW5lLiBZb3Uga25vdywgUGhpbGxpcHMgaXMgc3RpbGwgYnJlYXRoaW5nIGRvd24gbXkgbmVjaywgdGhhdCBndXnigJlzIHN1Y2ggYW4gaWRpb3QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtKZW5uYTFfMTUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzc1IiBuYW1lPSJKZW5uYTFfMTNiIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsNDcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzEzYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtKdXN0IGRvbuKAmXQgZGlzYXBwZWFyIGFnYWluJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SnVzdCBkb27igJl0IGRpc2FwcGVhciBhZ2FpbiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7SnVzdCBkb27igJl0IGRpc2FwcGVhciBhZ2FpbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtpb2xra2NvbGtrem9sa2tlb2xra25vbGtrYm9sa2tCb2xra2cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I2lvbGtrY29sa2t6b2xra2VvbGtrbm9sa2tib2xra0JvbGtrZyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgd2FudCB1cyB0byBzdGF5IGluIHRvdWNoIHRoaXMgdGltZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzE0YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgd2FudCB1cyB0byBzdGF5IGluIHRvdWNoIHRoaXMgdGltZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8xNGImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzc2IiBuYW1lPSJKZW5uYTFfMTRiIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsNDcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzE0YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIHdhbnQgdXMgdG8gc3RheSBpbiB0b3VjaCB0aGlzIHRpbWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHdhbnQgdXMgdG8gc3RheSBpbiB0b3VjaCB0aGlzIHRpbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0kgd2FudCB1cyB0byBzdGF5IGluIHRvdWNoIHRoaXMgdGltZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0RvbuKAmXQgd29ycnksIEkgcHJvbWlzZSBJIHdvbuKAmXQmcXVvdDsgJnF1b3Q7c29sa2tpb2xra0lvbGtrTW9sa2tsb2xra1dvbGtrTm9sa2tVb2xra3dvbGtrd29sa2ttb2xra3hvbGtrVW9sa2tUb2xra0RvbGtrdyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEb27igJl0IHdvcnJ5LCBJIHByb21pc2UgSSB3b27igJl0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtEb27igJl0IHdvcnJ5LCBJIHByb21pc2UgSSB3b27igJl0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtJIHJlYWxseSB3YW50ZWQgdG8gcmVjb25uZWN0IG5vIG1hdHRlciB3aGF0JnF1b3Q7ICZxdW90O3NvbGtrc29sa2ttb2xra2NvbGtrQW9sa2tkb2xra2dvbGtrZ29sa2tMb2xra2NvbGtraG9sa2t4b2xra1dvbGtrem9sa2tnb2xra2ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSByZWFsbHkgd2FudGVkIHRvIHJlY29ubmVjdCBubyBtYXR0ZXIgd2hhdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7SSByZWFsbHkgd2FudGVkIHRvIHJlY29ubmVjdCBubyBtYXR0ZXIgd2hhdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7QnV0IGFueXdheSwgd2hhdCBhYm91dCB5b3U/JnF1b3Q7ICZxdW90O0xvbGtraG9sa2tvb2xra2pvbGtrR29sa2tOb2xra2VvbGtrc29sa2tGb2xra0hvbGtrdm9sa2tUb2xra1NvbGtrQm9sa2t1b2xra1kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IGFueXdheSwgd2hhdCBhYm91dCB5b3U/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtCdXQgYW55d2F5LCB3aGF0IGFib3V0IHlvdT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0hvd+KAmXMgZXZlcnl0aGluZyBpbiB5b3VyIGxpZmU/JnF1b3Q7ICZxdW90O3ZvbGtrVm9sa2tNb2xra1NvbGtrem9sa2tGb2xra0ZvbGtrRm9sa2tWb2xra0RvbGtrQ29sa2tTb2xra0dvbGtrZ29sa2tIb2xra2QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SG934oCZcyBldmVyeXRoaW5nIGluIHlvdXIgbGlmZT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0hvd+KAmXMgZXZlcnl0aGluZyBpbiB5b3VyIGxpZmU/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDUuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtBcmUgeW91IHN0aWxsIHdpdGggQW5uaWU/JnF1b3Q7ICZxdW90O2RvbGtrQm9sa2twb2xra2tvbGtrRW9sa2tkb2xra3BvbGtrQW9sa2tHb2xra2lvbGtrTW9sa2tmb2xra2RvbGtrS29sa2t1b2xra3kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QXJlIHlvdSBzdGlsbCB3aXRoIEFubmllPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7QXJlIHlvdSBzdGlsbCB3aXRoIEFubmllPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7ZG9sa2tEb2xra1hvbGtrR29sa2tEb2xra1pvbGtram9sa2tMJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA2LjJzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdElkICA9ICZxdW90OyNkb2xra0RvbGtrWG9sa2tHb2xra0RvbGtrWm9sa2tqb2xra0wmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtXZWxsLCBldmVyeXRoaW5n4oCZcyBmaW5lLiBZb3Uga25vdywgUGhpbGxpcHMgaXMgc3RpbGwgYnJlYXRoaW5nIGRvd24gbXkgbmVjaywgdGhhdCBndXnigJlzIHN1Y2ggYW4gaWRpb3QmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0plbm5hMV8xNSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1dlbGwsIGV2ZXJ5dGhpbmfigJlzIGZpbmUuIFlvdSBrbm93LCBQaGlsbGlwcyBpcyBzdGlsbCBicmVhdGhpbmcgZG93biBteSBuZWNrLCB0aGF0IGd1eeKAmXMgc3VjaCBhbiBpZGlvdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8xNSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzNzciIG5hbWU9Ikplbm5hMV8xNSIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDQ3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdFN0YXRlICA9ICZxdW90O0plbm5hMV8xNSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtXZWxsLCBldmVyeXRoaW5n4oCZcyBmaW5lLiBZb3Uga25vdywgUGhpbGxpcHMgaXMgc3RpbGwgYnJlYXRoaW5nIGRvd24gbXkgbmVjaywgdGhhdCBndXnigJlzIHN1Y2ggYW4gaWRpb3QmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZWxsLCBldmVyeXRoaW5n4oCZcyBmaW5lLiBZb3Uga25vdywgUGhpbGxpcHMgaXMgc3RpbGwgYnJlYXRoaW5nIGRvd24gbXkgbmVjaywgdGhhdCBndXnigJlzIHN1Y2ggYW4gaWRpb3QmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O1dlbGwsIGV2ZXJ5dGhpbmfigJlzIGZpbmUuIFlvdSBrbm93LCBQaGlsbGlwcyBpcyBzdGlsbCBicmVhdGhpbmcgZG93biBteSBuZWNrLCB0aGF0IGd1eeKAmXMgc3VjaCBhbiBpZGlvdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O1RlbGwgbWUgYWJvdXQgaXQuLi4mcXVvdDsgJnF1b3Q7cG9sa2tGb2xra2ZvbGtrcW9sa2tMb2xra0JvbGtreG9sa2t4b2xra2pvbGtrd29sa2ttb2xra2hvbGtrVW9sa2t2b2xra25vbGtraSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUZWxsIG1lIGFib3V0IGl0Li4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtUZWxsIG1lIGFib3V0IGl0Li4uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtZb2xra05vbGtrRm9sa2tOb2xra3JvbGtra29sa2tZb2xra0ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I1lvbGtrTm9sa2tGb2xra05vbGtrcm9sa2trb2xra1lvbGtrQiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0FuZCB5ZWFoLCBBbm5pZSBhbmQgSSBhcmUgc3RpbGwgdG9nZXRoZXIsIHN0cm9uZ2VyIHRoYW4gZXZlci4mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0plbm5hMV8xNV9oYWxmJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QW5kIHllYWgsIEFubmllIGFuZCBJIGFyZSBzdGlsbCB0b2dldGhlciwgc3Ryb25nZXIgdGhhbiBldmVyLiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8xNV9oYWxmJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM3OCIgbmFtZT0iSmVubmExXzE2IiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsNDcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzE2JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSmVubmFfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1Rob3VnaCB1bmZvcnR1bmF0ZWx5LCBJIGhhdmUgdG8gYmUgYXdheSBmcm9tIGhvbWUgZm9yIGEgZmV3IG1vbnRocyBiZWNhdXNlIG9mIGEgd29yayBhc3NpZ25tZW50JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhvdWdoIHVuZm9ydHVuYXRlbHksIEkgaGF2ZSB0byBiZSBhd2F5IGZyb20gaG9tZSBmb3IgYSBmZXcgbW9udGhzIGJlY2F1c2Ugb2YgYSB3b3JrIGFzc2lnbm1lbnQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O1Rob3VnaCB1bmZvcnR1bmF0ZWx5LCBJIGhhdmUgdG8gYmUgYXdheSBmcm9tIGhvbWUgZm9yIGEgZmV3IG1vbnRocyBiZWNhdXNlIG9mIGEgd29yayBhc3NpZ25tZW50JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuMnMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7VGhhdCBzdWNrcy4uLiZxdW90OyAmcXVvdDtmb2xra1RvbGtrUm9sa2trb2xra1BvbGtrU29sa2tTb2xra3NvbGtreW9sa2t3b2xra1lvbGtraW9sa2tTb2xra1RvbGtrdG9sa2tJJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYXQgc3Vja3MuLi4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O1RoYXQgc3Vja3MuLi4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0FuZCB0aGUgam9iIHRoaW5nIHRvbyZxdW90OyAmcXVvdDtGb2xra1VvbGtrbW9sa2tab2xra3NvbGtrZG9sa2t4b2xra1JvbGtrV29sa2tTb2xra05vbGtrdG9sa2trb2xra0NvbGtrY29sa2tVJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FuZCB0aGUgam9iIHRoaW5nIHRvbyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7QW5kIHRoZSBqb2IgdGhpbmcgdG9vJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtGb2xra1hvbGtreW9sa2tBb2xra1VvbGtrT29sa2t4b2xra1cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuMnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I0ZvbGtrWG9sa2t5b2xra0FvbGtrVW9sa2tPb2xra3hvbGtrVyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1doYXQ/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMTcmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXaGF0PyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8xNyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzNzkiIG5hbWU9Ikplbm5hMV8xNyIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCw0NzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRTdGF0ZSAgPSAmcXVvdDtKZW5uYTFfMTcmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRKZW5uYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7V2hhdD8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXaGF0PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7V2hhdD8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4ycyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtOb3RoaW5nLCBsb2wmcXVvdDsgJnF1b3Q7Zm9sa2tab2xra2pvbGtrWG9sa2t5b2xra0tvbGtrV29sa2tXb2xra1VvbGtrdG9sa2tOb2xra2tvbGtrTW9sa2tyb2xra2dvbGtrdyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtOb3RoaW5nLCBsb2wmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O05vdGhpbmcsIGxvbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjFzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xtYW8ud2VicCZxdW90OyB0cnVlICZxdW90O0plbm5hJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xtYW8ud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMi4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjlzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0J1dCB0ZWxsIG1lLCBub3cgdGhhdCB5b3XigJl2ZSBzZWVuIG15IG5ldyBsb29rLCBkb27igJl0IHlvdSByZWNvZ25pemUgbWUgZnJvbSBzb2NpYWwgbWVkaWEgb3IgYW55dGhpbmc/JnF1b3Q7ICZxdW90O0lvbGtram9sa2tab2xra3RvbGtreW9sa2tmb2xra2dvbGtrVG9sa2ttb2xra0pvbGtrSm9sa2tSb2xra0FvbGtrQW9sa2tUb2xra1gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IHRlbGwgbWUsIG5vdyB0aGF0IHlvdeKAmXZlIHNlZW4gbXkgbmV3IGxvb2ssIGRvbuKAmXQgeW91IHJlY29nbml6ZSBtZSBmcm9tIHNvY2lhbCBtZWRpYSBvciBhbnl0aGluZz8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0J1dCB0ZWxsIG1lLCBub3cgdGhhdCB5b3XigJl2ZSBzZWVuIG15IG5ldyBsb29rLCBkb27igJl0IHlvdSByZWNvZ25pemUgbWUgZnJvbSBzb2NpYWwgbWVkaWEgb3IgYW55dGhpbmc/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtVb2xra3hvbGtrWm9sa2tob2xra0pvbGtrRG9sa2tCb2xra2EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuNnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I1VvbGtreG9sa2tab2xra2hvbGtrSm9sa2tEb2xra0JvbGtrYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0htbSwgbm8uIFNob3VsZCBJPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzE4JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SG1tLCBuby4gU2hvdWxkIEk/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SmVubmExXzE4JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM4MCIgbmFtZT0iSmVubmExXzE4IiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDQ3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdFN0YXRlICA9ICZxdW90O0plbm5hMV8xOCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtIbW0sIG5vLiBTaG91bGQgST8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIbW0sIG5vLiBTaG91bGQgST8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0htbSwgbm8uIFNob3VsZCBJPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0kgZ3Vlc3MgSeKAmW0gbm90IGFzIHBvcHVsYXIgYXMgSSB0aG91Z2h0JnF1b3Q7ICZxdW90O0ZvbGtrem9sa2tOb2xra0tvbGtrSG9sa2tob2xra1dvbGtrUm9sa2tKb2xra2RvbGtram9sa2tib2xra1ZvbGtrUm9sa2tFb2xra08mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBndWVzcyBJ4oCZbSBub3QgYXMgcG9wdWxhciBhcyBJIHRob3VnaHQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0kgZ3Vlc3MgSeKAmW0gbm90IGFzIHBvcHVsYXIgYXMgSSB0aG91Z2h0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuOHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtXZWxsLCBtYXliZSBpdOKAmXMgYmVjYXVzZSB5b3XigJlyZSBpbiBhIHJlbGF0aW9uc2hpcCZxdW90OyAmcXVvdDtBb2xra09vbGtrcW9sa2tZb2xra0ZvbGtrSW9sa2t1b2xra2lvbGtreG9sa2tjb2xra05vbGtrY29sa2t0b2xra0xvbGtrQm9sa2tzJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dlbGwsIG1heWJlIGl04oCZcyBiZWNhdXNlIHlvdeKAmXJlIGluIGEgcmVsYXRpb25zaGlwJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtXZWxsLCBtYXliZSBpdOKAmXMgYmVjYXVzZSB5b3XigJlyZSBpbiBhIHJlbGF0aW9uc2hpcCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7TW9sa2txb2xra1hvbGtrUW9sa2tJb2xra01vbGtrbm9sa2ttJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjJzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdElkICA9ICZxdW90OyNNb2xra3FvbGtrWG9sa2tRb2xra0lvbGtrTW9sa2tub2xra20mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtXaGF0IGRvIHlvdSBtZWFuPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzE5JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7V2hhdCBkbyB5b3UgbWVhbj8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtKZW5uYTFfMTkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzgxIiBuYW1lPSJKZW5uYTFfMTkiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCw0ODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRTdGF0ZSAgPSAmcXVvdDtKZW5uYTFfMTkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRKZW5uYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7V2hhdCBkbyB5b3UgbWVhbj8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXaGF0IGRvIHlvdSBtZWFuPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7V2hhdCBkbyB5b3UgbWVhbj8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMi42cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtJIGRvbuKAmXQga25vdyBpZiBJIHNob3VsZCBzYXkgdGhpcywgYnV0IEkgZ3Vlc3MgaXTigJlzIGJldHRlciBpZiBJIHRlbGwgeW91IG15c2VsZiBpbnN0ZWFkIG9mIHlvdSBmaW5kaW5nIG91dCB0aHJvdWdoIHJ1bW9ycyBsYXRlciZxdW90OyAmcXVvdDtKb2xra1RvbGtraG9sa2tmb2xra0xvbGtrbm9sa2tub2xra1ZvbGtrUG9sa2tRb2xra2xvbGtrTW9sa2thb2xra29vbGtrQ29sa2tTJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZG9u4oCZdCBrbm93IGlmIEkgc2hvdWxkIHNheSB0aGlzLCBidXQgSSBndWVzcyBpdOKAmXMgYmV0dGVyIGlmIEkgdGVsbCB5b3UgbXlzZWxmIGluc3RlYWQgb2YgeW91IGZpbmRpbmcgb3V0IHRocm91Z2ggcnVtb3JzIGxhdGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtJIGRvbuKAmXQga25vdyBpZiBJIHNob3VsZCBzYXkgdGhpcywgYnV0IEkgZ3Vlc3MgaXTigJlzIGJldHRlciBpZiBJIHRlbGwgeW91IG15c2VsZiBpbnN0ZWFkIG9mIHlvdSBmaW5kaW5nIG91dCB0aHJvdWdoIHJ1bW9ycyBsYXRlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7SeKAmXZlIGJlZW4gZG9pbmcgb25seWZhbnMmcXVvdDsgJnF1b3Q7Q29sa2t0b2xra3lvbGtreW9sa2tVb2xra3VvbGtrVm9sa2tNb2xra05vbGtrTW9sa2tkb2xra25vbGtrSW9sa2tvb2xra2RvbGtrdiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZdmUgYmVlbiBkb2luZyBvbmx5ZmFucyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7SeKAmXZlIGJlZW4gZG9pbmcgb25seWZhbnMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC41cyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRKZW5uYV9ub3Rlcy5wdXNoKCZxdW90O0FwcGFyZW50bHkgc2hl4oCZcyBub3cgd29ya2luZyBzZWxsaW5nIGNvbnRlbnQgb24gT25seUZhbnMsIG9yIHNvIHNoZSB0b2xkIG1lLiZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtkb2xra25vbGtrdW9sa2tFb2xra2lvbGtrYm9sa2tQb2xra0MmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuNXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I2RvbGtrbm9sa2t1b2xra0VvbGtraW9sa2tib2xra1BvbGtrQyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1NlcmlvdXNseT8gT3IgaXMgdGhpcyBhIGpva2U/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMjAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtTZXJpb3VzbHk/IE9yIGlzIHRoaXMgYSBqb2tlPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8yMCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzODIiIG5hbWU9Ikplbm5hMV8yMCIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDQ4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdFN0YXRlICA9ICZxdW90O0plbm5hMV8yMCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtTZXJpb3VzbHk/IE9yIGlzIHRoaXMgYSBqb2tlPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1NlcmlvdXNseT8gT3IgaXMgdGhpcyBhIGpva2U/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtTZXJpb3VzbHk/IE9yIGlzIHRoaXMgYSBqb2tlPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjVzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O1NlcmlvdXNseS4gSeKAmW0gc29tZXdoYXQgcG9wdWxhciwgd2hpY2ggaXMgd2h5IEkgYXNrZWQgaWYgeW91IG1pZ2h04oCZdmUgc2VlbiBtZSBhcm91bmQmcXVvdDsgJnF1b3Q7SW9sa2tSb2xra3lvbGtrZ29sa2tib2xra05vbGtrbG9sa2t0b2xra0dvbGtrQm9sa2tLb2xra1JvbGtrQW9sa2tFb2xra1VvbGtrciZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTZXJpb3VzbHkuIEnigJltIHNvbWV3aGF0IHBvcHVsYXIsIHdoaWNoIGlzIHdoeSBJIGFza2VkIGlmIHlvdSBtaWdodOKAmXZlIHNlZW4gbWUgYXJvdW5kJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtTZXJpb3VzbHkuIEnigJltIHNvbWV3aGF0IHBvcHVsYXIsIHdoaWNoIGlzIHdoeSBJIGFza2VkIGlmIHlvdSBtaWdodOKAmXZlIHNlZW4gbWUgYXJvdW5kJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtJIGhvcGUgaXQgZG9lc27igJl0IHdlaXJkIHlvdSBvdXQmcXVvdDsgJnF1b3Q7aG9sa2t3b2xra29vbGtrY29sa2tRb2xra09vbGtrZG9sa2tJb2xra1RvbGtrcm9sa2tyb2xra2xvbGtrZm9sa2tKb2xra09vbGtraiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGhvcGUgaXQgZG9lc27igJl0IHdlaXJkIHlvdSBvdXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0kgaG9wZSBpdCBkb2VzbuKAmXQgd2VpcmQgeW91IG91dCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7a29sa2tNb2xra2tvbGtrSW9sa2tTb2xra3pvbGtrUG9sa2tjJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjdzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdElkICA9ICZxdW90OyNrb2xra01vbGtra29sa2tJb2xra1NvbGtrem9sa2tQb2xra2MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtBcyBsb25nIGFzIHlvdSBtYWtlIG1vbmV5LCBJIHRoaW5rIGl04oCZcyBmaW5lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMjFhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QXMgbG9uZyBhcyB5b3UgbWFrZSBtb25leSwgSSB0aGluayBpdOKAmXMgZmluZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8yMWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsja29sa2tNb2xra2tvbGtrSW9sa2tTb2xra3pvbGtrUG9sa2tjJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSB0aGluayBpdOKAmXMgYXdlc29tZSEmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0plbm5hMV8yMWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIHRoaW5rIGl04oCZcyBhd2Vzb21lISZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8yMWImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzgzIiBuYW1lPSJKZW5uYTFfMjFhIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsNDg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzIxYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtBcyBsb25nIGFzIHlvdSBtYWtlIG1vbmV5LCBJIHRoaW5rIGl04oCZcyBmaW5lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QXMgbG9uZyBhcyB5b3UgbWFrZSBtb25leSwgSSB0aGluayBpdOKAmXMgZmluZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7QXMgbG9uZyBhcyB5b3UgbWFrZSBtb25leSwgSSB0aGluayBpdOKAmXMgZmluZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt1b2xra3ZvbGtrV29sa2tqb2xra01vbGtrdm9sa2tqb2xra1UmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I3VvbGtrdm9sa2tXb2xra2pvbGtrTW9sa2t2b2xra2pvbGtrVSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0l04oCZcyB5b3VyIGRlY2lzaW9uJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMjJhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SXTigJlzIHlvdXIgZGVjaXNpb24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtKZW5uYTFfMjJhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM4NCIgbmFtZT0iSmVubmExXzIxYiIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDQ4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdFN0YXRlICA9ICZxdW90O0plbm5hMV8yMWImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRKZW5uYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSB0aGluayBpdOKAmXMgYXdlc29tZSEmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHRoaW5rIGl04oCZcyBhd2Vzb21lISZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7SSB0aGluayBpdOKAmXMgYXdlc29tZSEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGplbm5hID0gJGplbm5hKzEmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7YW9sa2t1b2xra1lvbGtrWm9sa2t0b2xra0RvbGtrbG9sa2tSJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdElkICA9ICZxdW90OyNhb2xra3VvbGtrWW9sa2tab2xra3RvbGtrRG9sa2tsb2xra1ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDvwn5iBJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMjJiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q78J+YgSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8yMmImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzg1IiBuYW1lPSJKZW5uYTFfMjJhIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsNDg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzIyYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJdOKAmXMgeW91ciBkZWNpc2lvbiZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0l04oCZcyB5b3VyIGRlY2lzaW9uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtJdOKAmXMgeW91ciBkZWNpc2lvbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O1RoYW5rcywgSSBrbmV3IHlvdSB3b3VsZG7igJl0IGp1ZGdlIG1lJnF1b3Q7ICZxdW90O0lvbGtrYm9sa2tWb2xra2xvbGtrWW9sa2tmb2xra3pvbGtrWG9sa2t4b2xra1ZvbGtrQm9sa2tsb2xra1ZvbGtrdm9sa2tob2xra1MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhbmtzLCBJIGtuZXcgeW91IHdvdWxkbuKAmXQganVkZ2UgbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O1RoYW5rcywgSSBrbmV3IHlvdSB3b3VsZG7igJl0IGp1ZGdlIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtQbHVzLCBpdCBoZWxwcyBtZSBwYXkgdGhlIGJpbGxzJnF1b3Q7ICZxdW90O3FvbGtrWm9sa2tib2xra2xvbGtrUm9sa2tGb2xra01vbGtrdW9sa2tWb2xra1hvbGtrWG9sa2t2b2xra3VvbGtrTW9sa2tDb2xra2ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7UGx1cywgaXQgaGVscHMgbWUgcGF5IHRoZSBiaWxscyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7UGx1cywgaXQgaGVscHMgbWUgcGF5IHRoZSBiaWxscyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuOXMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7VGhhbmtzIHRvIHRoaXMsIEnigJltIGFscmVhZHkgZWFybmluZyB3YXkgbW9yZSB0aGFuIEkgZGlkIGF0IHRoZSBjb21wYW55IGJlZm9yZSB0aGF0IGlkaW90IGZpcmVkIG1lJnF1b3Q7ICZxdW90O2tvbGtrZG9sa2t2b2xra1hvbGtrSG9sa2ttb2xra3JvbGtrRm9sa2tBb2xra2VvbGtrS29sa2trb2xra2NvbGtrdm9sa2tab2xra2smcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhbmtzIHRvIHRoaXMsIEnigJltIGFscmVhZHkgZWFybmluZyB3YXkgbW9yZSB0aGFuIEkgZGlkIGF0IHRoZSBjb21wYW55IGJlZm9yZSB0aGF0IGlkaW90IGZpcmVkIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtUaGFua3MgdG8gdGhpcywgSeKAmW0gYWxyZWFkeSBlYXJuaW5nIHdheSBtb3JlIHRoYW4gSSBkaWQgYXQgdGhlIGNvbXBhbnkgYmVmb3JlIHRoYXQgaWRpb3QgZmlyZWQgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3BvbGtraW9sa2tjb2xra0FvbGtrd29sa2tRb2xra3JvbGtrdiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNS40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsjcG9sa2tpb2xra2NvbGtrQW9sa2t3b2xra1FvbGtrcm9sa2t2JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgbXkgb2xkIGZyaWVuZCBKZW5uYSBpcyBhIHBvcm5zdGFyJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMjMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGNhbuKAmXQgYmVsaWV2ZSBteSBvbGQgZnJpZW5kIEplbm5hIGlzIGEgcG9ybnN0YXImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtKZW5uYTFfMjMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzg2IiBuYW1lPSJKZW5uYTFfMjJiIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsNDg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzIyYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2JpZ19zbWlsZS53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7WW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9iaWdfc21pbGUud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtUaGFua3MsIEkga25ldyB5b3Ugd291bGRu4oCZdCBqdWRnZSBtZSZxdW90OyAmcXVvdDtFb2xra0JvbGtrYm9sa2tLb2xra1JvbGtrdW9sa2tkb2xra3hvbGtrUW9sa2tWb2xra0FvbGtrSG9sa2tLb2xra0hvbGtrUG9sa2twJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYW5rcywgSSBrbmV3IHlvdSB3b3VsZG7igJl0IGp1ZGdlIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtUaGFua3MsIEkga25ldyB5b3Ugd291bGRu4oCZdCBqdWRnZSBtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7UGx1cywgaXQgaGVscHMgbWUgcGF5IHRoZSBiaWxscyZxdW90OyAmcXVvdDtib2xra0JvbGtrRm9sa2tKb2xra3FvbGtrZm9sa2tTb2xra05vbGtrZ29sa2tqb2xra2NvbGtrQm9sa2tib2xra2lvbGtrem9sa2tXJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1BsdXMsIGl0IGhlbHBzIG1lIHBheSB0aGUgYmlsbHMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O1BsdXMsIGl0IGhlbHBzIG1lIHBheSB0aGUgYmlsbHMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjlzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O1RoYW5rcyB0byB0aGlzLCBJ4oCZbSBhbHJlYWR5IGVhcm5pbmcgd2F5IG1vcmUgdGhhbiBJIGRpZCBhdCB0aGUgY29tcGFueSBiZWZvcmUgdGhhdCBpZGlvdCBmaXJlZCBtZSZxdW90OyAmcXVvdDtzb2xra2RvbGtrWW9sa2thb2xra2pvbGtrRG9sa2t4b2xra2RvbGtrUm9sa2tOb2xra2ZvbGtrVm9sa2tQb2xra1NvbGtreG9sa2toJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYW5rcyB0byB0aGlzLCBJ4oCZbSBhbHJlYWR5IGVhcm5pbmcgd2F5IG1vcmUgdGhhbiBJIGRpZCBhdCB0aGUgY29tcGFueSBiZWZvcmUgdGhhdCBpZGlvdCBmaXJlZCBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7VGhhbmtzIHRvIHRoaXMsIEnigJltIGFscmVhZHkgZWFybmluZyB3YXkgbW9yZSB0aGFuIEkgZGlkIGF0IHRoZSBjb21wYW55IGJlZm9yZSB0aGF0IGlkaW90IGZpcmVkIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtNb2xra0lvbGtrd29sa2tZb2xra3BvbGtrcm9sa2t0b2xra28mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDYuMXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I01vbGtrSW9sa2t3b2xra1lvbGtrcG9sa2tyb2xra3RvbGtrbyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgY2Fu4oCZdCBiZWxpZXZlIG15IG9sZCBmcmllbmQgSmVubmEgaXMgYSBwb3Juc3RhciZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzIzJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgbXkgb2xkIGZyaWVuZCBKZW5uYSBpcyBhIHBvcm5zdGFyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SmVubmExXzIzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM4NyIgbmFtZT0iSmVubmExXzIzIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsNDg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzIzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSmVubmFfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgY2Fu4oCZdCBiZWxpZXZlIG15IG9sZCBmcmllbmQgSmVubmEgaXMgYSBwb3Juc3RhciZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgY2Fu4oCZdCBiZWxpZXZlIG15IG9sZCBmcmllbmQgSmVubmEgaXMgYSBwb3Juc3RhciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgbXkgb2xkIGZyaWVuZCBKZW5uYSBpcyBhIHBvcm5zdGFyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7V2VsbCwgSeKAmW0gbm90IHN1cmUg4oCZcG9ybnN0YXLigJkgaXMgdGhlIHJpZ2h0IHRlcm0mcXVvdDsgJnF1b3Q7YW9sa2tZb2xra25vbGtrem9sa2tLb2xra2hvbGtrZW9sa2tJb2xra3hvbGtrWm9sa2tRb2xra2dvbGtrR29sa2tyb2xra3ZvbGtrUiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZWxsLCBJ4oCZbSBub3Qgc3VyZSDigJlwb3Juc3RhcuKAmSBpcyB0aGUgcmlnaHQgdGVybSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7V2VsbCwgSeKAmW0gbm90IHN1cmUg4oCZcG9ybnN0YXLigJkgaXMgdGhlIHJpZ2h0IHRlcm0mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjZzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O05vdCB0aGF0IGl0IGJvdGhlcnMgbWUsIGl04oCZcyBqdXN0IHRoYXQgSSBoYXZlbuKAmXQgZmlsbWVkIHNjZW5lcyB3aXRoIG90aGVyIGd1eXMgeWV0JnF1b3Q7ICZxdW90O3pvbGtrUG9sa2tWb2xra0xvbGtra29sa2t1b2xra2pvbGtrWG9sa2thb2xra2RvbGtrT29sa2tVb2xra2ZvbGtrWW9sa2tPb2xra1QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm90IHRoYXQgaXQgYm90aGVycyBtZSwgaXTigJlzIGp1c3QgdGhhdCBJIGhhdmVu4oCZdCBmaWxtZWQgc2NlbmVzIHdpdGggb3RoZXIgZ3V5cyB5ZXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O05vdCB0aGF0IGl0IGJvdGhlcnMgbWUsIGl04oCZcyBqdXN0IHRoYXQgSSBoYXZlbuKAmXQgZmlsbWVkIHNjZW5lcyB3aXRoIG90aGVyIGd1eXMgeWV0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtJb2xra2tvbGtrR29sa2tZb2xra2ZvbGtra29sa2t2b2xra3omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuMHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I0lvbGtra29sa2tHb2xra1lvbGtrZm9sa2trb2xra3ZvbGtreiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1NvIHdoYXQmIzM5O3MgeW91ciBjb250ZW50IGxpa2UgdGhlbj8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0plbm5hMV8yNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1NvIHdoYXQmIzM5O3MgeW91ciBjb250ZW50IGxpa2UgdGhlbj8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtKZW5uYTFfMjQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzg4IiBuYW1lPSJKZW5uYTFfMjQiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSw0ODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRTdGF0ZSAgPSAmcXVvdDtKZW5uYTFfMjQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRKZW5uYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7U28gd2hhdOKAmXMgeW91ciBjb250ZW50IGxpa2UgdGhlbj8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTbyB3aGF04oCZcyB5b3VyIGNvbnRlbnQgbGlrZSB0aGVuPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7U28gd2hhdOKAmXMgeW91ciBjb250ZW50IGxpa2UgdGhlbj8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtQaG90b3MgYW5kIHZpZGVvcywgYnV0IGp1c3QgYnkgbXlzZWxmJnF1b3Q7ICZxdW90O3RvbGtrV29sa2tyb2xra3RvbGtram9sa2tHb2xra0xvbGtrR29sa2tub2xra05vbGtrS29sa2tTb2xra3BvbGtrT29sa2tub2xra2EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7UGhvdG9zIGFuZCB2aWRlb3MsIGJ1dCBqdXN0IGJ5IG15c2VsZiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7UGhvdG9zIGFuZCB2aWRlb3MsIGJ1dCBqdXN0IGJ5IG15c2VsZiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNHMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7VGhvdWdoIEnigJltIHRoaW5raW5nIGFib3V0IHBvc3RpbmcgdmlkZW9zIHdpdGggZ3V5cywgYnV0IEnigJltIG5vdCB0aGF0IGNvbmZpZGVudCB5ZXQmcXVvdDsgJnF1b3Q7ZG9sa2tzb2xra3pvbGtrRG9sa2tKb2xra2JvbGtrV29sa2tWb2xra2xvbGtrSm9sa2t6b2xra1BvbGtrRG9sa2txb2xra29vbGtrVSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaG91Z2ggSeKAmW0gdGhpbmtpbmcgYWJvdXQgcG9zdGluZyB2aWRlb3Mgd2l0aCBndXlzLCBidXQgSeKAmW0gbm90IHRoYXQgY29uZmlkZW50IHlldCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7VGhvdWdoIEnigJltIHRoaW5raW5nIGFib3V0IHBvc3RpbmcgdmlkZW9zIHdpdGggZ3V5cywgYnV0IEnigJltIG5vdCB0aGF0IGNvbmZpZGVudCB5ZXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAyLjNzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0kgZG9u4oCZdCBrbm93IGlmIEnigJlkIGxvb2sgZ29vZCBvbiBjYW1lcmEgaGF2aW5nIGV4cGxpY2l0IHNleCwgb3IgaWYgSSBldmVuIGtub3cgd2hhdCBwZW9wbGUgYXJlIHJlYWxseSBsb29raW5nIGZvciZxdW90OyAmcXVvdDtXb2xra1BvbGtrTW9sa2t4b2xra2dvbGtrT29sa2tjb2xra1hvbGtrcG9sa2tmb2xra0pvbGtrbG9sa2tvb2xra1RvbGtrbW9sa2tKJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZG9u4oCZdCBrbm93IGlmIEnigJlkIGxvb2sgZ29vZCBvbiBjYW1lcmEgaGF2aW5nIGV4cGxpY2l0IHNleCwgb3IgaWYgSSBldmVuIGtub3cgd2hhdCBwZW9wbGUgYXJlIHJlYWxseSBsb29raW5nIGZvciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7SSBkb27igJl0IGtub3cgaWYgSeKAmWQgbG9vayBnb29kIG9uIGNhbWVyYSBoYXZpbmcgZXhwbGljaXQgc2V4LCBvciBpZiBJIGV2ZW4ga25vdyB3aGF0IHBlb3BsZSBhcmUgcmVhbGx5IGxvb2tpbmcgZm9yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDYuNXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS40cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtBY3R1YWxseSwgb25lIG9mIHRoZSByZWFzb25zIEkgcmVhY2hlZCBvdXQgdG8geW91IHdhcyByZWxhdGVkIHRvIHRoYXQmcXVvdDsgJnF1b3Q7Zm9sa2tWb2xra3dvbGtreG9sa2tnb2xra29vbGtrb29sa2tPb2xra09vbGtrcm9sa2t4b2xra1NvbGtrYm9sa2tPb2xra1JvbGtrQyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBY3R1YWxseSwgb25lIG9mIHRoZSByZWFzb25zIEkgcmVhY2hlZCBvdXQgdG8geW91IHdhcyByZWxhdGVkIHRvIHRoYXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0FjdHVhbGx5LCBvbmUgb2YgdGhlIHJlYXNvbnMgSSByZWFjaGVkIG91dCB0byB5b3Ugd2FzIHJlbGF0ZWQgdG8gdGhhdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA4LjVzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX3hkLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtKZW5uYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV94ZC53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7VG9sa2tpb2xra0tvbGtrcG9sa2tYb2xra2RvbGtrRW9sa2tFJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA5LjVzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdElkICA9ICZxdW90OyNUb2xra2lvbGtrS29sa2twb2xra1hvbGtrZG9sa2tFb2xra0UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtXaGF0IGRvIHlvdSBtZWFuPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzI2JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7V2hhdCBkbyB5b3UgbWVhbj8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtKZW5uYTFfMjYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzg5IiBuYW1lPSJKZW5uYTFfMjYiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsNDg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzI2JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSmVubmFfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1doYXQgZG8geW91IG1lYW4/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2hhdCBkbyB5b3UgbWVhbj8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O1doYXQgZG8geW91IG1lYW4/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7V291bGQgeW91IGxpa2UgdG8gYmUgdGhlIGd1eSBvZiBteSB2aWRlb3M/JnF1b3Q7ICZxdW90O3pvbGtrUW9sa2tmb2xra1hvbGtrdm9sa2tlb2xra2dvbGtrRW9sa2tvb2xra0JvbGtrS29sa2tSb2xra2RvbGtrYm9sa2tKb2xra1EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V291bGQgeW91IGxpa2UgdG8gYmUgdGhlIGd1eSBvZiBteSB2aWRlb3M/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtXb3VsZCB5b3UgbGlrZSB0byBiZSB0aGUgZ3V5IG9mIG15IHZpZGVvcz8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Zm9sa2tFb2xra1NvbGtrQ29sa2tab2xra3lvbGtrVm9sa2tRJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjlzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdElkICA9ICZxdW90OyNmb2xra0VvbGtrU29sa2tDb2xra1pvbGtreW9sa2tWb2xra1EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJdCB3b3VsZCBiZSBhbiBob25vciZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzI3YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0l0IHdvdWxkIGJlIGFuIGhvbm9yJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SmVubmExXzI3YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdElkICA9ICZxdW90OyNmb2xra0VvbGtrU29sa2tDb2xra1pvbGtreW9sa2tWb2xra1EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJ4oCZbSBzb3JyeSwgSSBkb27igJl0IHRoaW5rIEkgY2FuIGRvIGl0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMjdiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SeKAmW0gc29ycnksIEkgZG9u4oCZdCB0aGluayBJIGNhbiBkbyBpdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8yN2ImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzkwIiBuYW1lPSJKZW5uYTFfMjdhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDQ4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdFN0YXRlICA9ICZxdW90O0plbm5hMV8yN2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRKZW5uYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SXQgd291bGQgYmUgYW4gaG9ub3ImcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdCB3b3VsZCBiZSBhbiBob25vciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7SXQgd291bGQgYmUgYW4gaG9ub3ImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRKZW5uYV9ub3Rlcy5wdXNoKCZxdW90O1NoZSBhc2tlZCBtZSBpZiBJIHdvdWxkIGJlIGludGVyZXN0ZWQgaW4gcmVjb3JkaW5nIHZpZGVvcyB3aXRoIGhlciBmb3IgaGVyIE9ubHlGYW5zLCBJIGRlY2lkZWQgdG8gYWNjZXB0IHRoZSBvZmZlci4mcXVvdDspJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkamVubmEgPSAkamVubmErMSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtNb2xra1dvbGtram9sa2tKb2xra29vbGtrbW9sa2t0b2xra0UmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I01vbGtrV29sa2tqb2xra0pvbGtrb29sa2ttb2xra3RvbGtrRSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0J1dCBob3cgd291bGQgd2UgZG8gaXQ/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMjhhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QnV0IGhvdyB3b3VsZCB3ZSBkbyBpdD8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtKZW5uYTFfMjhhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM5MSIgbmFtZT0iSmVubmExXzI3YiIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDQ5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdFN0YXRlICA9ICZxdW90O0plbm5hMV8yN2ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRKZW5uYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SeKAmW0gc29ycnksIEkgZG9u4oCZdCB0aGluayBJIGNhbiBkbyBpdCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJltIHNvcnJ5LCBJIGRvbuKAmXQgdGhpbmsgSSBjYW4gZG8gaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0nigJltIHNvcnJ5LCBJIGRvbuKAmXQgdGhpbmsgSSBjYW4gZG8gaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtJIHVuZGVyc3RhbmQsIG5vIHByb2JsZW0gJG5hbWUmcXVvdDsgJnF1b3Q7a29sa2tjb2xra0ZvbGtrTG9sa2tUb2xra3VvbGtrZ29sa2tpb2xra1JvbGtrZG9sa2tHb2xra0FvbGtrZG9sa2tFb2xra1RvbGtreCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHVuZGVyc3RhbmQsIG5vIHByb2JsZW0gJG5hbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0kgdW5kZXJzdGFuZCwgbm8gcHJvYmxlbSAkbmFtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjRzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuM3MgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7RG8geW91IHRoaW5rIHlvdSBjb3VsZCBhdCBsZWFzdCBoZWxwIG1lIGNob29zZSB3aGljaCB2aWRlb3Mgd29yaz8mcXVvdDsgJnF1b3Q7bG9sa2tkb2xra0JvbGtrdW9sa2t0b2xra1RvbGtrSm9sa2twb2xra1FvbGtrcW9sa2tSb2xra3NvbGtrdG9sa2tFb2xra21vbGtrTyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEbyB5b3UgdGhpbmsgeW91IGNvdWxkIGF0IGxlYXN0IGhlbHAgbWUgY2hvb3NlIHdoaWNoIHZpZGVvcyB3b3JrPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7RG8geW91IHRoaW5rIHlvdSBjb3VsZCBhdCBsZWFzdCBoZWxwIG1lIGNob29zZSB3aGljaCB2aWRlb3Mgd29yaz8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0dpdmUgbWUgZmVlZGJhY2sgb24gdmlkZW9zIEkgZmlsbSB3aXRoIG90aGVyIGd1eXM/JnF1b3Q7ICZxdW90O0hvbGtrVm9sa2tab2xra3lvbGtrSW9sa2tHb2xra0xvbGtrQW9sa2tmb2xra2pvbGtrR29sa2tEb2xra2tvbGtrUm9sa2t5b2xra2kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7R2l2ZSBtZSBmZWVkYmFjayBvbiB2aWRlb3MgSSBmaWxtIHdpdGggb3RoZXIgZ3V5cz8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0dpdmUgbWUgZmVlZGJhY2sgb24gdmlkZW9zIEkgZmlsbSB3aXRoIG90aGVyIGd1eXM/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuOXMmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSmVubmFfbm90ZXMucHVzaCgmcXVvdDtTaGUgYXNrZWQgbWUgaWYgSeKAmWQgYmUgaW50ZXJlc3RlZCBpbiByZWNvcmRpbmcgdmlkZW9zIHdpdGggaGVyIGZvciBoZXIgT25seUZhbnMsIEkgZGVjaWRlZCB0byB0dXJuIGRvd24gdGhlIG9mZmVyIGJ1dCB0b2xkIGhlciBJIGNvdWxkIGhlbHAgaGVyIGNob29zZSB3aGljaCB2aWRlb3MgdG8gc2hhcmUgd2l0aCBoZXIgZm9sbG93ZXJzLiZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuOXMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRqZW5uYV9tYWluID0gZmFsc2UmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2lvbGtrR29sa2tOb2xra09vbGtrcm9sa2t3b2xra3NvbGtrRyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC45cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsjaW9sa2tHb2xra05vbGtrT29sa2tyb2xra3dvbGtrc29sa2tHJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WWVhaCwgSSB0aGluayBJIGNhbiBkbyB0aGF0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMzBiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WWVhaCwgSSB0aGluayBJIGNhbiBkbyB0aGF0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SmVubmExXzMwYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzOTIiIG5hbWU9Ikplbm5hMV8yOGEiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSw0OTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRTdGF0ZSAgPSAmcXVvdDtKZW5uYTFfMjhhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSmVubmFfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0J1dCBob3cgd291bGQgd2UgZG8gaXQ/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IGhvdyB3b3VsZCB3ZSBkbyBpdD8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0J1dCBob3cgd291bGQgd2UgZG8gaXQ/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7SSBjb3VsZCBwYXkgZm9yIHlvdXIgZmxpZ2h0cyB0byBjb21lIGhlcmUmcXVvdDsgJnF1b3Q7ZG9sa2tOb2xra3NvbGtrb29sa2trb2xra3lvbGtrU29sa2tCb2xra1NvbGtrR29sa2tab2xra0JvbGtrT29sa2tkb2xra0tvbGtraCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGNvdWxkIHBheSBmb3IgeW91ciBmbGlnaHRzIHRvIGNvbWUgaGVyZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7SSBjb3VsZCBwYXkgZm9yIHlvdXIgZmxpZ2h0cyB0byBjb21lIGhlcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O1lvdSBjb21lIGZvciB0aGUgZGF5LCB3ZSBmdWNrLCBmaWxtLCBhbmQgeW91IGxlYXZlJnF1b3Q7ICZxdW90O0pvbGtrT29sa2tZb2xra0RvbGtrdG9sa2tRb2xra0lvbGtraG9sa2tLb2xra0tvbGtrWG9sa2tub2xra2hvbGtrTW9sa2tOb2xra1EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGNvbWUgZm9yIHRoZSBkYXksIHdlIGZ1Y2ssIGZpbG0sIGFuZCB5b3UgbGVhdmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O1lvdSBjb21lIGZvciB0aGUgZGF5LCB3ZSBmdWNrLCBmaWxtLCBhbmQgeW91IGxlYXZlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuNXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMi4wcyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtUaGUgbW9uZXkgSSBjb3VsZCBwYXkgeW91IHdvdWxkbuKAmXQgYmUgY3JhenksIGJ1dCBpdOKAmWQgY292ZXIgeW91ciBmbGlnaHRzIGFuZCBnaXZlIHlvdSBzb21lIGV4dHJhIGNhc2gmcXVvdDsgJnF1b3Q7ZW9sa2tob2xra3JvbGtrV29sa2t5b2xra3dvbGtrZW9sa2t0b2xra2ZvbGtrUW9sa2tpb2xra0FvbGtrdm9sa2tpb2xra0FvbGtrZCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGUgbW9uZXkgSSBjb3VsZCBwYXkgeW91IHdvdWxkbuKAmXQgYmUgY3JhenksIGJ1dCBpdOKAmWQgY292ZXIgeW91ciBmbGlnaHRzIGFuZCBnaXZlIHlvdSBzb21lIGV4dHJhIGNhc2gmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O1RoZSBtb25leSBJIGNvdWxkIHBheSB5b3Ugd291bGRu4oCZdCBiZSBjcmF6eSwgYnV0IGl04oCZZCBjb3ZlciB5b3VyIGZsaWdodHMgYW5kIGdpdmUgeW91IHNvbWUgZXh0cmEgY2FzaCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Vm9sa2tob2xra0hvbGtraW9sa2tYb2xra2NvbGtrdG9sa2tyJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA2LjFzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdElkICA9ICZxdW90OyNWb2xra2hvbGtrSG9sa2tpb2xra1hvbGtrY29sa2t0b2xra3ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGF0IHNvdW5kcyBnb29kLiBJ4oCZbSBpbiZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzI5YV8xJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhhdCBzb3VuZHMgZ29vZC4gSeKAmW0gaW4mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtKZW5uYTFfMjlhXzEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsjVm9sa2tob2xra0hvbGtraW9sa2tYb2xra2NvbGtrdG9sa2tyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SeKAmW0gc29ycnksIEkgZG9u4oCZdCB0aGluayBJIGNhbiBkbyBpdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzI5YV8yJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SeKAmW0gc29ycnksIEkgZG9u4oCZdCB0aGluayBJIGNhbiBkbyBpdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8yOWFfMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzOTMiIG5hbWU9Ikplbm5hMV8yOWFfMSIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDQ5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdFN0YXRlICA9ICZxdW90O0plbm5hMV8yOWFfMSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGF0IHNvdW5kcyBnb29kLiBJ4oCZbSBpbiZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYXQgc291bmRzIGdvb2QuIEnigJltIGluJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtUaGF0IHNvdW5kcyBnb29kLiBJ4oCZbSBpbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0F3ZXNvbWUsICRuYW1lLiBJIGNhbuKAmXQgd2FpdCB0byBmdWNrIHdpdGggeW91JnF1b3Q7ICZxdW90O3hvbGtra29sa2trb2xra1lvbGtrRW9sa2tMb2xra2VvbGtrcG9sa2tzb2xra3ZvbGtrZW9sa2tpb2xra3ZvbGtrVm9sa2tPb2xra0kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QXdlc29tZSwgJG5hbWUuIEkgY2Fu4oCZdCB3YWl0IHRvIGZ1Y2sgd2l0aCB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0F3ZXNvbWUsICRuYW1lLiBJIGNhbuKAmXQgd2FpdCB0byBmdWNrIHdpdGggeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuOHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtGb3IgdGhlIHZpZGVvcywgb2YgY291cnNlLi4uJnF1b3Q7ICZxdW90O2xvbGtrdW9sa2t0b2xra0FvbGtrY29sa2tMb2xra1RvbGtrWG9sa2tQb2xra09vbGtrTm9sa2tEb2xra2ZvbGtrQW9sa2tyb2xra2smcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Rm9yIHRoZSB2aWRlb3MsIG9mIGNvdXJzZS4uLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7Rm9yIHRoZSB2aWRlb3MsIG9mIGNvdXJzZS4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjlzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xtYW8ud2VicCZxdW90OyB0cnVlICZxdW90O0plbm5hJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xtYW8ud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0lvbGtrUG9sa2tNb2xra0VvbGtrcm9sa2tkb2xra2FvbGtrTCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy45cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsjSW9sa2tQb2xra01vbGtrRW9sa2tyb2xra2RvbGtrYW9sa2tMJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q78J+YgiZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzMwYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O/CfmIImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtKZW5uYTFfMzBhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM5NCIgbmFtZT0iSmVubmExXzI5YV8yIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsNDk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzI5YV8yJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSmVubmFfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0nigJltIHNvcnJ5LCBJIGRvbuKAmXQgdGhpbmsgSSBjYW4gZG8gaXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBzb3JyeSwgSSBkb27igJl0IHRoaW5rIEkgY2FuIGRvIGl0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtJ4oCZbSBzb3JyeSwgSSBkb27igJl0IHRoaW5rIEkgY2FuIGRvIGl0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7SSB1bmRlcnN0YW5kLCBubyBwcm9ibGVtICRuYW1lJnF1b3Q7ICZxdW90O0pvbGtram9sa2tjb2xra2VvbGtrWW9sa2tWb2xra3hvbGtrTW9sa2t0b2xra3RvbGtrV29sa2tIb2xra0ZvbGtrV29sa2tRb2xra2QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB1bmRlcnN0YW5kLCBubyBwcm9ibGVtICRuYW1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtJIHVuZGVyc3RhbmQsIG5vIHByb2JsZW0gJG5hbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS40cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjNzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0RvIHlvdSB0aGluayB5b3UgY291bGQgYXQgbGVhc3QgaGVscCBtZSBjaG9vc2Ugd2hpY2ggdmlkZW9zIHdvcms/JnF1b3Q7ICZxdW90O0pvbGtra29sa2tGb2xra3hvbGtrS29sa2t2b2xra0ZvbGtrT29sa2tub2xra2lvbGtrRG9sa2tzb2xra1lvbGtrbm9sa2tJb2xra3MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RG8geW91IHRoaW5rIHlvdSBjb3VsZCBhdCBsZWFzdCBoZWxwIG1lIGNob29zZSB3aGljaCB2aWRlb3Mgd29yaz8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O0RvIHlvdSB0aGluayB5b3UgY291bGQgYXQgbGVhc3QgaGVscCBtZSBjaG9vc2Ugd2hpY2ggdmlkZW9zIHdvcms/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtHaXZlIG1lIGZlZWRiYWNrIG9uIHZpZGVvcyBJIGZpbG0gd2l0aCBvdGhlciBndXlzPyZxdW90OyAmcXVvdDtCb2xra1hvbGtrbW9sa2tMb2xra0xvbGtrcW9sa2t0b2xra2lvbGtrdW9sa2t3b2xra1VvbGtraW9sa2tGb2xra09vbGtrZ29sa2tXJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0dpdmUgbWUgZmVlZGJhY2sgb24gdmlkZW9zIEkgZmlsbSB3aXRoIG90aGVyIGd1eXM/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtHaXZlIG1lIGZlZWRiYWNrIG9uIHZpZGVvcyBJIGZpbG0gd2l0aCBvdGhlciBndXlzPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjlzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEplbm5hX25vdGVzLnB1c2goJnF1b3Q7U2hlIGFza2VkIG1lIGlmIEnigJlkIGJlIGludGVyZXN0ZWQgaW4gcmVjb3JkaW5nIHZpZGVvcyB3aXRoIGhlciBmb3IgaGVyIE9ubHlGYW5zLCBJIGRlY2lkZWQgdG8gdHVybiBkb3duIHRoZSBvZmZlciBidXQgdG9sZCBoZXIgSSBjb3VsZCBoZWxwIGhlciBjaG9vc2Ugd2hpY2ggdmlkZW9zIHRvIHNoYXJlIHdpdGggaGVyIGZvbGxvd2Vycy4mcXVvdDspJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjlzJmd0OyZndDsmbHQ7Jmx0O3NldCAkamVubmFfbWFpbiA9IGZhbHNlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtib2xra0ZvbGtrS29sa2tab2xra2lvbGtrbm9sa2tHb2xra0EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuOXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I2JvbGtrRm9sa2tLb2xra1pvbGtraW9sa2tub2xra0dvbGtrQSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1llYWgsIEkgdGhpbmsgSSBjYW4gZG8gdGhhdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SmVubmExXzMwYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1llYWgsIEkgdGhpbmsgSSBjYW4gZG8gdGhhdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8zMGImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzk1IiBuYW1lPSJKZW5uYTFfMzBhIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsNDk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzMwYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xhdWdoLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xhdWdoLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7RnVjaywgSeKAmXZlIGdvdCB0byBnby4gTGV04oCZcyB0YWxrIGFib3V0IGFsbCB0aGlzIGxhdGVyJnF1b3Q7ICZxdW90O0VvbGtrWm9sa2t5b2xra1dvbGtrSm9sa2tsb2xra0tvbGtrVW9sa2tZb2xra0RvbGtrWG9sa2t4b2xra2hvbGtrU29sa2tFb2xra1QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RnVjaywgSeKAmXZlIGdvdCB0byBnby4gTGV04oCZcyB0YWxrIGFib3V0IGFsbCB0aGlzIGxhdGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtGdWNrLCBJ4oCZdmUgZ290IHRvIGdvLiBMZXTigJlzIHRhbGsgYWJvdXQgYWxsIHRoaXMgbGF0ZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O09vbGtrZG9sa2tOb2xra0pvbGtrc29sa2tnb2xra1FvbGtrTiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi43cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsjT29sa2tkb2xra05vbGtrSm9sa2tzb2xra2dvbGtrUW9sa2tOJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7U291bmRzIGdvb2QsIEplbm5hLiBUYWtlIGNhcmUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0plbm5hMV8zMWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtTb3VuZHMgZ29vZCwgSmVubmEuIFRha2UgY2FyZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8zMWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzk2IiBuYW1lPSJKZW5uYTFfMzFhIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsNDk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzMxYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtTb3VuZHMgZ29vZCwgSmVubmEuIFRha2UgY2FyZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1NvdW5kcyBnb29kLCBKZW5uYS4gVGFrZSBjYXJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtTb3VuZHMgZ29vZCwgSmVubmEuIFRha2UgY2FyZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O1lvdSB0b28gJG5hbWUmcXVvdDsgJnF1b3Q7dm9sa2t5b2xra1NvbGtrd29sa2t5b2xra0pvbGtrc29sa2t0b2xra2RvbGtrR29sa2txb2xra3ZvbGtrdW9sa2tIb2xra3ZvbGtrdCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0plbm5hJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3UgdG9vICRuYW1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtZb3UgdG9vICRuYW1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMnMmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSmVubmFfbGFzdCA9ICZxdW90O1lvdSB0b28gJG5hbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSmVubmFfY2hhdFN0YXRlID0gJnF1b3Q7SmVubmExXzMxYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0X2hvdXIgPSAmcXVvdDswMCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0ID0gZmFsc2UmZ3Q7Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O29mZmxpbmUtdGV4dCZxdW90OyZndDtKZW5uYSBpcyBvZmZsaW5lJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM5NyIgbmFtZT0iSmVubmExXzMwYiIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDQ5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdFN0YXRlICA9ICZxdW90O0plbm5hMV8zMGImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRKZW5uYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WWVhaCwgSSB0aGluayBJIGNhbiBkbyB0aGF0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WWVhaCwgSSB0aGluayBJIGNhbiBkbyB0aGF0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtZZWFoLCBJIHRoaW5rIEkgY2FuIGRvIHRoYXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtHcmVhdCwgdGhlbiBJ4oCZbGwgYmUgY291bnRpbmcgb24geW91ciBoZWxwJnF1b3Q7ICZxdW90O2lvbGtrem9sa2tvb2xra3RvbGtrUG9sa2tSb2xra2ZvbGtrbW9sa2tvb2xra0dvbGtrb29sa2tqb2xra29vbGtrZG9sa2tNb2xra2MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7R3JlYXQsIHRoZW4gSeKAmWxsIGJlIGNvdW50aW5nIG9uIHlvdXIgaGVscCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7R3JlYXQsIHRoZW4gSeKAmWxsIGJlIGNvdW50aW5nIG9uIHlvdXIgaGVscCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Wm9sa2tzb2xra2pvbGtrYm9sa2tCb2xra2pvbGtrc29sa2tMJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjdzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfbGFzdElkICA9ICZxdW90OyNab2xra3NvbGtram9sa2tib2xra0JvbGtram9sa2tzb2xra0wmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtIYXBweSB0byBoZWxwJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMzFiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SGFwcHkgdG8gaGVscCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8zMWImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzk4IiBuYW1lPSJKZW5uYTFfMzFiIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsNDk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0U3RhdGUgID0gJnF1b3Q7SmVubmExXzMxYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtIYXBweSB0byBoZWxwJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGFwcHkgdG8gaGVscCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7SGFwcHkgdG8gaGVscCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV90b25ndWUud2VicCZxdW90OyB0cnVlICZxdW90O0plbm5hJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7SmVubmEmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X3Rvbmd1ZS53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7RnVjaywgSeKAmXZlIGdvdCB0byBnby4gTGV04oCZcyB0YWxrIGFib3V0IGFsbCB0aGlzIGxhdGVyJnF1b3Q7ICZxdW90O3hvbGtrdG9sa2tIb2xra1BvbGtram9sa2tsb2xra3JvbGtrWG9sa2tkb2xra0RvbGtreW9sa2tsb2xra0lvbGtrcm9sa2tvb2xra0YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSmVubmFfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtKZW5uYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RnVjaywgSeKAmXZlIGdvdCB0byBnby4gTGV04oCZcyB0YWxrIGFib3V0IGFsbCB0aGlzIGxhdGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3QgPSAmcXVvdDtGdWNrLCBJ4oCZdmUgZ290IHRvIGdvLiBMZXTigJlzIHRhbGsgYWJvdXQgYWxsIHRoaXMgbGF0ZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1NvbGtrUW9sa2twb2xra2pvbGtrdW9sa2tNb2xra2JvbGtrQyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy4wcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2xhc3RJZCAgPSAmcXVvdDsjU29sa2tRb2xra3BvbGtram9sa2t1b2xra01vbGtrYm9sa2tDJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7U291bmRzIGdvb2QsIEplbm5hLiBUYWtlIGNhcmUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0plbm5hMV8zMWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtTb3VuZHMgZ29vZCwgSmVubmEuIFRha2UgY2FyZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8zMWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzk5IiBuYW1lPSJKZW5uYTFfMTVfaGFsZiIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCw0OTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX2NoYXRTdGF0ZSAgPSAmcXVvdDtKZW5uYTFfMTVfaGFsZiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEplbm5hX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtBbmQgeWVhaCwgQW5uaWUgYW5kIEkgYXJlIHN0aWxsIHRvZ2V0aGVyLCBzdHJvbmdlciB0aGFuIGV2ZXIuJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5kIHllYWgsIEFubmllIGFuZCBJIGFyZSBzdGlsbCB0b2dldGhlciwgc3Ryb25nZXIgdGhhbiBldmVyLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0ID0gJnF1b3Q7QW5kIHllYWgsIEFubmllIGFuZCBJIGFyZSBzdGlsbCB0b2dldGhlciwgc3Ryb25nZXIgdGhhbiBldmVyLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt1b2xra25vbGtrbW9sa2ttb2xra0NvbGtrY29sa2tBb2xra08mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV9sYXN0SWQgID0gJnF1b3Q7I3VvbGtrbm9sa2ttb2xra21vbGtrQ29sa2tjb2xra0FvbGtrTyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1Rob3VnaCB1bmZvcnR1bmF0ZWx5LCBJIGhhdmUgdG8gYmUgYXdheSBmcm9tIGhvbWUgZm9yIGEgZmV3IG1vbnRocyBiZWNhdXNlIG9mIGEgd29yayBhc3NpZ25tZW50JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtKZW5uYTFfMTYmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaG91Z2ggdW5mb3J0dW5hdGVseSwgSSBoYXZlIHRvIGJlIGF3YXkgZnJvbSBob21lIGZvciBhIGZldyBtb250aHMgYmVjYXVzZSBvZiBhIHdvcmsgYXNzaWdubWVudCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0plbm5hMV8xNiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0MDAiIG5hbWU9Ik5hb21pX2NoYXQiIHRhZ3M9Im1hcHAgbm90aG91ciIgcG9zaXRpb249IjEyMjUsNDk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKLypyZWdpb24gRW1pbHkgY2hhdCovCiZsdDsmbHQ7aWYgJE5hb21pX2NoYXQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2hlYWRlciAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyAkTmFvbWlfcGF1c2VkJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtoZWFkZXIgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsgdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDttZXNzYWdlX2NvbnRhaW5lciZxdW90OyZndDsKJmx0OyZsdDtmb3IgX2xpbmUgcmFuZ2UgJE5hb21pX2NoYXRMb2cmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiBfbGluZS50eXBlID09IDEmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCBfbGluZS5zZW5kZXIgX2xpbmUubWVzc2FnZSBfbGluZS5hdmF0YXImZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlaWYgX2xpbmUudHlwZSA9PSAyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VfaW1nIF9saW5lLm1lc3NhZ2UmZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlaWYgX2xpbmUudHlwZSA9PSAzJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VfdmlkZW8gX2xpbmUubWVzc2FnZVswXSBfbGluZS5tZXNzYWdlWzFdJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZWlmIF9saW5lLnR5cGUgPT0gNCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDttZXNzYWdlX2Vtb2ppIF9saW5lLm1lc3NhZ2UgZmFsc2UgX2xpbmUuc2VuZGVyJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDsvZm9yJmd0OyZndDsKJmx0OyZsdDtpZiAkTmFvbWlfcGF1c2VkID09IGZhbHNlJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJE5hb21pX2NoYXQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICROYW9taV9jaGF0U3RhdGUmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAmbHQ7ZGl2IEBpZD0mcXVvdDskTmFvbWlfbGFzdElkLnNsaWNlKDEpJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7ZW5kJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwombHQ7L2RpdiZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtjaGF0X2JhciZxdW90OyZndDsKJmx0O2RpdiBpZD0mcXVvdDtjb250ZW50JnF1b3Q7Jmd0OwombHQ7Jmx0O2lmICROYW9taV9wYXVzZWQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICROYW9taV9vcHRpb25zWzBdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJE5hb21pX29wdGlvbnNbMF0udGV4dCZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkTmFvbWlfb3B0aW9uc1swXS5wYXNzYWdlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJE5hb21pX29wdGlvbnNbMV0mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bGluayAkTmFvbWlfb3B0aW9uc1sxXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpbmNsdWRlICROYW9taV9vcHRpb25zWzFdLnBhc3NhZ2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkTmFvbWlfb3B0aW9uc1syXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICROYW9taV9vcHRpb25zWzJdLnRleHQmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJE5hb21pX29wdGlvbnNbMl0ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICROYW9taV9vcHRpb25zWzNdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJE5hb21pX29wdGlvbnNbM10udGV4dCZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkTmFvbWlfb3B0aW9uc1szXS5wYXNzYWdlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7L2RpdiZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7dGltZWQgMC4ycyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsSW5zdGEoKTsKICAgICZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0MDEiIG5hbWU9Ik5hb21pU3RhcnQxIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsNTEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtIb25lc3RseSwgSSBoYXZlIHRvIGNvbmdyYXR1bGF0ZSB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvbmVzdGx5LCBJIGhhdmUgdG8gY29uZ3JhdHVsYXRlIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7SG9uZXN0bHksIEkgaGF2ZSB0byBjb25ncmF0dWxhdGUgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Wm9sa2t0b2xra09vbGtrTm9sa2tLb2xra1BvbGtrcW9sa2tPJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjZzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyNab2xra3RvbGtrT29sa2tOb2xra0tvbGtrUG9sa2txb2xra08mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtOYW9taT8gSSB0aG91Z2h0IHlvdSBoYXRlZCBtZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlTdGFydDFfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O05hb21pPyBJIHRob3VnaHQgeW91IGhhdGVkIG1lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlTdGFydDFfMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQwMiIgbmFtZT0iTmFvbWlTdGFydDFfMiIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDUxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pU3RhcnQxXzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TmFvbWk/IEkgdGhvdWdodCB5b3UgaGF0ZWQgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtOYW9taT8gSSB0aG91Z2h0IHlvdSBoYXRlZCBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7TmFvbWk/IEkgdGhvdWdodCB5b3UgaGF0ZWQgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7b29sa2tab2xra2JvbGtrbW9sa2tWb2xra3hvbGtrUm9sa2tnJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyNvb2xra1pvbGtrYm9sa2ttb2xra1ZvbGtreG9sa2tSb2xra2cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtXaGF0IGRvIEkgb3dlIHRoZSBwbGVhc3VyZT8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O05hb21pU3RhcnQxXzMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXaGF0IGRvIEkgb3dlIHRoZSBwbGVhc3VyZT8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taVN0YXJ0MV8zJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQwMyIgbmFtZT0iTmFvbWlTdGFydDFfMyIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDUxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pU3RhcnQxXzMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7V2hhdCBkbyBJIG93ZSB0aGUgcGxlYXN1cmU/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2hhdCBkbyBJIG93ZSB0aGUgcGxlYXN1cmU/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtXaGF0IGRvIEkgb3dlIHRoZSBwbGVhc3VyZT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtIYXRlIGlzIGEgdmVyeSBzdHJvbmcgd29yZCZxdW90OyAmcXVvdDtRb2xra3pvbGtrQ29sa2tQb2xra2FvbGtrZW9sa2tGb2xra1BvbGtraW9sa2tBb2xra1hvbGtrUW9sa2tqb2xra21vbGtrSG9sa2tVJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hhdGUgaXMgYSB2ZXJ5IHN0cm9uZyB3b3JkJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtIYXRlIGlzIGEgdmVyeSBzdHJvbmcgd29yZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMnMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7TGV04oCZcyBqdXN0IHNheSBJIG5ldmVyIHRob3VnaHQgeW91IHdlcmUgZ29vZCBlbm91Z2ggZm9yIEFubmllJnF1b3Q7ICZxdW90O2JvbGtreW9sa2tKb2xra1RvbGtrSG9sa2tQb2xra2FvbGtrTm9sa2tUb2xra21vbGtrd29sa2tqb2xra2pvbGtrb29sa2tZb2xra08mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGV04oCZcyBqdXN0IHNheSBJIG5ldmVyIHRob3VnaHQgeW91IHdlcmUgZ29vZCBlbm91Z2ggZm9yIEFubmllJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtMZXTigJlzIGp1c3Qgc2F5IEkgbmV2ZXIgdGhvdWdodCB5b3Ugd2VyZSBnb29kIGVub3VnaCBmb3IgQW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O0J1dCBub3cgSSBjYW4gc2F5IEkgcmVzcGVjdCB5b3VyIHN0YW5jZSZxdW90OyAmcXVvdDtqb2xra3RvbGtrUG9sa2tsb2xra0FvbGtrem9sa2tKb2xra1BvbGtrb29sa2tKb2xra2JvbGtrUG9sa2t5b2xra2ZvbGtrUG9sa2tkJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCBub3cgSSBjYW4gc2F5IEkgcmVzcGVjdCB5b3VyIHN0YW5jZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7QnV0IG5vdyBJIGNhbiBzYXkgSSByZXNwZWN0IHlvdXIgc3RhbmNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtWb2xra0RvbGtrcm9sa2tWb2xra1RvbGtrYm9sa2trb2xra1omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuOHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I1ZvbGtrRG9sa2tyb2xra1ZvbGtrVG9sa2tib2xra2tvbGtrWiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgY2Fu4oCZdCBiZWxpZXZlIGl0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taVN0YXJ0MV80JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taVN0YXJ0MV80JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQwNCIgbmFtZT0iTmFvbWlTdGFydDFfNCIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDUxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pU3RhcnQxXzQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGNhbuKAmXQgYmVsaWV2ZSBpdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Q29sa2tzb2xra0lvbGtraG9sa2tib2xra3BvbGtrVm9sa2tYJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyNDb2xra3NvbGtrSW9sa2tob2xra2JvbGtrcG9sa2tWb2xra1gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtBbm5pZSB0b2xkIHlvdT8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O05hb21pU3RhcnQxXzUmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtBbm5pZSB0b2xkIHlvdT8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taVN0YXJ0MV81JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQwNSIgbmFtZT0iTmFvbWlTdGFydDFfNSIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDUxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pU3RhcnQxXzUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7QW5uaWUgdG9sZCB5b3U/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5uaWUgdG9sZCB5b3U/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtBbm5pZSB0b2xkIHlvdT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtXaGF0IGRpZCB5b3UgZXhwZWN0PyZxdW90OyAmcXVvdDtzb2xra1VvbGtrZm9sa2t5b2xra1pvbGtrT29sa2tib2xra1JvbGtrRm9sa2tIb2xra0pvbGtreW9sa2thb2xra0JvbGtrTW9sa2toJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1doYXQgZGlkIHlvdSBleHBlY3Q/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtXaGF0IGRpZCB5b3UgZXhwZWN0PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNHMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7V2XigJl2ZSBiZWVuIGJlc3QgZnJpZW5kcyBzaW5jZSBoaWdoIHNjaG9vbCwgYW5kIHdlIHdvcmsgYXQgdGhlIHNhbWUgY29tcGFueSZxdW90OyAmcXVvdDtYb2xra2pvbGtram9sa2tPb2xra1dvbGtrZG9sa2tEb2xra0tvbGtrU29sa2tBb2xra3FvbGtrQW9sa2tab2xra01vbGtrd29sa2tCJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dl4oCZdmUgYmVlbiBiZXN0IGZyaWVuZHMgc2luY2UgaGlnaCBzY2hvb2wsIGFuZCB3ZSB3b3JrIGF0IHRoZSBzYW1lIGNvbXBhbnkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1dl4oCZdmUgYmVlbiBiZXN0IGZyaWVuZHMgc2luY2UgaGlnaCBzY2hvb2wsIGFuZCB3ZSB3b3JrIGF0IHRoZSBzYW1lIGNvbXBhbnkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O1NoZSB0ZWxscyBtZSBldmVyeXRoaW5nJnF1b3Q7ICZxdW90O3JvbGtrYm9sa2t0b2xra1lvbGtrcG9sa2tQb2xra2tvbGtrR29sa2tyb2xra3hvbGtrTW9sa2tmb2xra3hvbGtrYW9sa2tLb2xra3QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U2hlIHRlbGxzIG1lIGV2ZXJ5dGhpbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1NoZSB0ZWxscyBtZSBldmVyeXRoaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtmb2xra3pvbGtrT29sa2t2b2xra05vbGtrZG9sa2tZb2xra3cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I2ZvbGtrem9sa2tPb2xra3ZvbGtrTm9sa2tkb2xra1lvbGtrdyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90Oy4uLiZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlTdGFydDFfNiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90Oy4uLiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O05hb21pU3RhcnQxXzYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDA2IiBuYW1lPSJOYW9taVN0YXJ0MV82IiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsNTEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgID0gJnF1b3Q7TmFvbWlTdGFydDFfNiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJE5hb21pX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDsuLi4mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDsuLi4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90Oy4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjRzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O0FsdGhvdWdoLCB0byBiZSBmYWlyLCBzaGUgZG9lc27igJl0IGtub3cgYWJvdXQgdGhpcyBjb252ZXJzYXRpb24gd2XigJlyZSBoYXZpbmcgcmlnaHQgbm93JnF1b3Q7ICZxdW90O2ZvbGtrRG9sa2t0b2xra2hvbGtram9sa2t1b2xra21vbGtrRG9sa2tHb2xra0dvbGtrZm9sa2twb2xra0FvbGtrd29sa2tyb2xra2omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QWx0aG91Z2gsIHRvIGJlIGZhaXIsIHNoZSBkb2VzbuKAmXQga25vdyBhYm91dCB0aGlzIGNvbnZlcnNhdGlvbiB3ZeKAmXJlIGhhdmluZyByaWdodCBub3cmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0FsdGhvdWdoLCB0byBiZSBmYWlyLCBzaGUgZG9lc27igJl0IGtub3cgYWJvdXQgdGhpcyBjb252ZXJzYXRpb24gd2XigJlyZSBoYXZpbmcgcmlnaHQgbm93JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtMZXQgbWUgZ2V0IHN0cmFpZ2h0IHRvIHRoZSBwb2ludCZxdW90OyAmcXVvdDtCb2xra1JvbGtrZ29sa2tSb2xra1JvbGtrYW9sa2tIb2xra0ZvbGtrcW9sa2tFb2xra1BvbGtrV29sa2tOb2xra2pvbGtrdm9sa2tsJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0xldCBtZSBnZXQgc3RyYWlnaHQgdG8gdGhlIHBvaW50JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtMZXQgbWUgZ2V0IHN0cmFpZ2h0IHRvIHRoZSBwb2ludCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7SeKAmXZlIGFsd2F5cyB0aG91Z2h0IEFubmllIHNob3VsZOKAmXZlIGxpdmVkIGhlciBsaWZlIG1vcmUmcXVvdDsgJnF1b3Q7YW9sa2tJb2xra2VvbGtrQ29sa2tyb2xra21vbGtrdm9sa2tSb2xra0RvbGtrc29sa2txb2xra0dvbGtrTm9sa2tFb2xra2xvbGtrSCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZdmUgYWx3YXlzIHRob3VnaHQgQW5uaWUgc2hvdWxk4oCZdmUgbGl2ZWQgaGVyIGxpZmUgbW9yZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7SeKAmXZlIGFsd2F5cyB0aG91Z2h0IEFubmllIHNob3VsZOKAmXZlIGxpdmVkIGhlciBsaWZlIG1vcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNS4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O1lvdSB3ZXJlIGhlciBmaXJzdCBib3lmcmllbmQmcXVvdDsgJnF1b3Q7dm9sa2tSb2xra2ZvbGtrcm9sa2tRb2xra0JvbGtrV29sa2tYb2xra3pvbGtrUm9sa2tCb2xra2dvbGtrd29sa2tmb2xra3pvbGtrdiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3Ugd2VyZSBoZXIgZmlyc3QgYm95ZnJpZW5kJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtZb3Ugd2VyZSBoZXIgZmlyc3QgYm95ZnJpZW5kJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDYuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC45cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtUaGVuIG91dCBvZiBub3doZXJlLCB5b3UgdHdvIG1vdmVkIGluIHRvZ2V0aGVyJnF1b3Q7ICZxdW90O3lvbGtrQ29sa2tWb2xra3hvbGtrZm9sa2t5b2xra1FvbGtrUm9sa2txb2xra3ZvbGtrT29sa2tZb2xra05vbGtrUW9sa2t1b2xra3MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhlbiBvdXQgb2Ygbm93aGVyZSwgeW91IHR3byBtb3ZlZCBpbiB0b2dldGhlciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7VGhlbiBvdXQgb2Ygbm93aGVyZSwgeW91IHR3byBtb3ZlZCBpbiB0b2dldGhlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA3LjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7QW5kIEkgbmV2ZXIgcmVhbGx5IGdvdCB0byBnbyBvdXQgd2l0aCBteSBmcmllbmQmcXVvdDsgJnF1b3Q7eW9sa2tLb2xra2dvbGtrYm9sa2tmb2xra2xvbGtrSG9sa2thb2xra2ZvbGtrcW9sa2thb2xra0FvbGtrQ29sa2t5b2xra3dvbGtreSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbmQgSSBuZXZlciByZWFsbHkgZ290IHRvIGdvIG91dCB3aXRoIG15IGZyaWVuZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7QW5kIEkgbmV2ZXIgcmVhbGx5IGdvdCB0byBnbyBvdXQgd2l0aCBteSBmcmllbmQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgOS40cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O05vIGJhcnMsIG5vIG1lZXRpbmcgZ3V5cywgbm8gc2hhcmVkIGFkdmVudHVyZXMmcXVvdDsgJnF1b3Q7dm9sa2tUb2xra1JvbGtrUm9sa2tXb2xra2ZvbGtrYW9sa2tMb2xra09vbGtrVW9sa2tpb2xra0dvbGtrRm9sa2tBb2xra1JvbGtraiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtObyBiYXJzLCBubyBtZWV0aW5nIGd1eXMsIG5vIHNoYXJlZCBhZHZlbnR1cmVzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtObyBiYXJzLCBubyBtZWV0aW5nIGd1eXMsIG5vIHNoYXJlZCBhZHZlbnR1cmVzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEwLjhzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7TGV0IG1lIGp1c3Qgc2F5IEkgZG9u4oCZdCBoYXRlIHlvdSZxdW90OyAmcXVvdDt6b2xra29vbGtrTm9sa2tRb2xra2VvbGtrRW9sa2tob2xra0FvbGtrVm9sa2tMb2xra3BvbGtrZG9sa2t1b2xra0JvbGtra29sa2thJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0xldCBtZSBqdXN0IHNheSBJIGRvbuKAmXQgaGF0ZSB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0xldCBtZSBqdXN0IHNheSBJIGRvbuKAmXQgaGF0ZSB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMTIuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS41cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtCdXQgSSBkaWRu4oCZdCBsaWtlIGhvdyB5b3Ugc3dvb3BlZCBpbiBhbmQgc3RvbGUgbXkgZnJpZW5kIGF3YXkgZnJvbSBtZSZxdW90OyAmcXVvdDtSb2xra3JvbGtrUW9sa2t1b2xra0JvbGtrdm9sa2tob2xra2NvbGtrem9sa2tDb2xra3dvbGtrS29sa2tEb2xra1RvbGtrbG9sa2t3JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCBJIGRpZG7igJl0IGxpa2UgaG93IHlvdSBzd29vcGVkIGluIGFuZCBzdG9sZSBteSBmcmllbmQgYXdheSBmcm9tIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtCdXQgSSBkaWRu4oCZdCBsaWtlIGhvdyB5b3Ugc3dvb3BlZCBpbiBhbmQgc3RvbGUgbXkgZnJpZW5kIGF3YXkgZnJvbSBtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7dm9sa2t1b2xra1BvbGtrTm9sa2tib2xra2pvbGtrT29sa2tZJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxNC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RJZCAgPSAmcXVvdDsjdm9sa2t1b2xra1BvbGtrTm9sa2tib2xra2pvbGtrT29sa2tZJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBzZWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O05hb21pU3RhcnQxXzdhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBzZWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taVN0YXJ0MV83YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyN2b2xra3VvbGtrUG9sa2tOb2xra2JvbGtram9sa2tPb2xra1kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtTb+KApiZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlTdGFydDFfN2ImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtTb+KApiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O05hb21pU3RhcnQxXzdiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQwNyIgbmFtZT0iTmFvbWlTdGFydDFfN2EiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCw1MTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRTdGF0ZSAgPSAmcXVvdDtOYW9taVN0YXJ0MV83YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJE5hb21pX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIHNlZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgc2VlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtJIHNlZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtqb2xra0FvbGtrRm9sa2t0b2xra3pvbGtrYm9sa2t6b2xra3QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I2pvbGtrQW9sa2tGb2xra3RvbGtrem9sa2tib2xra3pvbGtrdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0J1dCB3aGF0IGRvIHlvdSB3YW50IGZyb20gbWU/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taVN0YXJ0MV84YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0J1dCB3aGF0IGRvIHlvdSB3YW50IGZyb20gbWU/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlTdGFydDFfOGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDA4IiBuYW1lPSJOYW9taVN0YXJ0MV83YiIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDUxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pU3RhcnQxXzdiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkTmFvbWlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1Nv4oCmJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U2/igKYmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1Nv4oCmJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7U28sIGxldCBtZSBtYWtlIG9uZSB0aGluZyBjbGVhciZxdW90OyAmcXVvdDtob2xra0pvbGtrdG9sa2tnb2xra2pvbGtrZG9sa2tEb2xra1hvbGtrYW9sa2tab2xra25vbGtrSm9sa2tVb2xra0NvbGtrV29sa2t4JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1NvLCBsZXQgbWUgbWFrZSBvbmUgdGhpbmcgY2xlYXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1NvLCBsZXQgbWUgbWFrZSBvbmUgdGhpbmcgY2xlYXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O0FubmllIHdvdWxkIG5ldmVyIGFncmVlIHRvIGZ1bGZpbGwgdGhhdCBmZXRpc2ggb2YgeW91cnMmcXVvdDsgJnF1b3Q7U29sa2tHb2xra2pvbGtrUG9sa2tFb2xra0pvbGtrRW9sa2tDb2xra3hvbGtrQ29sa2t5b2xra05vbGtrY29sa2t5b2xra0lvbGtrZCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbm5pZSB3b3VsZCBuZXZlciBhZ3JlZSB0byBmdWxmaWxsIHRoYXQgZmV0aXNoIG9mIHlvdXJzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtBbm5pZSB3b3VsZCBuZXZlciBhZ3JlZSB0byBmdWxmaWxsIHRoYXQgZmV0aXNoIG9mIHlvdXJzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtOb3Qgd2l0aG91dCBtZSBjb252aW5jaW5nIGhlciZxdW90OyAmcXVvdDtLb2xra01vbGtrV29sa2thb2xra0dvbGtrVG9sa2tGb2xra1hvbGtrSG9sa2tQb2xra2ZvbGtrTG9sa2tQb2xra1JvbGtrUG9sa2taJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O05vdCB3aXRob3V0IG1lIGNvbnZpbmNpbmcgaGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtOb3Qgd2l0aG91dCBtZSBjb252aW5jaW5nIGhlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNXMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7SeKAmXZlIGFscmVhZHkgdGFsa2VkIHRvIGhlciwgYW5kIEkgdGhpbmsgdGhpbmdzIG1pZ2h0IGhlYWQgaW4gdGhlIHJpZ2h0IGRpcmVjdGlvbiZxdW90OyAmcXVvdDtCb2xra0ZvbGtrSm9sa2tWb2xra2RvbGtrZG9sa2tUb2xra01vbGtrUm9sa2tmb2xra25vbGtreG9sa2tWb2xra2JvbGtrSm9sa2tyJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJl2ZSBhbHJlYWR5IHRhbGtlZCB0byBoZXIsIGFuZCBJIHRoaW5rIHRoaW5ncyBtaWdodCBoZWFkIGluIHRoZSByaWdodCBkaXJlY3Rpb24mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0nigJl2ZSBhbHJlYWR5IHRhbGtlZCB0byBoZXIsIGFuZCBJIHRoaW5rIHRoaW5ncyBtaWdodCBoZWFkIGluIHRoZSByaWdodCBkaXJlY3Rpb24mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNi40cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjJzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O1doYXQgSeKAmW0gb2ZmZXJpbmcgaXMgaGVscCwgaGVscCB0byBnZXQgd2hhdCB5b3XigJlyZSBsb29raW5nIGZvciZxdW90OyAmcXVvdDtpb2xra01vbGtrYm9sa2tCb2xra2FvbGtrbW9sa2tCb2xra1dvbGtrZW9sa2tYb2xra3lvbGtrVm9sa2tZb2xra1NvbGtrTW9sa2t1JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1doYXQgSeKAmW0gb2ZmZXJpbmcgaXMgaGVscCwgaGVscCB0byBnZXQgd2hhdCB5b3XigJlyZSBsb29raW5nIGZvciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7V2hhdCBJ4oCZbSBvZmZlcmluZyBpcyBoZWxwLCBoZWxwIHRvIGdldCB3aGF0IHlvdeKAmXJlIGxvb2tpbmcgZm9yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDguMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtBbmQsIGluIHJldHVybiwgSSBnZXQgbXkgZnJpZW5kIGJhY2sgZm9yIG15c2VsZiZxdW90OyAmcXVvdDtqb2xra0ZvbGtrRm9sa2tMb2xra1pvbGtraW9sa2ttb2xra3JvbGtrTG9sa2tnb2xra0tvbGtrQW9sa2tFb2xra1pvbGtrdW9sa2tmJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FuZCwgaW4gcmV0dXJuLCBJIGdldCBteSBmcmllbmQgYmFjayBmb3IgbXlzZWxmJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtBbmQsIGluIHJldHVybiwgSSBnZXQgbXkgZnJpZW5kIGJhY2sgZm9yIG15c2VsZiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7bW9sa2tHb2xra1FvbGtrY29sa2tWb2xra3pvbGtrQm9sa2tDJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA5LjhzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyNtb2xra0dvbGtrUW9sa2tjb2xra1ZvbGtrem9sa2tCb2xra0MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGhhdmUgdG8gc2F5LCB0aGF0IGRvZXNuJiMzOTt0IHNvdW5kIGJhZCBhdCBhbGwmcXVvdDssIHBhc3NhZ2U6ICZxdW90O05hb21pU3RhcnQxXzExYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgaGF2ZSB0byBzYXksIHRoYXQgZG9lc24mIzM5O3Qgc291bmQgYmFkIGF0IGFsbCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O05hb21pU3RhcnQxXzExYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyNtb2xra0dvbGtrUW9sa2tjb2xra1ZvbGtrem9sa2tCb2xra0MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGRvbiYjMzk7dCB3YW50IHlvdSBpbnZvbHZlZCBpbiB0aGlzJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taVN0YXJ0MV8xMWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGRvbiYjMzk7dCB3YW50IHlvdSBpbnZvbHZlZCBpbiB0aGlzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlTdGFydDFfMTFiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQwOSIgbmFtZT0iTmFvbWlTdGFydDFfOGEiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsNTEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgID0gJnF1b3Q7TmFvbWlTdGFydDFfOGEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7QnV0IHdoYXQgZG8geW91IHdhbnQgZnJvbSBtZT8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgd2hhdCBkbyB5b3Ugd2FudCBmcm9tIG1lPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7QnV0IHdoYXQgZG8geW91IHdhbnQgZnJvbSBtZT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7a29sa2tpb2xra2VvbGtrRG9sa2tEb2xra21vbGtrbW9sa2tYJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyNrb2xra2lvbGtrZW9sa2tEb2xra0RvbGtrbW9sa2ttb2xra1gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJcyB0aGlzIHNvbWUga2luZCBvZiBhcG9sb2d5PyZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlTdGFydDFfMTBhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SXMgdGhpcyBzb21lIGtpbmQgb2YgYXBvbG9neT8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taVN0YXJ0MV8xMGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDEwIiBuYW1lPSJOYW9taVN0YXJ0MV8xMGEiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsNTEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgID0gJnF1b3Q7TmFvbWlTdGFydDFfMTBhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkTmFvbWlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0lzIHRoaXMgc29tZSBraW5kIG9mIGFwb2xvZ3k/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXMgdGhpcyBzb21lIGtpbmQgb2YgYXBvbG9neT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0lzIHRoaXMgc29tZSBraW5kIG9mIGFwb2xvZ3k/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7T2gsIGxldCBtZSB0ZWxsIHlvdSwgaXTigJlzIG11Y2ggbW9yZSB0aGFuIHRoYXQmcXVvdDsgJnF1b3Q7cW9sa2tMb2xra25vbGtrSm9sa2tLb2xra0tvbGtrRm9sa2t5b2xra25vbGtrVm9sa2tGb2xra3VvbGtrQm9sa2tGb2xra0ZvbGtrSSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPaCwgbGV0IG1lIHRlbGwgeW91LCBpdOKAmXMgbXVjaCBtb3JlIHRoYW4gdGhhdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7T2gsIGxldCBtZSB0ZWxsIHlvdSwgaXTigJlzIG11Y2ggbW9yZSB0aGFuIHRoYXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjJzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O1lvdSBzZWUsIEFubmllIHdvdWxkIG5ldmVyIGFncmVlIHRvIGZ1bGZpbGwgdGhhdCBmZXRpc2ggb2YgeW91cnMmcXVvdDsgJnF1b3Q7Sm9sa2tEb2xra2ZvbGtrZG9sa2tnb2xra2JvbGtrVW9sa2tPb2xra0dvbGtrU29sa2tVb2xra0tvbGtrQ29sa2tBb2xra3lvbGtrbSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3Ugc2VlLCBBbm5pZSB3b3VsZCBuZXZlciBhZ3JlZSB0byBmdWxmaWxsIHRoYXQgZmV0aXNoIG9mIHlvdXJzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtZb3Ugc2VlLCBBbm5pZSB3b3VsZCBuZXZlciBhZ3JlZSB0byBmdWxmaWxsIHRoYXQgZmV0aXNoIG9mIHlvdXJzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtOb3Qgd2l0aG91dCBtZSBjb252aW5jaW5nIGhlciZxdW90OyAmcXVvdDtHb2xra0VvbGtrbG9sa2ttb2xra0tvbGtrV29sa2txb2xra1ZvbGtra29sa2tEb2xra0RvbGtrTG9sa2tZb2xra2pvbGtrT29sa2tLJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O05vdCB3aXRob3V0IG1lIGNvbnZpbmNpbmcgaGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtOb3Qgd2l0aG91dCBtZSBjb252aW5jaW5nIGhlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjhzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNXMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7SeKAmXZlIGFscmVhZHkgdGFsa2VkIHRvIGhlciwgYW5kIEkgdGhpbmsgdGhpbmdzIG1pZ2h0IGhlYWQgaW4gdGhlIHJpZ2h0IGRpcmVjdGlvbiZxdW90OyAmcXVvdDtob2xra0VvbGtrcW9sa2tWb2xra2lvbGtrZm9sa2tJb2xra29vbGtrY29sa2tjb2xra0dvbGtrcW9sa2tJb2xra1FvbGtrcW9sa2tEJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJl2ZSBhbHJlYWR5IHRhbGtlZCB0byBoZXIsIGFuZCBJIHRoaW5rIHRoaW5ncyBtaWdodCBoZWFkIGluIHRoZSByaWdodCBkaXJlY3Rpb24mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0nigJl2ZSBhbHJlYWR5IHRhbGtlZCB0byBoZXIsIGFuZCBJIHRoaW5rIHRoaW5ncyBtaWdodCBoZWFkIGluIHRoZSByaWdodCBkaXJlY3Rpb24mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNi45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjJzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O1doYXQgSeKAmW0gb2ZmZXJpbmcgaXMgaGVscCwgaGVscCB0byBnZXQgd2hhdCB5b3XigJlyZSBsb29raW5nIGZvciZxdW90OyAmcXVvdDtIb2xra0JvbGtra29sa2t1b2xra1VvbGtrdW9sa2ttb2xra21vbGtram9sa2tEb2xra0RvbGtrdG9sa2tHb2xra0xvbGtrWm9sa2tLJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1doYXQgSeKAmW0gb2ZmZXJpbmcgaXMgaGVscCwgaGVscCB0byBnZXQgd2hhdCB5b3XigJlyZSBsb29raW5nIGZvciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7V2hhdCBJ4oCZbSBvZmZlcmluZyBpcyBoZWxwLCBoZWxwIHRvIGdldCB3aGF0IHlvdeKAmXJlIGxvb2tpbmcgZm9yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDguN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtBbmQsIGluIHJldHVybiwgSSBnZXQgbXkgZnJpZW5kIGJhY2sgZm9yIG15c2VsZiZxdW90OyAmcXVvdDtZb2xra0ZvbGtrcG9sa2tMb2xra2NvbGtrdm9sa2tZb2xra2hvbGtrc29sa2tEb2xra1lvbGtrQ29sa2tIb2xra1VvbGtrTm9sa2tlJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FuZCwgaW4gcmV0dXJuLCBJIGdldCBteSBmcmllbmQgYmFjayBmb3IgbXlzZWxmJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtBbmQsIGluIHJldHVybiwgSSBnZXQgbXkgZnJpZW5kIGJhY2sgZm9yIG15c2VsZiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7bm9sa2tVb2xra01vbGtrS29sa2tRb2xra2tvbGtrb29sa2tRJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RJZCAgPSAmcXVvdDsjbm9sa2tVb2xra01vbGtrS29sa2tRb2xra2tvbGtrb29sa2tRJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBoYXZlIHRvIHNheSwgdGhhdCBkb2VzbiYjMzk7dCBzb3VuZCBiYWQgYXQgYWxsJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taVN0YXJ0MV8xMWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGhhdmUgdG8gc2F5LCB0aGF0IGRvZXNuJiMzOTt0IHNvdW5kIGJhZCBhdCBhbGwmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taVN0YXJ0MV8xMWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RJZCAgPSAmcXVvdDsjbm9sa2tVb2xra01vbGtrS29sa2tRb2xra2tvbGtrb29sa2tRJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBkb24mIzM5O3Qgd2FudCB5b3UgaW52b2x2ZWQgaW4gdGhpcyZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlTdGFydDFfMTFiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBkb24mIzM5O3Qgd2FudCB5b3UgaW52b2x2ZWQgaW4gdGhpcyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O05hb21pU3RhcnQxXzExYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0MTEiIG5hbWU9Ik5hb21pU3RhcnQxXzExYSIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDUyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pU3RhcnQxXzExYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJE5hb21pX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGhhdmUgdG8gc2F5LCB0aGF0IGRvZXNu4oCZdCBzb3VuZCBiYWQgYXQgYWxsJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBoYXZlIHRvIHNheSwgdGhhdCBkb2VzbuKAmXQgc291bmQgYmFkIGF0IGFsbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7SSBoYXZlIHRvIHNheSwgdGhhdCBkb2VzbuKAmXQgc291bmQgYmFkIGF0IGFsbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkbmFvbWlfb2ZmZXIgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkTmFvbWlfbm90ZXMucHVzaCgmcXVvdDtTaGUgZm91bmQgb3V0IGFib3V0IG15IGZhbnRhc3ksIG9mZmVyZWQgdG8gaGVscCBhbmQgSSBhY2NlcHRlZC4gSSBqdXN0IGhvcGUgdGhpcyBkb2VzbuKAmXQgZW5kIGJhZGx5LiZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2dvbGtrbG9sa2tMb2xra3dvbGtrU29sa2twb2xra1hvbGtrTyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RJZCAgPSAmcXVvdDsjZ29sa2tsb2xra0xvbGtrd29sa2tTb2xra3BvbGtrWG9sa2tPJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7V2hhdCBkbyB5b3UgaGF2ZSBpbiBtaW5kPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlTdGFydDFfMTJhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7V2hhdCBkbyB5b3UgaGF2ZSBpbiBtaW5kPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O05hb21pU3RhcnQxXzEyYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0MTIiIG5hbWU9Ik5hb21pU3RhcnQxXzExYiIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDUyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pU3RhcnQxXzExYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJE5hb21pX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGRvbuKAmXQgd2FudCB5b3UgaW52b2x2ZWQgaW4gdGhpcyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZG9u4oCZdCB3YW50IHlvdSBpbnZvbHZlZCBpbiB0aGlzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtJIGRvbuKAmXQgd2FudCB5b3UgaW52b2x2ZWQgaW4gdGhpcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkbmFvbWlfb2ZmZXIgPSBmYWxzZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX25vdGVzLnB1c2goJnF1b3Q7U2hlIGZvdW5kIG91dCBhYm91dCBteSBmYW50YXN5IGFuZCBvZmZlcmVkIHRvIGhlbHAsIGJ1dCBJIHR1cm5lZCBoZXIgZG93bi4gSeKAmWQgcmF0aGVyIGtlZXAgaGVyIG91dCBvZiB0aGlzLiZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2NvbGtreG9sa2tnb2xra2tvbGtrTm9sa2tIb2xra1VvbGtrbiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RJZCAgPSAmcXVvdDsjY29sa2t4b2xra2dvbGtra29sa2tOb2xra0hvbGtrVW9sa2tuJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhpcyBoYXMgbm90aGluZyB0byBkbyB3aXRoIHlvdSZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlTdGFydDFfMTJiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhpcyBoYXMgbm90aGluZyB0byBkbyB3aXRoIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O05hb21pU3RhcnQxXzEyYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0MTMiIG5hbWU9Ik5hb21pU3RhcnQxXzEyYSIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDUyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pU3RhcnQxXzEyYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJE5hb21pX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtXaGF0IGRvIHlvdSBoYXZlIGluIG1pbmQ/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2hhdCBkbyB5b3UgaGF2ZSBpbiBtaW5kPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7V2hhdCBkbyB5b3UgaGF2ZSBpbiBtaW5kPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O0p1c3QgZ2l2ZSBtZSB0aW1lIHRvIHdvcmsgbXkgbWFnaWMmcXVvdDsgJnF1b3Q7eG9sa2tVb2xra0RvbGtrUm9sa2t1b2xra0JvbGtrU29sa2t4b2xra1JvbGtrR29sa2tsb2xra1lvbGtrcm9sa2tTb2xra2JvbGtrUCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtKdXN0IGdpdmUgbWUgdGltZSB0byB3b3JrIG15IG1hZ2ljJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtKdXN0IGdpdmUgbWUgdGltZSB0byB3b3JrIG15IG1hZ2ljJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtCdXQgeW914oCZbGwgc2VlIHNvb24gZW5vdWdoJnF1b3Q7ICZxdW90O0pvbGtrWG9sa2tKb2xra0xvbGtrZm9sa2tHb2xra1FvbGtrWm9sa2t5b2xra3VvbGtrT29sa2tMb2xra1lvbGtrUW9sa2tmb2xra1cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IHlvdeKAmWxsIHNlZSBzb29uIGVub3VnaCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7QnV0IHlvdeKAmWxsIHNlZSBzb29uIGVub3VnaCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Ym9sa2tEb2xra1BvbGtrdm9sa2tOb2xra3NvbGtreW9sa2tJJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjhzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyNib2xra0RvbGtrUG9sa2t2b2xra05vbGtrc29sa2t5b2xra0kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtBbHJpZ2h0LCBJIHRydXN0IHlvdSZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlTdGFydDFfMTNhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QWxyaWdodCwgSSB0cnVzdCB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taVN0YXJ0MV8xM2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDE0IiBuYW1lPSJOYW9taVN0YXJ0MV8xM2EiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSw1MjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRTdGF0ZSAgPSAmcXVvdDtOYW9taVN0YXJ0MV8xM2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7QWxyaWdodCwgSSB0cnVzdCB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbHJpZ2h0LCBJIHRydXN0IHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7QWxyaWdodCwgSSB0cnVzdCB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7R29sa2t3b2xra3pvbGtrYm9sa2t6b2xra21vbGtrSW9sa2t2JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyNHb2xra3dvbGtrem9sa2tib2xra3pvbGtrbW9sa2tJb2xra3YmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtKdXN0IGtlZXAgbWUgdXBkYXRlZCwgb2theT8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O05hb21pU3RhcnQxXzE0YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0p1c3Qga2VlcCBtZSB1cGRhdGVkLCBva2F5PyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O05hb21pU3RhcnQxXzE0YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0MTUiIG5hbWU9Ik5hb21pU3RhcnQxXzE0YSIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDUyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pU3RhcnQxXzE0YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJE5hb21pX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtKdXN0IGtlZXAgbWUgdXBkYXRlZCwgb2theT8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtKdXN0IGtlZXAgbWUgdXBkYXRlZCwgb2theT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0p1c3Qga2VlcCBtZSB1cGRhdGVkLCBva2F5PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O0kgd2lsbCZxdW90OyAmcXVvdDtXb2xra1ZvbGtrcW9sa2tEb2xra0lvbGtrdm9sa2t1b2xra0NvbGtrT29sa2tlb2xra1BvbGtrb29sa2tWb2xra3RvbGtrTm9sa2tsJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgd2lsbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7SSB3aWxsJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMXMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfd2luay53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7TmFvbWkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfd2luay53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAyLjFzJmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDvwn5iJJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRTdGF0ZSA9ICZxdW90O05hb21pU3RhcnQ3YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICROYW9taV9sYXN0X2hvdXIgPSAmcXVvdDswODozNyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICROYW9taV9jaGF0ID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkaG91ciA9ICZxdW90OzA4OjM3JnF1b3Q7Jmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtvZmZsaW5lLXRleHQmcXVvdDsmZ3Q7TmFvbWkgaXMgb2ZmbGluZSZsdDsvZGl2Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjFzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVDaGF0M18xJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMXMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SG9uZXksIEnigJltIHNvcnJ5JnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMXMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0MTYiIG5hbWU9Ik5hb21pU3RhcnQxXzEyYiIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDUyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pU3RhcnQxXzEyYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJE5hb21pX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGlzIGhhcyBub3RoaW5nIHRvIGRvIHdpdGggeW91JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhpcyBoYXMgbm90aGluZyB0byBkbyB3aXRoIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7VGhpcyBoYXMgbm90aGluZyB0byBkbyB3aXRoIHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O09oLCBJIGRpc2FncmVlJnF1b3Q7ICZxdW90O0JvbGtraW9sa2tNb2xra2RvbGtrR29sa2tQb2xra2tvbGtrUW9sa2tQb2xra2hvbGtrQm9sa2tsb2xra1NvbGtrQm9sa2tQb2xra24mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2gsIEkgZGlzYWdyZWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O09oLCBJIGRpc2FncmVlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtBbnl0aGluZyBpbnZvbHZpbmcgbXkgYmVzdCBmcmllbmQgaGFzIGV2ZXJ5dGhpbmcgdG8gZG8gd2l0aCBtZSZxdW90OyAmcXVvdDt4b2xra1lvbGtreG9sa2tib2xra25vbGtrb29sa2tBb2xra1NvbGtrZm9sa2tNb2xra1hvbGtraG9sa2tib2xra2JvbGtrbm9sa2tPJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FueXRoaW5nIGludm9sdmluZyBteSBiZXN0IGZyaWVuZCBoYXMgZXZlcnl0aGluZyB0byBkbyB3aXRoIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtBbnl0aGluZyBpbnZvbHZpbmcgbXkgYmVzdCBmcmllbmQgaGFzIGV2ZXJ5dGhpbmcgdG8gZG8gd2l0aCBtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7SeKAmXZlIGtub3duIGhlciBmYXIgbG9uZ2VyIHRoYW4geW91IGhhdmUmcXVvdDsgJnF1b3Q7RW9sa2t2b2xra1RvbGtrVW9sa2tXb2xra3RvbGtrYW9sa2tUb2xra3FvbGtrYW9sa2tIb2xra2FvbGtrWm9sa2tub2xra0pvbGtrWSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZdmUga25vd24gaGVyIGZhciBsb25nZXIgdGhhbiB5b3UgaGF2ZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7SeKAmXZlIGtub3duIGhlciBmYXIgbG9uZ2VyIHRoYW4geW91IGhhdmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O0J1dCBoZXksIHlvdeKAmWxsIHRoYW5rIG1lIGV2ZW50dWFsbHkmcXVvdDsgJnF1b3Q7Rm9sa2t6b2xra25vbGtrcm9sa2t4b2xra1FvbGtrUW9sa2tZb2xra2VvbGtrcm9sa2tZb2xra3lvbGtrdW9sa2tXb2xra3hvbGtrTiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgaGV5LCB5b3XigJlsbCB0aGFuayBtZSBldmVudHVhbGx5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtCdXQgaGV5LCB5b3XigJlsbCB0aGFuayBtZSBldmVudHVhbGx5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDUuNXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC45cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtUaGFua3MgdG8gbWUsIHlvdXIgZGFya2VzdCBmYW50YXNpZXMgd2lsbCBjb21lIHRydWUmcXVvdDsgJnF1b3Q7Sm9sa2tjb2xra3hvbGtrZG9sa2tWb2xra3hvbGtrYm9sa2tqb2xra2pvbGtrQm9sa2twb2xra1dvbGtrc29sa2tqb2xra1NvbGtrdyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGFua3MgdG8gbWUsIHlvdXIgZGFya2VzdCBmYW50YXNpZXMgd2lsbCBjb21lIHRydWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1RoYW5rcyB0byBtZSwgeW91ciBkYXJrZXN0IGZhbnRhc2llcyB3aWxsIGNvbWUgdHJ1ZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7VG9sa2tCb2xra3hvbGtrSm9sa2twb2xra0pvbGtrQW9sa2t0JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA3LjBzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyNUb2xra0JvbGtreG9sa2tKb2xra3BvbGtrSm9sa2tBb2xra3QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJ4oCZbSBkb25lIHRhbGtpbmcgdG8geW91JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taVN0YXJ0MV8xM2ImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJ4oCZbSBkb25lIHRhbGtpbmcgdG8geW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlTdGFydDFfMTNiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQxNyIgbmFtZT0iTmFvbWlTdGFydDFfMTNiIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsNTIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgID0gJnF1b3Q7TmFvbWlTdGFydDFfMTNiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkTmFvbWlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0nigJltIGRvbmUgdGFsa2luZyB0byB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBkb25lIHRhbGtpbmcgdG8geW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtJ4oCZbSBkb25lIHRhbGtpbmcgdG8geW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X3dpbmsud2VicCZxdW90OyB0cnVlICZxdW90O05hb21pJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X3dpbmsud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q78J+YiSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgPSAmcXVvdDtOYW9taVN0YXJ0N2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkTmFvbWlfbGFzdF9ob3VyID0gJnF1b3Q7MDg6MzcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkTmFvbWlfY2hhdCA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDswODozNyZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7b2ZmbGluZS10ZXh0JnF1b3Q7Jmd0O05hb21pIGlzIG9mZmxpbmUmbHQ7L2RpdiZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSA9ICZxdW90O0FubmllQ2hhdDNfMSZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hvbmV5LCBJ4oCZbSBzb3JyeSZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdCA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDE4IiBuYW1lPSJOYW9taUNoYXRFcDJfMV8xIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsNTIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtIZXksIGl04oCZcyBtZSBhZ2Fpbi4uLiZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGV5LCBpdOKAmXMgbWUgYWdhaW4uLi4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0hleSwgaXTigJlzIG1lIGFnYWluLi4uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7ZW9sa2tSb2xra2VvbGtrUm9sa2tMb2xra0xvbGtrTW9sa2tkJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjZzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyNlb2xra1JvbGtrZW9sa2tSb2xra0xvbGtrTG9sa2tNb2xra2QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtOYW9taSwgd2hhdCBkbyB5b3Ugd2FudCBub3c/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taUNoYXRFcDJfMV8yJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7TmFvbWksIHdoYXQgZG8geW91IHdhbnQgbm93PyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O05hb21pQ2hhdEVwMl8xXzImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0MTkiIG5hbWU9Ik5hb21pQ2hhdEVwMl8xXzIiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsNTIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgID0gJnF1b3Q7TmFvbWlDaGF0RXAyXzFfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJE5hb21pX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtOYW9taSwgd2hhdCBkbyB5b3Ugd2FudCBub3c/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TmFvbWksIHdoYXQgZG8geW91IHdhbnQgbm93PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7TmFvbWksIHdoYXQgZG8geW91IHdhbnQgbm93PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O0kgYXNzdW1lIHlvdeKAmXZlIGhlYXJkJnF1b3Q7ICZxdW90O3BvbGtrZ29sa2t4b2xra05vbGtram9sa2tIb2xra1ZvbGtrRG9sa2tGb2xra3BvbGtrWW9sa2tXb2xra3dvbGtrWW9sa2tFb2xra2ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBhc3N1bWUgeW914oCZdmUgaGVhcmQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0kgYXNzdW1lIHlvdeKAmXZlIGhlYXJkJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtQb2xra1hvbGtrb29sa2tzb2xra1BvbGtraG9sa2tDb2xra2kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I1BvbGtrWG9sa2tvb2xra3NvbGtrUG9sa2tob2xra0NvbGtraSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0hlYXJkIHdoYXQ/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taUNoYXRFcDJfMV8zYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0hlYXJkIHdoYXQ/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlDaGF0RXAyXzFfM2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RJZCAgPSAmcXVvdDsjUG9sa2tYb2xra29vbGtrc29sa2tQb2xra2hvbGtrQ29sa2tpJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhhdCB5b3XigJlyZSBnb2luZyBvdXQgdG8gYSBuaWdodGNsdWIgdG9tb3Jyb3c/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taUNoYXRFcDJfMV8zYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoYXQgeW914oCZcmUgZ29pbmcgb3V0IHRvIGEgbmlnaHRjbHViIHRvbW9ycm93PyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O05hb21pQ2hhdEVwMl8xXzNiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQyMCIgbmFtZT0iTmFvbWlDaGF0RXAyXzFfM2EiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsNTIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgID0gJnF1b3Q7TmFvbWlDaGF0RXAyXzFfM2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SGVhcmQgd2hhdD8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZWFyZCB3aGF0PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7SGVhcmQgd2hhdD8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtUaGF0IHdl4oCZcmUgZ29pbmcgdG8gYSBuaWdodGNsdWIgdG9tb3Jyb3cmcXVvdDsgJnF1b3Q7T29sa2tyb2xra2pvbGtrQ29sa2tnb2xra3pvbGtrSG9sa2t6b2xra1ZvbGtrSW9sa2tCb2xra1BvbGtrdW9sa2tVb2xra0JvbGtreSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGF0IHdl4oCZcmUgZ29pbmcgdG8gYSBuaWdodGNsdWIgdG9tb3Jyb3cmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1RoYXQgd2XigJlyZSBnb2luZyB0byBhIG5pZ2h0Y2x1YiB0b21vcnJvdyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7dm9sa2tSb2xra2tvbGtrVW9sa2tJb2xra0xvbGtrV29sa2tCJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjZzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyN2b2xra1JvbGtra29sa2tVb2xra0lvbGtrTG9sa2tXb2xra0ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZZWFoLCBBbm5pZSBhbHJlYWR5IHRvbGQgbWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O05hb21pQ2hhdEVwMl8xXzQmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZZWFoLCBBbm5pZSBhbHJlYWR5IHRvbGQgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taUNoYXRFcDJfMV80JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQyMSIgbmFtZT0iTmFvbWlDaGF0RXAyXzFfM2IiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCw1MzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRTdGF0ZSAgPSAmcXVvdDtOYW9taUNoYXRFcDJfMV8zYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJE5hb21pX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGF0IHlvdeKAmXJlIGdvaW5nIG91dCB0byBhIG5pZ2h0Y2x1YiB0b21vcnJvdz8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGF0IHlvdeKAmXJlIGdvaW5nIG91dCB0byBhIG5pZ2h0Y2x1YiB0b21vcnJvdz8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1RoYXQgeW914oCZcmUgZ29pbmcgb3V0IHRvIGEgbmlnaHRjbHViIHRvbW9ycm93PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtOb2xra0JvbGtrSW9sa2tIb2xra2VvbGtrRG9sa2twb2xra1omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I05vbGtrQm9sa2tJb2xra0hvbGtrZW9sa2tEb2xra3BvbGtrWiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1llYWgsIEFubmllIGFscmVhZHkgdG9sZCBtZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlDaGF0RXAyXzFfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1llYWgsIEFubmllIGFscmVhZHkgdG9sZCBtZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O05hb21pQ2hhdEVwMl8xXzQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDIyIiBuYW1lPSJOYW9taUNoYXRFcDJfMV80IiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsNTM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgID0gJnF1b3Q7TmFvbWlDaGF0RXAyXzFfNCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJE5hb21pX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZZWFoLCBBbm5pZSBhbHJlYWR5IHRvbGQgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFoLCBBbm5pZSBhbHJlYWR5IHRvbGQgbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1llYWgsIEFubmllIGFscmVhZHkgdG9sZCBtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtXb2xra3hvbGtrZG9sa2tob2xra3dvbGtrU29sa2t5b2xra2QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I1dvbGtreG9sa2tkb2xra2hvbGtrd29sa2tTb2xra3lvbGtrZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1NvIHdoYXQgYWJvdXQgaXQ/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taUNoYXRFcDJfMV81JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7U28gd2hhdCBhYm91dCBpdD8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taUNoYXRFcDJfMV81JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQyMyIgbmFtZT0iTmFvbWlDaGF0RXAyXzFfNSIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDUzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pQ2hhdEVwMl8xXzUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7U28gd2hhdCBhYm91dCBpdD8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTbyB3aGF0IGFib3V0IGl0PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7U28gd2hhdCBhYm91dCBpdD8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtXZWxsLCBJIHRoaW5rIHlvdSBhbHJlYWR5IGtub3cgd2hhdCBJ4oCZbSBnb2luZyB0byBzYXkmcXVvdDsgJnF1b3Q7SW9sa2tPb2xra3RvbGtrY29sa2tob2xra29vbGtrTW9sa2tKb2xra2lvbGtrUG9sa2twb2xra2dvbGtrcG9sa2thb2xra2NvbGtreiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZWxsLCBJIHRoaW5rIHlvdSBhbHJlYWR5IGtub3cgd2hhdCBJ4oCZbSBnb2luZyB0byBzYXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1dlbGwsIEkgdGhpbmsgeW91IGFscmVhZHkga25vdyB3aGF0IEnigJltIGdvaW5nIHRvIHNheSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMnMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7QnV0IHlvdSBzdGlsbCBoYXZlIHRpbWUgdG8gdGFrZSBtZSB1cCBvbiBteSBvZmZlciZxdW90OyAmcXVvdDtCb2xra3hvbGtrZW9sa2tYb2xra0NvbGtrc29sa2tnb2xra0FvbGtrQW9sa2tLb2xra2pvbGtrV29sa2tFb2xra2lvbGtrY29sa2tyJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCB5b3Ugc3RpbGwgaGF2ZSB0aW1lIHRvIHRha2UgbWUgdXAgb24gbXkgb2ZmZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0J1dCB5b3Ugc3RpbGwgaGF2ZSB0aW1lIHRvIHRha2UgbWUgdXAgb24gbXkgb2ZmZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O1lvdSBqdXN0IG5lZWQgdG8gbGV0IG1lIGJlIHlvdXIgZmFpcnkgZ29kbW90aGVyJnF1b3Q7ICZxdW90O2lvbGtram9sa2tXb2xra3VvbGtrZm9sa2tib2xra3hvbGtrTm9sa2tRb2xra3NvbGtrWW9sa2tTb2xra2FvbGtreG9sa2tOb2xra04mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGp1c3QgbmVlZCB0byBsZXQgbWUgYmUgeW91ciBmYWlyeSBnb2Rtb3RoZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1lvdSBqdXN0IG5lZWQgdG8gbGV0IG1lIGJlIHlvdXIgZmFpcnkgZ29kbW90aGVyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDUuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtBIGZhaXJ5IGdvZG1vdGhlciB3aG/igJlsbCBoZWxwIHlvdXIgd2lsZGVzdCBkZXNpcmVzIGNvbWUgdHJ1ZSZxdW90OyAmcXVvdDtob2xra2VvbGtrYm9sa2tMb2xra3lvbGtrVG9sa2tVb2xra21vbGtrQW9sa2tRb2xra0pvbGtrUG9sa2trb2xra3dvbGtrUW9sa2tzJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0EgZmFpcnkgZ29kbW90aGVyIHdob+KAmWxsIGhlbHAgeW91ciB3aWxkZXN0IGRlc2lyZXMgY29tZSB0cnVlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtBIGZhaXJ5IGdvZG1vdGhlciB3aG/igJlsbCBoZWxwIHlvdXIgd2lsZGVzdCBkZXNpcmVzIGNvbWUgdHJ1ZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7WG9sa2t5b2xra1FvbGtra29sa2thb2xra1NvbGtrWW9sa2tpJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA3LjBzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyNYb2xra3lvbGtrUW9sa2trb2xra2FvbGtrU29sa2tZb2xra2kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3Uga25vdywgd2hlbiB5b3UgcHV0IGl0IGxpa2UgdGhhdCwgaXQgZG9lc27igJl0IHNvdW5kIHNvIGJhZCZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlDaGF0RXAyXzFfNmEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3Uga25vdywgd2hlbiB5b3UgcHV0IGl0IGxpa2UgdGhhdCwgaXQgZG9lc27igJl0IHNvdW5kIHNvIGJhZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O05hb21pQ2hhdEVwMl8xXzZhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I1hvbGtreW9sa2tRb2xra2tvbGtrYW9sa2tTb2xra1lvbGtraSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0xpa2UgSSBzYWlkLCBJ4oCZbSBub3QgaW50ZXJlc3RlZCZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlDaGF0RXAyXzFfNmImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtMaWtlIEkgc2FpZCwgSeKAmW0gbm90IGludGVyZXN0ZWQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taUNoYXRFcDJfMV82YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0MjQiIG5hbWU9Ik5hb21pQ2hhdEVwMl8xXzZhIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsNTM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgID0gJnF1b3Q7TmFvbWlDaGF0RXAyXzFfNmEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJG5hb21pX29mZmVyID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICROYW9taV9ub3Rlcy5wdXNoKCZxdW90O1NoZSB0ZXh0ZWQgbWUgYWdhaW4gdG8gb2ZmZXIgaGVyIGhlbHAgaW4gbWFraW5nIHRoZSBmYW50YXN5IGhhcHBlbiwgYW5kIEkgZGVjaWRlZCB0byBhY2NlcHQuJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdSBrbm93LCB3aGVuIHlvdSBwdXQgaXQgbGlrZSB0aGF0LCBpdCBkb2VzbuKAmXQgc291bmQgc28gYmFkJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGtub3csIHdoZW4geW91IHB1dCBpdCBsaWtlIHRoYXQsIGl0IGRvZXNu4oCZdCBzb3VuZCBzbyBiYWQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1lvdSBrbm93LCB3aGVuIHlvdSBwdXQgaXQgbGlrZSB0aGF0LCBpdCBkb2VzbuKAmXQgc291bmQgc28gYmFkJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3RvbGtrcG9sa2thb2xra2ZvbGtrSW9sa2tPb2xra2ZvbGtrdSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RJZCAgPSAmcXVvdDsjdG9sa2twb2xra2FvbGtrZm9sa2tJb2xra09vbGtrZm9sa2t1JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QWxyaWdodCwgeW914oCZdmUgY29udmluY2VkIG1lLiBMZXTigJlzIHNlZSB3aGF0IHlvdeKAmXZlIGdvdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlDaGF0RXAyXzFfN2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtBbHJpZ2h0LCB5b3XigJl2ZSBjb252aW5jZWQgbWUuIExldOKAmXMgc2VlIHdoYXQgeW914oCZdmUgZ290JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlDaGF0RXAyXzFfN2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDI1IiBuYW1lPSJOYW9taUNoYXRFcDJfMV82YiIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDUzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pQ2hhdEVwMl8xXzZiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkTmFvbWlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRuYW9taV9lbmVteSA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkTmFvbWlfbm90ZXMucHVzaCgmcXVvdDtOYW9taSB0ZXh0ZWQgbWUgYWdhaW4gdG8gb2ZmZXIgaGVyIGhlbHAgaW4gbWFraW5nIHRoZSBmYW50YXN5IGhhcHBlbiwgYnV0IEkgdHVybmVkIGhlciBkb3duIG9uY2UgbW9yZS4mcXVvdDspJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TGlrZSBJIHNhaWQsIEnigJltIG5vdCBpbnRlcmVzdGVkJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGlrZSBJIHNhaWQsIEnigJltIG5vdCBpbnRlcmVzdGVkJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtMaWtlIEkgc2FpZCwgSeKAmW0gbm90IGludGVyZXN0ZWQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7eW9sa2tGb2xra2RvbGtrS29sa2t6b2xra1BvbGtrSW9sa2t5JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyN5b2xra0ZvbGtrZG9sa2tLb2xra3pvbGtrUG9sa2tJb2xra3kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGlzIGlzIGJldHdlZW4gQW5uaWUgYW5kIG1lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taUNoYXRFcDJfMV83YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoaXMgaXMgYmV0d2VlbiBBbm5pZSBhbmQgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taUNoYXRFcDJfMV83YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0MjYiIG5hbWU9Ik5hb21pQ2hhdEVwMl8xXzdhIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsNTM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgID0gJnF1b3Q7TmFvbWlDaGF0RXAyXzFfN2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7QWxyaWdodCwgeW914oCZdmUgY29udmluY2VkIG1lLiBMZXTigJlzIHNlZSB3aGF0IHlvdeKAmXZlIGdvdCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FscmlnaHQsIHlvdeKAmXZlIGNvbnZpbmNlZCBtZS4gTGV04oCZcyBzZWUgd2hhdCB5b3XigJl2ZSBnb3QmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0FscmlnaHQsIHlvdeKAmXZlIGNvbnZpbmNlZCBtZS4gTGV04oCZcyBzZWUgd2hhdCB5b3XigJl2ZSBnb3QmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtZb3Ugd29u4oCZdCByZWdyZXQgdGhpcywgJG5hbWUmcXVvdDsgJnF1b3Q7Um9sa2tCb2xra01vbGtrVG9sa2tzb2xra2xvbGtrdm9sa2t5b2xra05vbGtrYW9sa2t1b2xra0FvbGtrS29sa2t5b2xra0lvbGtrWSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3Ugd29u4oCZdCByZWdyZXQgdGhpcywgJG5hbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1lvdSB3b27igJl0IHJlZ3JldCB0aGlzLCAkbmFtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtOb2xra3NvbGtrbG9sa2tlb2xra2NvbGtrZ29sa2tzb2xra3EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuNHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I05vbGtrc29sa2tsb2xra2VvbGtrY29sa2tnb2xra3NvbGtrcSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1dlJiMzOTtsbCBzZWUuLi4mcXVvdDssIHBhc3NhZ2U6ICZxdW90O05hb21pQ2hhdEVwMl8xXzhhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7V2UmIzM5O2xsIHNlZS4uLiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O05hb21pQ2hhdEVwMl8xXzhhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQyNyIgbmFtZT0iTmFvbWlDaGF0RXAyXzFfN2IiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCw1MzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRTdGF0ZSAgPSAmcXVvdDtOYW9taUNoYXRFcDJfMV83YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJE5hb21pX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGlzIGlzIGJldHdlZW4gQW5uaWUgYW5kIG1lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhpcyBpcyBiZXR3ZWVuIEFubmllIGFuZCBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7VGhpcyBpcyBiZXR3ZWVuIEFubmllIGFuZCBtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtOb2xra1VvbGtrcG9sa2tHb2xra21vbGtram9sa2tJb2xra2ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I05vbGtrVW9sa2twb2xra0dvbGtrbW9sa2tqb2xra0lvbGtrYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0l0IGhhcyBub3RoaW5nIHRvIGRvIHdpdGggeW91JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taUNoYXRFcDJfMV84YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0l0IGhhcyBub3RoaW5nIHRvIGRvIHdpdGggeW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlDaGF0RXAyXzFfOGImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDI4IiBuYW1lPSJOYW9taUNoYXRFcDJfMV84YSIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDUzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pQ2hhdEVwMl8xXzhhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkTmFvbWlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1dl4oCZbGwgc2VlLi4uJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2XigJlsbCBzZWUuLi4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1dl4oCZbGwgc2VlLi4uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7T2gsIHlvdeKAmWxsIHNlZSB3aGF0IEnigJltIGNhcGFibGUgb2YmcXVvdDsgJnF1b3Q7R29sa2tmb2xra1hvbGtrWm9sa2tTb2xra0ZvbGtrYm9sa2tvb2xra3lvbGtrdG9sa2tPb2xra0VvbGtrem9sa2tjb2xra2RvbGtrQyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPaCwgeW914oCZbGwgc2VlIHdoYXQgSeKAmW0gY2FwYWJsZSBvZiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7T2gsIHlvdeKAmWxsIHNlZSB3aGF0IEnigJltIGNhcGFibGUgb2YmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS42cyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9jb25maWRlbmNlLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtOYW9taSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9jb25maWRlbmNlLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDIuNnMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjZzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMSZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjZzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hleSBob25leSwganVzdCBnb3QgaG9tZSZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjZzJmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDvwn5iPJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRTdGF0ZSA9ICZxdW90O05hb21pQ2hhdEVwMl8xXzhhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RfaG91ciA9ICZxdW90OzE3OjQ2JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2NoYXQgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRob3VyID0gJnF1b3Q7MTc6NDYmcXVvdDsmZ3Q7Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O29mZmxpbmUtdGV4dCZxdW90OyZndDtOYW9taSBpcyBvZmZsaW5lJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQyOSIgbmFtZT0iTmFvbWlDaGF0RXAyXzFfOGIiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsNTM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgID0gJnF1b3Q7TmFvbWlDaGF0RXAyXzFfOGImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SXQgaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdCBoYXMgbm90aGluZyB0byBkbyB3aXRoIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7SXQgaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtZb3XigJlyZSBhYnNvbHV0ZWx5IGluc3VmZmVyYWJsZSZxdW90OyAmcXVvdDtWb2xra3pvbGtreW9sa2tMb2xra2FvbGtreW9sa2t0b2xra1VvbGtrQm9sa2tob2xra0pvbGtrem9sa2txb2xra0RvbGtrR29sa2t1JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdeKAmXJlIGFic29sdXRlbHkgaW5zdWZmZXJhYmxlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtZb3XigJlyZSBhYnNvbHV0ZWx5IGluc3VmZmVyYWJsZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNnMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7VGhhdOKAmXMgd2h5IEnigJl2ZSBuZXZlciBsaWtlZCB5b3UmcXVvdDsgJnF1b3Q7em9sa2tub2xra2tvbGtrZ29sa2twb2xra3FvbGtrWW9sa2tXb2xra1dvbGtrQW9sa2tib2xra1pvbGtrSG9sa2tkb2xra0hvbGtrQiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGF04oCZcyB3aHkgSeKAmXZlIG5ldmVyIGxpa2VkIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7VGhhdOKAmXMgd2h5IEnigJl2ZSBuZXZlciBsaWtlZCB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3RvbGtrem9sa2tzb2xra0dvbGtrZW9sa2tQb2xra3lvbGtraSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RJZCAgPSAmcXVvdDsjdG9sa2t6b2xra3NvbGtrR29sa2tlb2xra1BvbGtreW9sa2tpJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7TGlrZXdpc2UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O05hb21pQ2hhdEVwMl8xXzkmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtMaWtld2lzZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O05hb21pQ2hhdEVwMl8xXzkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDMwIiBuYW1lPSJOYW9taUNoYXRFcDJfMV85IiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDUzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pQ2hhdEVwMl8xXzkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TGlrZXdpc2UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtMaWtld2lzZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7TGlrZXdpc2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtFaXRoZXIgd2F5LCBJ4oCZbGwgZG8gd2hhdGV2ZXIgSSBuZWVkIHRvIGhhdmUgZnVuJnF1b3Q7ICZxdW90O2NvbGtrT29sa2tGb2xra2JvbGtrcG9sa2tvb2xra3NvbGtraG9sa2tzb2xra21vbGtrSG9sa2tPb2xra1pvbGtrbW9sa2tjb2xra04mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RWl0aGVyIHdheSwgSeKAmWxsIGRvIHdoYXRldmVyIEkgbmVlZCB0byBoYXZlIGZ1biZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7RWl0aGVyIHdheSwgSeKAmWxsIGRvIHdoYXRldmVyIEkgbmVlZCB0byBoYXZlIGZ1biZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7Q29uc2lkZXIgeW91cnNlbGYgd2FybmVkJnF1b3Q7ICZxdW90O0FvbGtrbm9sa2tJb2xra2lvbGtraW9sa2tLb2xra2tvbGtrQ29sa2tCb2xra3ZvbGtrQm9sa2tzb2xra2ZvbGtrd29sa2tHb2xra0MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Q29uc2lkZXIgeW91cnNlbGYgd2FybmVkJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtDb25zaWRlciB5b3Vyc2VsZiB3YXJuZWQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi44cyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9jb25maWRlbmNlLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtOYW9taSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9jb25maWRlbmNlLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDMuOHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjhzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMSZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjhzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hleSBob25leSwganVzdCBnb3QgaG9tZSZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjhzJmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDvwn5iPJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRTdGF0ZSA9ICZxdW90O05hb21pQ2hhdEVwMl8xXzhhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RfaG91ciA9ICZxdW90OzE3OjQ2JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2NoYXQgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRob3VyID0gJnF1b3Q7MTc6NDYmcXVvdDsmZ3Q7Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O29mZmxpbmUtdGV4dCZxdW90OyZndDtOYW9taSBpcyBvZmZsaW5lJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQzMSIgbmFtZT0iTmFvbWlfbm90ZSIgdGFncz0ibm90ZXNpbiBub3Rob3VyIiBwb3NpdGlvbj0iMTAwLDU0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aGVhZGVyICZxdW90O05hb21pJnF1b3Q7ICZxdW90O05hb21pJnF1b3Q7ICZxdW90O05vdGVzJnF1b3Q7IHRydWUmZ3Q7Jmd0OwogICAgJmx0O2RpdiBpZD0mcXVvdDtwYWRkaW5nLWNvbnRhaW5lciZxdW90OyBjbGFzcz0mcXVvdDt0ZXh0X2JsYWNrJnF1b3Q7Jmd0OwogICAgICAgICZsdDtkaXYmZ3Q7LSBTaGXigJlzIEFubmll4oCZcyBiZXN0IGZyaWVuZCwgdGhleeKAmXZlIGtub3duIGVhY2ggb3RoZXIgc2luY2UgdGhleSB3ZXJlIGtpZHMuIE5hb21pIGhhcyBhbHdheXMgc2hvd24gc29tZSBob3N0aWxpdHkgdG93YXJkIG1lLCBhbmQgSeKAmXZlIGFsd2F5cyBjb25zaWRlcmVkIGhlciBhIGJhZCBpbmZsdWVuY2Ugb24gQW5uaWUuJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDtmb3IgX2kgcmFuZ2UgJE5hb21pX25vdGVzJmd0OyZndDsKICAgICAgICAgICAgJmx0O2RpdiBzdHlsZT0mcXVvdDttYXJnaW4tdG9wOiAxNnB4JnF1b3Q7Jmd0Oy0gX2kmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7Jmx0Oy9mb3ImZ3Q7Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDMyIiBuYW1lPSJQaGlsbGlwc19jaGF0IiB0YWdzPSJtYXBwIG5vdGhvdXIiIHBvc2l0aW9uPSIyMjUsNTQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKLypyZWdpb24gRW1pbHkgY2hhdCovCiZsdDsmbHQ7aWYgJFBoaWxsaXBzX2NoYXQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2hlYWRlciAmcXVvdDtNci4gUGhpbGxpcHMmcXVvdDsgJnF1b3Q7UGhpbGxpcHMmcXVvdDsgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsgJFBoaWxsaXBzX3BhdXNlZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aGVhZGVyICZxdW90O01yLiBQaGlsbGlwcyZxdW90OyAmcXVvdDtQaGlsbGlwcyZxdW90OyAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyB0cnVlJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O21lc3NhZ2VfY29udGFpbmVyJnF1b3Q7Jmd0OwombHQ7Jmx0O2ZvciBfbGluZSByYW5nZSAkUGhpbGxpcHNfY2hhdExvZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmIF9saW5lLnR5cGUgPT0gMSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkIF9saW5lLnNlbmRlciBfbGluZS5tZXNzYWdlIF9saW5lLmF2YXRhciZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2VpZiBfbGluZS50eXBlID09IDImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bWVzc2FnZV9pbWcgX2xpbmUubWVzc2FnZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2VpZiBfbGluZS50eXBlID09IDMmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bWVzc2FnZV92aWRlbyBfbGluZS5tZXNzYWdlWzBdIF9saW5lLm1lc3NhZ2VbMV0mZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlaWYgX2xpbmUudHlwZSA9PSA0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VfZW1vamkgX2xpbmUubWVzc2FnZSBmYWxzZSBfbGluZS5zZW5kZXImZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0Oy9mb3ImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRQaGlsbGlwc19wYXVzZWQgPT0gZmFsc2UmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkUGhpbGxpcHNfY2hhdCA9PSB0cnVlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJFBoaWxsaXBzX2NoYXRTdGF0ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICZsdDtkaXYgQGlkPSZxdW90OyRQaGlsbGlwc19sYXN0SWQuc2xpY2UoMSkmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDtlbmQmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2NoYXRfYmFyJnF1b3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O2NvbnRlbnQmcXVvdDsmZ3Q7CiZsdDsmbHQ7aWYgJFBoaWxsaXBzX3BhdXNlZCA9PSB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJFBoaWxsaXBzX29wdGlvbnNbMF0mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bGluayAkUGhpbGxpcHNfb3B0aW9uc1swXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpbmNsdWRlICRQaGlsbGlwc19vcHRpb25zWzBdLnBhc3NhZ2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkUGhpbGxpcHNfb3B0aW9uc1sxXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICRQaGlsbGlwc19vcHRpb25zWzFdLnRleHQmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJFBoaWxsaXBzX29wdGlvbnNbMV0ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRQaGlsbGlwc19vcHRpb25zWzJdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJFBoaWxsaXBzX29wdGlvbnNbMl0udGV4dCZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkUGhpbGxpcHNfb3B0aW9uc1syXS5wYXNzYWdlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJFBoaWxsaXBzX29wdGlvbnNbM10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bGluayAkUGhpbGxpcHNfb3B0aW9uc1szXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpbmNsdWRlICRQaGlsbGlwc19vcHRpb25zWzNdLnBhc3NhZ2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7L2RpdiZndDsKJmx0OyZsdDt0aW1lZCAwLjJzJmd0OyZndDsKICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGxJbnN0YSgpOwogICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQzMyIgbmFtZT0iUGhpbGxpcHNTdGFydDEiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCw1NDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1BoaWxsaXBzJnF1b3Q7ICZxdW90O0nigJltIGdvaW5nIHRvIG5lZWQgdGhlIHJldmVudWUgcmVwb3J0cyBieSBGcmlkYXkuIFlvdSBoYXZlIGZpdmUgZGF5cy4mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7UGhpbGxpcHMmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJltIGdvaW5nIHRvIG5lZWQgdGhlIHJldmVudWUgcmVwb3J0cyBieSBGcmlkYXkuIFlvdSBoYXZlIGZpdmUgZGF5cy4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0nigJltIGdvaW5nIHRvIG5lZWQgdGhlIHJldmVudWUgcmVwb3J0cyBieSBGcmlkYXkuIFlvdSBoYXZlIGZpdmUgZGF5cy4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtQaGlsbGlwcyZxdW90OyAmcXVvdDtJIHdhbnQgdGhlbSBjYXRlZ29yaXplZCBieSBzZWN0b3IgYW5kIHdpdGggcHJvamVjdGVkIGVzdGltYXRlcy4mcXVvdDsgJnF1b3Q7UG9sa2tib2xra2NvbGtrc29sa2tNb2xra1FvbGtrVm9sa2trb2xra09vbGtrbm9sa2tPb2xra0tvbGtrS29sa2ttb2xra1VvbGtrQSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1BoaWxsaXBzJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHdhbnQgdGhlbSBjYXRlZ29yaXplZCBieSBzZWN0b3IgYW5kIHdpdGggcHJvamVjdGVkIGVzdGltYXRlcy4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0kgd2FudCB0aGVtIGNhdGVnb3JpemVkIGJ5IHNlY3RvciBhbmQgd2l0aCBwcm9qZWN0ZWQgZXN0aW1hdGVzLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7cW9sa2twb2xra2NvbGtrTW9sa2tub2xra3dvbGtrcW9sa2tzJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjJzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdElkICA9ICZxdW90OyNxb2xra3BvbGtrY29sa2tNb2xra25vbGtrd29sa2txb2xra3MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtNci4gUGhpbGxpcHMsIEkganVzdCBnb3QgaGVyZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7UGhpbGxpcHNTdGFydDFfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O01yLiBQaGlsbGlwcywgSSBqdXN0IGdvdCBoZXJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7UGhpbGxpcHNTdGFydDFfMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQzNCIgbmFtZT0iUGhpbGxpcHNTdGFydDFfMiIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDU0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdFN0YXRlICA9ICZxdW90O1BoaWxsaXBzU3RhcnQxXzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRQaGlsbGlwc19sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TXIuIFBoaWxsaXBzLCBJIGp1c3QgZ290IGhlcmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtNci4gUGhpbGxpcHMsIEkganVzdCBnb3QgaGVyZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7TXIuIFBoaWxsaXBzLCBJIGp1c3QgZ290IGhlcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7ZW9sa2tib2xra29vbGtrWm9sa2tHb2xra0tvbGtrT29sa2t5JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdElkICA9ICZxdW90OyNlb2xra2JvbGtrb29sa2tab2xra0dvbGtrS29sa2tPb2xra3kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJ4oCZbSByZWFsbHkgbm90IHN1cmUgSSBjYW4gZ2F0aGVyIGFsbCB0aGUgaW5mb3JtYXRpb24gaW4ganVzdCBmaXZlIGRheXMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O1BoaWxsaXBzU3RhcnQxXzMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJ4oCZbSByZWFsbHkgbm90IHN1cmUgSSBjYW4gZ2F0aGVyIGFsbCB0aGUgaW5mb3JtYXRpb24gaW4ganVzdCBmaXZlIGRheXMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtQaGlsbGlwc1N0YXJ0MV8zJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQzNSIgbmFtZT0iUGhpbGxpcHNTdGFydDFfMyIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDU0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdFN0YXRlICA9ICZxdW90O1BoaWxsaXBzU3RhcnQxXzMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRQaGlsbGlwc19sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SeKAmW0gcmVhbGx5IG5vdCBzdXJlIEkgY2FuIGdhdGhlciBhbGwgdGhlIGluZm9ybWF0aW9uIGluIGp1c3QgZml2ZSBkYXlzJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gcmVhbGx5IG5vdCBzdXJlIEkgY2FuIGdhdGhlciBhbGwgdGhlIGluZm9ybWF0aW9uIGluIGp1c3QgZml2ZSBkYXlzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtJ4oCZbSByZWFsbHkgbm90IHN1cmUgSSBjYW4gZ2F0aGVyIGFsbCB0aGUgaW5mb3JtYXRpb24gaW4ganVzdCBmaXZlIGRheXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Sm9sa2txb2xra2xvbGtrRW9sa2tSb2xra2VvbGtrdW9sa2tTJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdElkICA9ICZxdW90OyNKb2xra3FvbGtrbG9sa2tFb2xra1JvbGtrZW9sa2t1b2xra1MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtMZXQgYWxvbmUgcHJlcGFyZSB0aGUgcmVwb3J0cyZxdW90OywgcGFzc2FnZTogJnF1b3Q7UGhpbGxpcHNTdGFydDFfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0xldCBhbG9uZSBwcmVwYXJlIHRoZSByZXBvcnRzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7UGhpbGxpcHNTdGFydDFfNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0MzYiIG5hbWU9IlBoaWxsaXBzU3RhcnQxXzQiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSw1NDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRTdGF0ZSAgPSAmcXVvdDtQaGlsbGlwc1N0YXJ0MV80JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkUGhpbGxpcHNfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0xldCBhbG9uZSBwcmVwYXJlIHRoZSByZXBvcnRzJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGV0IGFsb25lIHByZXBhcmUgdGhlIHJlcG9ydHMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0xldCBhbG9uZSBwcmVwYXJlIHRoZSByZXBvcnRzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7UGhpbGxpcHMmcXVvdDsgJnF1b3Q7SSBrbmV3IHRoaXMgd291bGQgaGFwcGVuLiZxdW90OyAmcXVvdDttb2xra2FvbGtrTW9sa2tMb2xra3dvbGtrbm9sa2t6b2xra1ZvbGtrS29sa2tub2xra0JvbGtrem9sa2tRb2xra0pvbGtrdm9sa2tjJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7UGhpbGxpcHMmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kga25ldyB0aGlzIHdvdWxkIGhhcHBlbi4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0kga25ldyB0aGlzIHdvdWxkIGhhcHBlbi4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS40cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjdzICZxdW90O1BoaWxsaXBzJnF1b3Q7ICZxdW90O0kgZG9u4oCZdCB1bmRlcnN0YW5kIHdoeSB5b3Ugdm9sdW50ZWVyZWQgaWYgdGhlIGZpcnN0IHRoaW5nIHlvdeKAmXJlIGdvaW5nIHRvIGRvIGlzIG1ha2UgZXhjdXNlcy4mcXVvdDsgJnF1b3Q7UW9sa2tUb2xra1BvbGtrTW9sa2tzb2xra3VvbGtrWG9sa2tTb2xra1lvbGtrVW9sa2tDb2xra0pvbGtrZm9sa2tvb2xra2tvbGtreCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1BoaWxsaXBzJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGRvbuKAmXQgdW5kZXJzdGFuZCB3aHkgeW91IHZvbHVudGVlcmVkIGlmIHRoZSBmaXJzdCB0aGluZyB5b3XigJlyZSBnb2luZyB0byBkbyBpcyBtYWtlIGV4Y3VzZXMuJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtJIGRvbuKAmXQgdW5kZXJzdGFuZCB3aHkgeW91IHZvbHVudGVlcmVkIGlmIHRoZSBmaXJzdCB0aGluZyB5b3XigJlyZSBnb2luZyB0byBkbyBpcyBtYWtlIGV4Y3VzZXMuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4zcyAmcXVvdDtQaGlsbGlwcyZxdW90OyAmcXVvdDtMZXQgbWUgYmUgdmVyeSBjbGVhcjogbWFrZSBzdXJlIHlvdSBoYXZlIHRoaXMgcmVhZHkgYnkgRnJpZGF5LiZxdW90OyAmcXVvdDtpb2xra1JvbGtrbW9sa2tab2xra0pvbGtrT29sa2tIb2xra0xvbGtrbm9sa2tRb2xra1FvbGtrZ29sa2tHb2xra0lvbGtrT29sa2tsJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7UGhpbGxpcHMmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0xldCBtZSBiZSB2ZXJ5IGNsZWFyOiBtYWtlIHN1cmUgeW91IGhhdmUgdGhpcyByZWFkeSBieSBGcmlkYXkuJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtMZXQgbWUgYmUgdmVyeSBjbGVhcjogbWFrZSBzdXJlIHlvdSBoYXZlIHRoaXMgcmVhZHkgYnkgRnJpZGF5LiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7UGhpbGxpcHMmcXVvdDsgJnF1b3Q7TWFrZSBzdXJlIHRoYXQgcmVwb3J0IGlzIGluIG15IGluYm94IGJ5IHRoYXQgZGF5LiZxdW90OyAmcXVvdDtBb2xra0lvbGtrcm9sa2tYb2xra09vbGtra29sa2tMb2xra1BvbGtrc29sa2t2b2xra0VvbGtrS29sa2trb2xra3NvbGtrSm9sa2t2JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7UGhpbGxpcHMmcXVvdDssIG1lc3NhZ2U6ICZxdW90O01ha2Ugc3VyZSB0aGF0IHJlcG9ydCBpcyBpbiBteSBpbmJveCBieSB0aGF0IGRheS4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O01ha2Ugc3VyZSB0aGF0IHJlcG9ydCBpcyBpbiBteSBpbmJveCBieSB0aGF0IGRheS4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNy4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O1BoaWxsaXBzJnF1b3Q7ICZxdW90O0lmIHRoYXTigJlzIG5vdCB0aGUgY2FzZSwgY29uc2lkZXIgbG9va2luZyBmb3IgYSBuZXcgam9iLiZxdW90OyAmcXVvdDtYb2xra2pvbGtrWG9sa2tQb2xra3BvbGtrQW9sa2tub2xra1dvbGtrT29sa2tCb2xra21vbGtrQm9sa2tJb2xra2xvbGtrem9sa2t6JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7UGhpbGxpcHMmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0lmIHRoYXTigJlzIG5vdCB0aGUgY2FzZSwgY29uc2lkZXIgbG9va2luZyBmb3IgYSBuZXcgam9iLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7SWYgdGhhdOKAmXMgbm90IHRoZSBjYXNlLCBjb25zaWRlciBsb29raW5nIGZvciBhIG5ldyBqb2IuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDkuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtQaGlsbGlwcyZxdW90OyAmcXVvdDtUaGlzIGlzIGEgc2VyaW91cyBjb21wYW55LCBub3QgYSBraW5kZXJnYXJ0ZW4uJnF1b3Q7ICZxdW90O0dvbGtrRm9sa2tMb2xra0pvbGtrRW9sa2tVb2xra1ZvbGtrb29sa2tjb2xra2ZvbGtrRG9sa2t3b2xra21vbGtrQm9sa2t0b2xra0kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtQaGlsbGlwcyZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhpcyBpcyBhIHNlcmlvdXMgY29tcGFueSwgbm90IGEga2luZGVyZ2FydGVuLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7VGhpcyBpcyBhIHNlcmlvdXMgY29tcGFueSwgbm90IGEga2luZGVyZ2FydGVuLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Um9sa2tLb2xra21vbGtreG9sa2tCb2xra2pvbGtrbG9sa2tCJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxMC40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3RJZCAgPSAmcXVvdDsjUm9sa2tLb2xra21vbGtreG9sa2tCb2xra2pvbGtrbG9sa2tCJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VW5kZXJzdG9vZCwgc2lyLiBJ4oCZbGwgaGF2ZSBhbGwgdGhlIHJlcG9ydHMgcmVhZHkgYnkgRnJpZGF5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtQaGlsbGlwc1N0YXJ0MV81YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1VuZGVyc3Rvb2QsIHNpci4gSeKAmWxsIGhhdmUgYWxsIHRoZSByZXBvcnRzIHJlYWR5IGJ5IEZyaWRheSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O1BoaWxsaXBzU3RhcnQxXzVhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0SWQgID0gJnF1b3Q7I1JvbGtrS29sa2ttb2xra3hvbGtrQm9sa2tqb2xra2xvbGtrQiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0nigJlsbCBkbyB3aGF0IEkgY2FuLCBzaXImcXVvdDssIHBhc3NhZ2U6ICZxdW90O1BoaWxsaXBzU3RhcnQxXzViJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SeKAmWxsIGRvIHdoYXQgSSBjYW4sIHNpciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O1BoaWxsaXBzU3RhcnQxXzViJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQzNyIgbmFtZT0iUGhpbGxpcHNTdGFydDFfNWEiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCw1NDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRTdGF0ZSAgPSAmcXVvdDtQaGlsbGlwc1N0YXJ0MV81YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJFBoaWxsaXBzX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtVbmRlcnN0b29kLCBzaXIuIEnigJlsbCBoYXZlIGFsbCB0aGUgcmVwb3J0cyByZWFkeSBieSBGcmlkYXkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtVbmRlcnN0b29kLCBzaXIuIEnigJlsbCBoYXZlIGFsbCB0aGUgcmVwb3J0cyByZWFkeSBieSBGcmlkYXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O1VuZGVyc3Rvb2QsIHNpci4gSeKAmWxsIGhhdmUgYWxsIHRoZSByZXBvcnRzIHJlYWR5IGJ5IEZyaWRheSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O1BoaWxsaXBzJnF1b3Q7ICZxdW90O1RoYXTigJlzIG1vcmUgbGlrZSBpdC4mcXVvdDsgJnF1b3Q7Qm9sa2t4b2xra2ZvbGtrZW9sa2tsb2xra1JvbGtra29sa2tZb2xra3hvbGtreG9sa2tQb2xra3lvbGtrb29sa2tnb2xra0dvbGtrUiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1BoaWxsaXBzJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGF04oCZcyBtb3JlIGxpa2UgaXQuJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtUaGF04oCZcyBtb3JlIGxpa2UgaXQuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtQaGlsbGlwcyZxdW90OyAmcXVvdDtIYWlsZXkgd2lsbCBicmllZiB5b3Ugb24gd2hhdCB3ZSBuZWVkLiZxdW90OyAmcXVvdDtVb2xra0pvbGtrbG9sa2tPb2xra2pvbGtreG9sa2tEb2xra3lvbGtrem9sa2tZb2xra1NvbGtrQ29sa2ttb2xra0JvbGtrZW9sa2tpJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7UGhpbGxpcHMmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hhaWxleSB3aWxsIGJyaWVmIHlvdSBvbiB3aGF0IHdlIG5lZWQuJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtIYWlsZXkgd2lsbCBicmllZiB5b3Ugb24gd2hhdCB3ZSBuZWVkLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNHMgJnF1b3Q7UGhpbGxpcHMmcXVvdDsgJnF1b3Q7SeKAmWxsIHRlbGwgaGVyIHRvIGVtYWlsIHlvdSBhcyBzb29uIGFzIHNoZSBnZXRzIHRvIHRoZSBvZmZpY2UuJnF1b3Q7ICZxdW90O1hvbGtrR29sa2tPb2xra1pvbGtrc29sa2tOb2xra0RvbGtraG9sa2t0b2xra2lvbGtrZW9sa2tEb2xra2lvbGtrUm9sa2tPb2xra2omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtQaGlsbGlwcyZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmWxsIHRlbGwgaGVyIHRvIGVtYWlsIHlvdSBhcyBzb29uIGFzIHNoZSBnZXRzIHRvIHRoZSBvZmZpY2UuJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtJ4oCZbGwgdGVsbCBoZXIgdG8gZW1haWwgeW91IGFzIHNvb24gYXMgc2hlIGdldHMgdG8gdGhlIG9mZmljZS4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2lvbGtrZm9sa2tPb2xra2ZvbGtrZW9sa2tlb2xra2tvbGtrSiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC43cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3RJZCAgPSAmcXVvdDsjaW9sa2tmb2xra09vbGtrZm9sa2tlb2xra2VvbGtra29sa2tKJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VW5kZXJzdG9vZCZxdW90OywgcGFzc2FnZTogJnF1b3Q7UGhpbGxpcHNTdGFydDFfNiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1VuZGVyc3Rvb2QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtQaGlsbGlwc1N0YXJ0MV82JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQzOCIgbmFtZT0iUGhpbGxpcHNTdGFydDFfNWIiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSw1NDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRTdGF0ZSAgPSAmcXVvdDtQaGlsbGlwc1N0YXJ0MV81YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJFBoaWxsaXBzX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJ4oCZbGwgZG8gd2hhdCBJIGNhbiwgc2lyJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmWxsIGRvIHdoYXQgSSBjYW4sIHNpciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7SeKAmWxsIGRvIHdoYXQgSSBjYW4sIHNpciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O1BoaWxsaXBzJnF1b3Q7ICZxdW90O05vdCB3aGF0IHlvdSBjYW4sIGRvIHdoYXQgbmVlZHMgdG8gYmUgZG9uZS4mcXVvdDsgJnF1b3Q7ZW9sa2tZb2xra21vbGtrcG9sa2tVb2xra1dvbGtrRG9sa2tVb2xra1NvbGtrWG9sa2tEb2xra2hvbGtreG9sa2tlb2xra1JvbGtrWSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1BoaWxsaXBzJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtOb3Qgd2hhdCB5b3UgY2FuLCBkbyB3aGF0IG5lZWRzIHRvIGJlIGRvbmUuJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtOb3Qgd2hhdCB5b3UgY2FuLCBkbyB3aGF0IG5lZWRzIHRvIGJlIGRvbmUuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuOXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtQaGlsbGlwcyZxdW90OyAmcXVvdDtJIGRvbuKAmXQgdW5kZXJzdGFuZCBwZW9wbGUgZnJvbSB5b3VyIGdlbmVyYXRpb24uJnF1b3Q7ICZxdW90O0hvbGtrZW9sa2t6b2xra0FvbGtrT29sa2tTb2xra1ZvbGtrbG9sa2t3b2xra1BvbGtrQ29sa2tNb2xra3pvbGtrYW9sa2tBb2xra2ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtQaGlsbGlwcyZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBkb27igJl0IHVuZGVyc3RhbmQgcGVvcGxlIGZyb20geW91ciBnZW5lcmF0aW9uLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7SSBkb27igJl0IHVuZGVyc3RhbmQgcGVvcGxlIGZyb20geW91ciBnZW5lcmF0aW9uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuM3MgJnF1b3Q7UGhpbGxpcHMmcXVvdDsgJnF1b3Q7RXZlbiB3aGVuIHRoZWlyIGpvYiBpcyBvbiB0aGUgbGluZSwgdGhleSBzdGlsbCBkb27igJl0IGFjdCBwcm9wZXJseS4mcXVvdDsgJnF1b3Q7am9sa2t4b2xra3FvbGtrRG9sa2tPb2xra1BvbGtrRG9sa2twb2xra09vbGtrY29sa2tQb2xra0lvbGtrR29sa2t1b2xra1ZvbGtrbiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1BoaWxsaXBzJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtFdmVuIHdoZW4gdGhlaXIgam9iIGlzIG9uIHRoZSBsaW5lLCB0aGV5IHN0aWxsIGRvbuKAmXQgYWN0IHByb3Blcmx5LiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7RXZlbiB3aGVuIHRoZWlyIGpvYiBpcyBvbiB0aGUgbGluZSwgdGhleSBzdGlsbCBkb27igJl0IGFjdCBwcm9wZXJseS4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNS4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjVzICZxdW90O1BoaWxsaXBzJnF1b3Q7ICZxdW90O0nigJlsbCBoYXZlIEhhaWxleSBlbWFpbCB5b3UgdGhlIGRldGFpbHMgYXMgc29vbiBhcyBzaGUgZ2V0cyB0byB0aGUgb2ZmaWNlLiZxdW90OyAmcXVvdDtFb2xra2ZvbGtraW9sa2tTb2xra2RvbGtrSm9sa2txb2xra1hvbGtrVW9sa2tLb2xra0xvbGtrdm9sa2tCb2xra21vbGtrcm9sa2tCJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7UGhpbGxpcHMmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJlsbCBoYXZlIEhhaWxleSBlbWFpbCB5b3UgdGhlIGRldGFpbHMgYXMgc29vbiBhcyBzaGUgZ2V0cyB0byB0aGUgb2ZmaWNlLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7SeKAmWxsIGhhdmUgSGFpbGV5IGVtYWlsIHlvdSB0aGUgZGV0YWlscyBhcyBzb29uIGFzIHNoZSBnZXRzIHRvIHRoZSBvZmZpY2UuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtrb2xra09vbGtrdm9sa2tXb2xra29vbGtrZ29sa2tGb2xra1kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDcuMnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0SWQgID0gJnF1b3Q7I2tvbGtrT29sa2t2b2xra1dvbGtrb29sa2tnb2xra0ZvbGtrWSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1VuZGVyc3Rvb2QmcXVvdDssIHBhc3NhZ2U6ICZxdW90O1BoaWxsaXBzU3RhcnQxXzYmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtVbmRlcnN0b29kJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7UGhpbGxpcHNTdGFydDFfNiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0MzkiIG5hbWU9IlBoaWxsaXBzU3RhcnQxXzYiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsNTQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0U3RhdGUgID0gJnF1b3Q7UGhpbGxpcHNTdGFydDFfNiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJFBoaWxsaXBzX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtVbmRlcnN0b29kJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VW5kZXJzdG9vZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7VW5kZXJzdG9vZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtVbmRlcnN0b29kJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRTdGF0ZSA9ICZxdW90O1BoaWxsaXBzU3RhcnQ0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3RfaG91ciA9ICZxdW90OzA5OjAzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXQgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRob3VyID0gJnF1b3Q7MDk6MDMmcXVvdDsmZ3Q7Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O29mZmxpbmUtdGV4dCZxdW90OyZndDtQaGlsbGlwcyBpcyBvZmZsaW5lJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkUGhpbGxpcHNfbm90ZXMucHVzaCgmcXVvdDtIZSB0b2xkIG1lIHRoYXQgaWYgSSBkb27igJl0IGhhdmUgdGhlIHJlcG9ydHMgYnkgRnJpZGF5LCBJ4oCZbGwgYmUgZmlyZWQuJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SGkgJG5hbWUsIE1yLiBQaGlsbGlwcyBhc2tlZCBtZSB0byBzZW5kIHlvdSB0aGUgbGFzdCBxdWFydGVy4oCZcyByZXBvcnQgc28geW91IGNhbiB1c2UgaXQgYXMgYSByZWZlcmVuY2UmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEhhaWxleV92aXNpYmxlID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0NDAiIG5hbWU9IlBoaWxsaXBzQ2hhdEVwM18xIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDU0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7UGhpbGxpcHMmcXVvdDsgJnF1b3Q7SG934oCZcyB0aGUgaW5jb21lIHJlcG9ydCBjb21pbmcgYWxvbmc/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1BoaWxsaXBzJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIb3figJlzIHRoZSBpbmNvbWUgcmVwb3J0IGNvbWluZyBhbG9uZz8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0hvd+KAmXMgdGhlIGluY29tZSByZXBvcnQgY29taW5nIGFsb25nPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2xvbGtrUW9sa2tXb2xra0pvbGtraW9sa2tVb2xra0RvbGtrciZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3RJZCAgPSAmcXVvdDsjbG9sa2tRb2xra1dvbGtrSm9sa2tpb2xra1VvbGtrRG9sa2tyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SXTigJlzIHByb2dyZXNzaW5nLCBzaXImcXVvdDssIHBhc3NhZ2U6ICZxdW90O1BoaWxsaXBzQ2hhdEVwM18yJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SXTigJlzIHByb2dyZXNzaW5nLCBzaXImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtQaGlsbGlwc0NoYXRFcDNfMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ0MSIgbmFtZT0iUGhpbGxpcHNDaGF0RXAzXzIiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCw1NjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRTdGF0ZSAgPSAmcXVvdDtQaGlsbGlwc0NoYXRFcDNfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJFBoaWxsaXBzX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJdOKAmXMgcHJvZ3Jlc3NpbmcsIHNpciZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0l04oCZcyBwcm9ncmVzc2luZywgc2lyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtJdOKAmXMgcHJvZ3Jlc3NpbmcsIHNpciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O1BoaWxsaXBzJnF1b3Q7ICZxdW90O0dvb2QuIEl04oCZcyBpbXBvcnRhbnQgdGhhdCBldmVyeXRoaW5nIGlzIHdlbGwgZGV0YWlsZWQuJnF1b3Q7ICZxdW90O01vbGtrbm9sa2tFb2xra0dvbGtrRG9sa2t3b2xra0tvbGtrWG9sa2tsb2xra0ZvbGtrWG9sa2tNb2xra0ZvbGtrWG9sa2tTb2xra3AmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtQaGlsbGlwcyZxdW90OywgbWVzc2FnZTogJnF1b3Q7R29vZC4gSXTigJlzIGltcG9ydGFudCB0aGF0IGV2ZXJ5dGhpbmcgaXMgd2VsbCBkZXRhaWxlZC4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0dvb2QuIEl04oCZcyBpbXBvcnRhbnQgdGhhdCBldmVyeXRoaW5nIGlzIHdlbGwgZGV0YWlsZWQuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4zcyAmcXVvdDtQaGlsbGlwcyZxdW90OyAmcXVvdDtJ4oCZbSBsb29raW5nIGZvciBsYXN0IG1vbnRo4oCZcyBzYWxlcyBkZXBhcnRtZW50IGZpbGVzLCBidXQgSSBjYW7igJl0IGZpbmQgdGhlbS4mcXVvdDsgJnF1b3Q7TW9sa2tEb2xra1dvbGtrVW9sa2tJb2xra0RvbGtrb29sa2tLb2xra2ZvbGtrZW9sa2tSb2xra2VvbGtrVW9sa2tyb2xra2NvbGtrZiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1BoaWxsaXBzJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBsb29raW5nIGZvciBsYXN0IG1vbnRo4oCZcyBzYWxlcyBkZXBhcnRtZW50IGZpbGVzLCBidXQgSSBjYW7igJl0IGZpbmQgdGhlbS4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0nigJltIGxvb2tpbmcgZm9yIGxhc3QgbW9udGjigJlzIHNhbGVzIGRlcGFydG1lbnQgZmlsZXMsIGJ1dCBJIGNhbuKAmXQgZmluZCB0aGVtLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7UGhpbGxpcHMmcXVvdDsgJnF1b3Q7VGhlIGxvZyBzYXlzIHlvdSB3ZXJlIHRoZSBsYXN0IG9uZSB0byB0YWtlIGl0LiZxdW90OyAmcXVvdDtWb2xra29vbGtrbG9sa2tXb2xra3hvbGtrSW9sa2tVb2xra3NvbGtrYm9sa2thb2xra1ZvbGtrTG9sa2tlb2xra3NvbGtrZG9sa2tFJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7UGhpbGxpcHMmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoZSBsb2cgc2F5cyB5b3Ugd2VyZSB0aGUgbGFzdCBvbmUgdG8gdGFrZSBpdC4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O1RoZSBsb2cgc2F5cyB5b3Ugd2VyZSB0aGUgbGFzdCBvbmUgdG8gdGFrZSBpdC4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O21vbGtrem9sa2tJb2xra1BvbGtrRm9sa2tDb2xra2dvbGtrVSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNS4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3RJZCAgPSAmcXVvdDsjbW9sa2t6b2xra0lvbGtrUG9sa2tGb2xra0NvbGtrZ29sa2tVJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VW1tLCB5ZXMsIEkgcmVtZW1iZXIgYWNjaWRlbnRhbGx5IHRha2luZyB0aGVtIGZyb20gdGhlIG9mZmljZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7UGhpbGxpcHNDaGF0RXAzXzMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtVbW0sIHllcywgSSByZW1lbWJlciBhY2NpZGVudGFsbHkgdGFraW5nIHRoZW0gZnJvbSB0aGUgb2ZmaWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7UGhpbGxpcHNDaGF0RXAzXzMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDQyIiBuYW1lPSJQaGlsbGlwc0NoYXRFcDNfMyIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDU2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdFN0YXRlICA9ICZxdW90O1BoaWxsaXBzQ2hhdEVwM18zJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkUGhpbGxpcHNfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1VtbSwgeWVzLCBJIHJlbWVtYmVyIGFjY2lkZW50YWxseSB0YWtpbmcgdGhlbSBmcm9tIHRoZSBvZmZpY2UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtVbW0sIHllcywgSSByZW1lbWJlciBhY2NpZGVudGFsbHkgdGFraW5nIHRoZW0gZnJvbSB0aGUgb2ZmaWNlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtVbW0sIHllcywgSSByZW1lbWJlciBhY2NpZGVudGFsbHkgdGFraW5nIHRoZW0gZnJvbSB0aGUgb2ZmaWNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1dvbGtrYW9sa2tLb2xra3ZvbGtrR29sa2thb2xra1pvbGtrSiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3RJZCAgPSAmcXVvdDsjV29sa2thb2xra0tvbGtrdm9sa2tHb2xra2FvbGtrWm9sa2tKJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhleSBtdXN0IGJlIGF0IG15IGhvdXNlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtQaGlsbGlwc0NoYXRFcDNfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoZXkgbXVzdCBiZSBhdCBteSBob3VzZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O1BoaWxsaXBzQ2hhdEVwM180JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ0MyIgbmFtZT0iUGhpbGxpcHNDaGF0RXAzXzQiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCw1NjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRTdGF0ZSAgPSAmcXVvdDtQaGlsbGlwc0NoYXRFcDNfNCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJFBoaWxsaXBzX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGV5IG11c3QgYmUgYXQgbXkgaG91c2UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGV5IG11c3QgYmUgYXQgbXkgaG91c2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O1RoZXkgbXVzdCBiZSBhdCBteSBob3VzZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O1BoaWxsaXBzJnF1b3Q7ICZxdW90O0lzIHRoZXJlIGFueXRoaW5nIHlvdSBjYW4gZG8gcmlnaHQ/JnF1b3Q7ICZxdW90O3dvbGtrdG9sa2tnb2xra2dvbGtrQm9sa2tzb2xra1FvbGtrSm9sa2tWb2xra1dvbGtrZW9sa2trb2xra3RvbGtrUG9sa2t6b2xra1YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtQaGlsbGlwcyZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXMgdGhlcmUgYW55dGhpbmcgeW91IGNhbiBkbyByaWdodD8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0lzIHRoZXJlIGFueXRoaW5nIHlvdSBjYW4gZG8gcmlnaHQ/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC45cyAmcXVvdDtQaGlsbGlwcyZxdW90OyAmcXVvdDtJIG5lZWQgeW91IHRvIGJyaW5nIHRoZW0gdG8gdGhlIG9mZmljZSZxdW90OyAmcXVvdDt1b2xra3RvbGtrV29sa2tWb2xra1VvbGtrZ29sa2tJb2xra05vbGtraG9sa2tCb2xra0ZvbGtrcm9sa2thb2xra1lvbGtrdm9sa2trJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7UGhpbGxpcHMmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbmVlZCB5b3UgdG8gYnJpbmcgdGhlbSB0byB0aGUgb2ZmaWNlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtJIG5lZWQgeW91IHRvIGJyaW5nIHRoZW0gdG8gdGhlIG9mZmljZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7eG9sa2tIb2xra2ZvbGtrUG9sa2tob2xra3FvbGtrRG9sa2thJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjFzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdElkICA9ICZxdW90OyN4b2xra0hvbGtrZm9sa2tQb2xra2hvbGtrcW9sa2tEb2xra2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtCdXQgc2lyLCBJ4oCZbSBpbiBhbm90aGVyIHN0YXRlIHJpZ2h0IG5vdyZxdW90OywgcGFzc2FnZTogJnF1b3Q7UGhpbGxpcHNDaGF0RXAzXzUmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtCdXQgc2lyLCBJ4oCZbSBpbiBhbm90aGVyIHN0YXRlIHJpZ2h0IG5vdyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O1BoaWxsaXBzQ2hhdEVwM181JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ0NCIgbmFtZT0iUGhpbGxpcHNDaGF0RXAzXzUiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSw1NjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRTdGF0ZSAgPSAmcXVvdDtQaGlsbGlwc0NoYXRFcDNfNSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJFBoaWxsaXBzX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtCdXQgc2lyLCBJ4oCZbSBpbiBhbm90aGVyIHN0YXRlIHJpZ2h0IG5vdyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCBzaXIsIEnigJltIGluIGFub3RoZXIgc3RhdGUgcmlnaHQgbm93JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtCdXQgc2lyLCBJ4oCZbSBpbiBhbm90aGVyIHN0YXRlIHJpZ2h0IG5vdyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjVzICZxdW90O1BoaWxsaXBzJnF1b3Q7ICZxdW90O0kgZG9u4oCZdCBjYXJlIGhvdywgYnV0IEkgbmVlZCB0aGF0IGZpbGUgaGVyZSBpbiB0aGUgb2ZmaWNlIGJlZm9yZSBzaXguJnF1b3Q7ICZxdW90O0hvbGtrdm9sa2tKb2xra2RvbGtram9sa2t4b2xra09vbGtrZG9sa2ttb2xra2ZvbGtrT29sa2tPb2xra2VvbGtrQm9sa2tqb2xra3MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtQaGlsbGlwcyZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBkb27igJl0IGNhcmUgaG93LCBidXQgSSBuZWVkIHRoYXQgZmlsZSBoZXJlIGluIHRoZSBvZmZpY2UgYmVmb3JlIHNpeC4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0kgZG9u4oCZdCBjYXJlIGhvdywgYnV0IEkgbmVlZCB0aGF0IGZpbGUgaGVyZSBpbiB0aGUgb2ZmaWNlIGJlZm9yZSBzaXguJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtGb2xra2ZvbGtram9sa2ttb2xra3VvbGtreW9sa2tmb2xra0cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuNHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0SWQgID0gJnF1b3Q7I0ZvbGtrZm9sa2tqb2xra21vbGtrdW9sa2t5b2xra2ZvbGtrRyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoZXJl4oCZcyBubyB3YXkgSSBjYW4gZG8gdGhhdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7UGhpbGxpcHNDaGF0RXAzXzdhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhlcmXigJlzIG5vIHdheSBJIGNhbiBkbyB0aGF0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7UGhpbGxpcHNDaGF0RXAzXzdhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0SWQgID0gJnF1b3Q7I0ZvbGtrZm9sa2tqb2xra21vbGtrdW9sa2t5b2xra2ZvbGtrRyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0nigJlsbCBmaWd1cmUgb3V0IGhvdyB0byBnZXQgaXQgdG8geW91JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtQaGlsbGlwc0NoYXRFcDNfN2ImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJ4oCZbGwgZmlndXJlIG91dCBob3cgdG8gZ2V0IGl0IHRvIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O1BoaWxsaXBzQ2hhdEVwM183YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0NDUiIG5hbWU9IlBoaWxsaXBzQ2hhdEVwM182IiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsNTYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0U3RhdGUgID0gJnF1b3Q7UGhpbGxpcHNDaGF0RXAzXzYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRQaGlsbGlwc19sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBkb27igJl0IGNhcmUgaG93LCBidXQgSSBuZWVkIHRoYXQgZmlsZSBoZXJlIGluIHRoZSBvZmZpY2UgYmVmb3JlIHNpeC4mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGRvbuKAmXQgY2FyZSBob3csIGJ1dCBJIG5lZWQgdGhhdCBmaWxlIGhlcmUgaW4gdGhlIG9mZmljZSBiZWZvcmUgc2l4LiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7SSBkb27igJl0IGNhcmUgaG93LCBidXQgSSBuZWVkIHRoYXQgZmlsZSBoZXJlIGluIHRoZSBvZmZpY2UgYmVmb3JlIHNpeC4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7d29sa2tWb2xra2tvbGtreG9sa2t1b2xra3VvbGtrQm9sa2tVJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdElkICA9ICZxdW90OyN3b2xra1ZvbGtra29sa2t4b2xra3VvbGtrdW9sa2tCb2xra1UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGVyZeKAmXMgbm8gd2F5IEkgY2FuIGRvIHRoYXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O1BoaWxsaXBzQ2hhdEVwM183YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoZXJl4oCZcyBubyB3YXkgSSBjYW4gZG8gdGhhdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O1BoaWxsaXBzQ2hhdEVwM183YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdElkICA9ICZxdW90OyN3b2xra1ZvbGtra29sa2t4b2xra3VvbGtrdW9sa2tCb2xra1UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJ4oCZbGwgZmlndXJlIG91dCBob3cgdG8gZ2V0IGl0IHRvIHlvdSZxdW90OywgcGFzc2FnZTogJnF1b3Q7UGhpbGxpcHNDaGF0RXAzXzdiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SeKAmWxsIGZpZ3VyZSBvdXQgaG93IHRvIGdldCBpdCB0byB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtQaGlsbGlwc0NoYXRFcDNfN2ImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDQ2IiBuYW1lPSJQaGlsbGlwc0NoYXRFcDNfN2EiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSw1NjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRTdGF0ZSAgPSAmcXVvdDtQaGlsbGlwc0NoYXRFcDNfN2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRQaGlsbGlwc19sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhlcmXigJlzIG5vIHdheSBJIGNhbiBkbyB0aGF0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhlcmXigJlzIG5vIHdheSBJIGNhbiBkbyB0aGF0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtUaGVyZeKAmXMgbm8gd2F5IEkgY2FuIGRvIHRoYXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJHBoaWxsaXBzX3JlbCA9ICRwaGlsbGlwc19yZWwtMSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O1BoaWxsaXBzJnF1b3Q7ICZxdW90O0xldCBtZSBiZSBjbGVhci4mcXVvdDsgJnF1b3Q7YW9sa2tqb2xra25vbGtrem9sa2t5b2xra0tvbGtreW9sa2tCb2xra3lvbGtrem9sa2t2b2xra0pvbGtreW9sa2tJb2xra0dvbGtrZCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1BoaWxsaXBzJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtMZXQgbWUgYmUgY2xlYXIuJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtMZXQgbWUgYmUgY2xlYXIuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMi4zcyAmcXVvdDtQaGlsbGlwcyZxdW90OyAmcXVvdDtUaGUgZmlsZSBuZWVkcyB0byBiZSBpbiB0aGUgb2ZmaWNlIHdoZXJlIGl0IGJlbG9uZ3MgYmVmb3JlIGNsb3NpbmcgdGltZSwgb3IgbWF5YmUgeW91IHdvbuKAmXQgbmVlZCB0byBmaW5pc2ggdGhhdCByZXBvcnQuJnF1b3Q7ICZxdW90O0dvbGtrUG9sa2tZb2xra0xvbGtrbG9sa2t3b2xra05vbGtrY29sa2tib2xra1JvbGtrQm9sa2tYb2xra0NvbGtrWG9sa2t2b2xra1kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtQaGlsbGlwcyZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhlIGZpbGUgbmVlZHMgdG8gYmUgaW4gdGhlIG9mZmljZSB3aGVyZSBpdCBiZWxvbmdzIGJlZm9yZSBjbG9zaW5nIHRpbWUsIG9yIG1heWJlIHlvdSB3b27igJl0IG5lZWQgdG8gZmluaXNoIHRoYXQgcmVwb3J0LiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7VGhlIGZpbGUgbmVlZHMgdG8gYmUgaW4gdGhlIG9mZmljZSB3aGVyZSBpdCBiZWxvbmdzIGJlZm9yZSBjbG9zaW5nIHRpbWUsIG9yIG1heWJlIHlvdSB3b27igJl0IG5lZWQgdG8gZmluaXNoIHRoYXQgcmVwb3J0LiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7dm9sa2tYb2xra21vbGtrSm9sa2tCb2xra09vbGtrc29sa2tiJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjJzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdElkICA9ICZxdW90OyN2b2xra1hvbGtrbW9sa2tKb2xra0JvbGtrT29sa2tzb2xra2ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtVbmRlcnN0b29kLiBJ4oCZbGwgc2VlIHdoYXQgSSBjYW4gZG8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O1BoaWxsaXBzQ2hhdEVwM184YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1VuZGVyc3Rvb2QuIEnigJlsbCBzZWUgd2hhdCBJIGNhbiBkbyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O1BoaWxsaXBzQ2hhdEVwM184YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0NDciIG5hbWU9IlBoaWxsaXBzQ2hhdEVwM184YSIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDU2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdFN0YXRlICA9ICZxdW90O1BoaWxsaXBzQ2hhdEVwM184YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJFBoaWxsaXBzX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtVbmRlcnN0b29kLiBJ4oCZbGwgc2VlIHdoYXQgSSBjYW4gZG8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtVbmRlcnN0b29kLiBJ4oCZbGwgc2VlIHdoYXQgSSBjYW4gZG8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O1VuZGVyc3Rvb2QuIEnigJlsbCBzZWUgd2hhdCBJIGNhbiBkbyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtVbmRlcnN0b29kLiBJ4oCZbGwgc2VlIHdoYXQgSSBjYW4gZG8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdFN0YXRlID0gJnF1b3Q7UGhpbGxpcHNDaGF0RXAzXzhhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3RfaG91ciA9ICZxdW90OzA5OjU1JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXQgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRob3VyID0gJnF1b3Q7MDk6NTUmcXVvdDsmZ3Q7Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O29mZmxpbmUtdGV4dCZxdW90OyZndDtQaGlsbGlwcyBpcyBvZmZsaW5lJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVDaGF0RXAzXzJfMSZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hvbmV5LCBob3figJlzIGV2ZXJ5dGhpbmcgZ29pbmcgb3ZlciB0aGVyZT8mcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDQ4IiBuYW1lPSJQaGlsbGlwc0NoYXRFcDNfN2IiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSw1NjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRTdGF0ZSAgPSAmcXVvdDtQaGlsbGlwc0NoYXRFcDNfN2ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRQaGlsbGlwc19sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SeKAmWxsIGZpZ3VyZSBvdXQgaG93IHRvIGdldCBpdCB0byB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbGwgZmlndXJlIG91dCBob3cgdG8gZ2V0IGl0IHRvIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7SeKAmWxsIGZpZ3VyZSBvdXQgaG93IHRvIGdldCBpdCB0byB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7VW5kZXJzdG9vZC4gSeKAmWxsIHNlZSB3aGF0IEkgY2FuIGRvJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRTdGF0ZSA9ICZxdW90O1BoaWxsaXBzQ2hhdEVwM183YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0X2hvdXIgPSAmcXVvdDswOTo1NSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0ID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkaG91ciA9ICZxdW90OzA5OjU1JnF1b3Q7Jmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtvZmZsaW5lLXRleHQmcXVvdDsmZ3Q7UGhpbGxpcHMgaXMgb2ZmbGluZSZsdDsvZGl2Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdCA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSA9ICZxdW90O0FubmllQ2hhdEVwM18yXzEmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIb25leSwgaG934oCZcyBldmVyeXRoaW5nIGdvaW5nIG92ZXIgdGhlcmU/JnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ0OSIgbmFtZT0iUGhpbGxpcHNfbm90ZSIgdGFncz0ibm90ZXNpbiBub3Rob3VyIiBwb3NpdGlvbj0iMTEwMCw1NjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2hlYWRlciAmcXVvdDtNci4gUGhpbGxpcHMmcXVvdDsgJnF1b3Q7UGhpbGxpcHMmcXVvdDsgJnF1b3Q7Tm90ZXMmcXVvdDsgdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7ZGl2IGlkPSZxdW90O3BhZGRpbmctY29udGFpbmVyJnF1b3Q7IGNsYXNzPSZxdW90O3RleHRfYmxhY2smcXVvdDsmZ3Q7CiAgICAgICAgJmx0O2RpdiZndDstIEhl4oCZcyB0aGUgbWFuYWdlciBvZiB0aGUgZGVwYXJ0bWVudCBJIHdvcmsgaW4sIGFuZCB0aGVyZWZvcmUsIG15IHN1cGVyaW9yLiBFdmVyIHNpbmNlIEkgam9pbmVkIHRoZSBjb21wYW55IGhl4oCZcyB0cmVhdGVkIG1lIHBvb3JseS4gSGXigJlzIG5vdCBhIGZyaWVuZGx5IHBlcnNvbiwgYnV0IGhl4oCZcyBlc3BlY2lhbGx5IHRvdWdoIG9uIG1lLiZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsmbHQ7Zm9yIF9pIHJhbmdlICRQaGlsbGlwc19ub3RlcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgc3R5bGU9JnF1b3Q7bWFyZ2luLXRvcDogMTZweCZxdW90OyZndDstIF9pJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDsvZm9yJmd0OyZndDsKICAgICZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ1MCIgbmFtZT0iVmFuZXNzYV9jaGF0IiB0YWdzPSJtYXBwIG5vdGhvdXIiIHBvc2l0aW9uPSIxMjI1LDU2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7Ci8qcmVnaW9uIEVtaWx5IGNoYXQqLwombHQ7Jmx0O2lmICRWYW5lc3NhX2NoYXQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2hlYWRlciAmcXVvdDtWYW5lc3NhJnF1b3Q7ICZxdW90O1ZhbmVzc2EmcXVvdDsgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsgJFZhbmVzc2FfcGF1c2VkJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtoZWFkZXIgJnF1b3Q7VmFuZXNzYSZxdW90OyAmcXVvdDtWYW5lc3NhJnF1b3Q7ICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7bWVzc2FnZV9jb250YWluZXImcXVvdDsmZ3Q7CiZsdDsmbHQ7Zm9yIF9saW5lIHJhbmdlICRWYW5lc3NhX2NoYXRMb2cmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiBfbGluZS50eXBlID09IDEmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCBfbGluZS5zZW5kZXIgX2xpbmUubWVzc2FnZSBfbGluZS5hdmF0YXImZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlaWYgX2xpbmUudHlwZSA9PSAyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VfaW1nIF9saW5lLm1lc3NhZ2UmZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlaWYgX2xpbmUudHlwZSA9PSAzJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VfdmlkZW8gX2xpbmUubWVzc2FnZVswXSBfbGluZS5tZXNzYWdlWzFdJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZWlmIF9saW5lLnR5cGUgPT0gNCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDttZXNzYWdlX2Vtb2ppIF9saW5lLm1lc3NhZ2UgZmFsc2UgX2xpbmUuc2VuZGVyJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDsvZm9yJmd0OyZndDsKJmx0OyZsdDtpZiAkVmFuZXNzYV9wYXVzZWQgPT0gZmFsc2UmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkVmFuZXNzYV9jaGF0ID09IHRydWUmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkVmFuZXNzYV9jaGF0U3RhdGUmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAmbHQ7ZGl2IEBpZD0mcXVvdDskVmFuZXNzYV9sYXN0SWQuc2xpY2UoMSkmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDtlbmQmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2NoYXRfYmFyJnF1b3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O2NvbnRlbnQmcXVvdDsmZ3Q7CiZsdDsmbHQ7aWYgJFZhbmVzc2FfcGF1c2VkID09IHRydWUmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkVmFuZXNzYV9vcHRpb25zWzBdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJFZhbmVzc2Ffb3B0aW9uc1swXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpbmNsdWRlICRWYW5lc3NhX29wdGlvbnNbMF0ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRWYW5lc3NhX29wdGlvbnNbMV0mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bGluayAkVmFuZXNzYV9vcHRpb25zWzFdLnRleHQmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJFZhbmVzc2Ffb3B0aW9uc1sxXS5wYXNzYWdlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJFZhbmVzc2Ffb3B0aW9uc1syXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICRWYW5lc3NhX29wdGlvbnNbMl0udGV4dCZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkVmFuZXNzYV9vcHRpb25zWzJdLnBhc3NhZ2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkVmFuZXNzYV9vcHRpb25zWzNdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJFZhbmVzc2Ffb3B0aW9uc1szXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpbmNsdWRlICRWYW5lc3NhX29wdGlvbnNbM10ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0O3RpbWVkIDAuMnMmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbEluc3RhKCk7CiAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDUxIiBuYW1lPSJWYW5lc3NhSW50cm8xIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsNTcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtWYW5lc3NhJnF1b3Q7ICZxdW90O0hleSAkbmFtZSwgaG934oCZcyBldmVyeXRoaW5nPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1ZhbmVzc2EmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hleSAkbmFtZSwgaG934oCZcyBldmVyeXRoaW5nPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtIZXkgJG5hbWUsIGhvd+KAmXMgZXZlcnl0aGluZz8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtib2xra09vbGtrYm9sa2tTb2xra01vbGtrQm9sa2tyb2xra2UmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuNnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0SWQgID0gJnF1b3Q7I2JvbGtrT29sa2tib2xra1NvbGtrTW9sa2tCb2xra3JvbGtrZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2Ffb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VmFuZXNzYSwgaGV5LCB3aGF0IGEgc3VycHJpc2UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O1ZhbmVzc2FJbnRybzFfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1ZhbmVzc2EsIGhleSwgd2hhdCBhIHN1cnByaXNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7VmFuZXNzYUludHJvMV8yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDUyIiBuYW1lPSJWYW5lc3NhSW50cm8xXzIiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSw1NzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdFN0YXRlICA9ICZxdW90O1ZhbmVzc2FJbnRybzFfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkVmFuZXNzYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VmFuZXNzYSwgaGV5LCB3aGF0IGEgc3VycHJpc2UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1ZhbmVzc2EsIGhleSwgd2hhdCBhIHN1cnByaXNlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdCA9ICZxdW90O1ZhbmVzc2EsIGhleSwgd2hhdCBhIHN1cnByaXNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2tvbGtrVm9sa2tub2xra2dvbGtrem9sa2tEb2xra2tvbGtrZSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2Ffb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3RJZCAgPSAmcXVvdDsja29sa2tWb2xra25vbGtrZ29sa2t6b2xra0RvbGtra29sa2tlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUbyB3aGF0IGRvIEkgb3dlIHRoZSBwbGVhc3VyZT8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O1ZhbmVzc2FJbnRybzFfMyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RvIHdoYXQgZG8gSSBvd2UgdGhlIHBsZWFzdXJlPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O1ZhbmVzc2FJbnRybzFfMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0NTMiIG5hbWU9IlZhbmVzc2FJbnRybzFfMyIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDU3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0U3RhdGUgID0gJnF1b3Q7VmFuZXNzYUludHJvMV8zJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRWYW5lc3NhX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUbyB3aGF0IGRvIEkgb3dlIHRoZSBwbGVhc3VyZT8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RvIHdoYXQgZG8gSSBvd2UgdGhlIHBsZWFzdXJlPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtUbyB3aGF0IGRvIEkgb3dlIHRoZSBwbGVhc3VyZT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtWYW5lc3NhJnF1b3Q7ICZxdW90O1NvLCBJIGhlYXJkIHlvdSB3YW50IHRvIHRyeSBuZXcgdGhpbmdzIHdpdGggQW5uaWUmcXVvdDsgJnF1b3Q7SG9sa2tjb2xra0JvbGtrQm9sa2txb2xra0pvbGtrRG9sa2tWb2xra0VvbGtreW9sa2trb2xra0NvbGtrRG9sa2tDb2xra0ZvbGtrQSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7VmFuZXNzYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U28sIEkgaGVhcmQgeW91IHdhbnQgdG8gdHJ5IG5ldyB0aGluZ3Mgd2l0aCBBbm5pZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtTbywgSSBoZWFyZCB5b3Ugd2FudCB0byB0cnkgbmV3IHRoaW5ncyB3aXRoIEFubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtUb2xra1hvbGtrQW9sa2tYb2xra3BvbGtrdG9sa2tlb2xra2gmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0SWQgID0gJnF1b3Q7I1RvbGtrWG9sa2tBb2xra1hvbGtrcG9sa2t0b2xra2VvbGtraCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2Ffb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7ZmZzLCBkb2VzIGV2ZXJ5b25lIGluIGhlciBvZmZpY2Uga25vdz8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O1ZhbmVzc2FJbnRybzFfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O2ZmcywgZG9lcyBldmVyeW9uZSBpbiBoZXIgb2ZmaWNlIGtub3c/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7VmFuZXNzYUludHJvMV80JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ1NCIgbmFtZT0iVmFuZXNzYUludHJvMV80IiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsNTcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRTdGF0ZSAgPSAmcXVvdDtWYW5lc3NhSW50cm8xXzQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJFZhbmVzc2FfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O2ZmcywgZG9lcyBldmVyeW9uZSBpbiBoZXIgb2ZmaWNlIGtub3c/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtmZnMsIGRvZXMgZXZlcnlvbmUgaW4gaGVyIG9mZmljZSBrbm93PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtmZnMsIGRvZXMgZXZlcnlvbmUgaW4gaGVyIG9mZmljZSBrbm93PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O1ZhbmVzc2EmcXVvdDsgJnF1b3Q7TG9sLCBubyZxdW90OyAmcXVvdDtib2xra29vbGtrbG9sa2t1b2xra0dvbGtrSm9sa2txb2xra2JvbGtrTW9sa2tDb2xra2FvbGtrZG9sa2tib2xra2JvbGtrSG9sa2txJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtWYW5lc3NhJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtMb2wsIG5vJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdCA9ICZxdW90O0xvbCwgbm8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O1ZhbmVzc2EmcXVvdDsgJnF1b3Q7WW91IGtub3cgdGhlIHRocmVlIG9mIHVzIGFyZSBjbG9zZSBmcmllbmRzJnF1b3Q7ICZxdW90O0pvbGtrc29sa2tIb2xra3JvbGtrbm9sa2t4b2xra1RvbGtrQW9sa2tab2xra2xvbGtrUm9sa2tFb2xra2lvbGtrRG9sa2tpb2xra00mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1ZhbmVzc2EmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBrbm93IHRoZSB0aHJlZSBvZiB1cyBhcmUgY2xvc2UgZnJpZW5kcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtZb3Uga25vdyB0aGUgdGhyZWUgb2YgdXMgYXJlIGNsb3NlIGZyaWVuZHMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O1ZhbmVzc2EmcXVvdDsgJnF1b3Q7V2UgZG8gZXZlcnl0aGluZyB0b2dldGhlciZxdW90OyAmcXVvdDtrb2xra1JvbGtrZ29sa2tBb2xra1RvbGtrRG9sa2tob2xra0ZvbGtrQm9sa2tWb2xra0NvbGtrTm9sa2tub2xra3NvbGtreW9sa2t4JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtWYW5lc3NhJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZSBkbyBldmVyeXRoaW5nIHRvZ2V0aGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdCA9ICZxdW90O1dlIGRvIGV2ZXJ5dGhpbmcgdG9nZXRoZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O1ZhbmVzc2EmcXVvdDsgJnF1b3Q7U28geWVhaCwgSSBmb3VuZCBvdXQgYWJvdXQgaXQmcXVvdDsgJnF1b3Q7S29sa2tEb2xra05vbGtrRm9sa2tSb2xra1VvbGtram9sa2t1b2xra0pvbGtrVW9sa2tmb2xra0FvbGtrYW9sa2t3b2xra0pvbGtrdSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7VmFuZXNzYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U28geWVhaCwgSSBmb3VuZCBvdXQgYWJvdXQgaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0ID0gJnF1b3Q7U28geWVhaCwgSSBmb3VuZCBvdXQgYWJvdXQgaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2RvbGtrU29sa2tWb2xra1RvbGtrb29sa2tYb2xra2NvbGtrZyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC45cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2Ffb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3RJZCAgPSAmcXVvdDsjZG9sa2tTb2xra1ZvbGtrVG9sa2tvb2xra1hvbGtrY29sa2tnJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtSaWdodC4uLiZxdW90OywgcGFzc2FnZTogJnF1b3Q7VmFuZXNzYUludHJvMV81JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7UmlnaHQuLi4mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtWYW5lc3NhSW50cm8xXzUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDU1IiBuYW1lPSJWYW5lc3NhSW50cm8xXzUiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCw1NzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdFN0YXRlICA9ICZxdW90O1ZhbmVzc2FJbnRybzFfNSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkVmFuZXNzYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7UmlnaHQuLi4mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1JpZ2h0Li4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdCA9ICZxdW90O1JpZ2h0Li4uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuM3MgJnF1b3Q7VmFuZXNzYSZxdW90OyAmcXVvdDtJIGp1c3Qgd2FudGVkIHRvIHNheSB0aGF0IEnigJl2ZSBhbHdheXMgdGhvdWdodCB5b3XigJlyZSBhIGdvb2QgZ3V5LiZxdW90OyAmcXVvdDtGb2xra0hvbGtrYW9sa2tJb2xra0hvbGtrZm9sa2tEb2xra1FvbGtrcm9sa2tPb2xra01vbGtrbG9sa2t4b2xra09vbGtrdW9sa2txJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtWYW5lc3NhJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGp1c3Qgd2FudGVkIHRvIHNheSB0aGF0IEnigJl2ZSBhbHdheXMgdGhvdWdodCB5b3XigJlyZSBhIGdvb2QgZ3V5LiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtJIGp1c3Qgd2FudGVkIHRvIHNheSB0aGF0IEnigJl2ZSBhbHdheXMgdGhvdWdodCB5b3XigJlyZSBhIGdvb2QgZ3V5LiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7VmFuZXNzYSZxdW90OyAmcXVvdDtBbmQgeW91IGtub3cgSSBjYXJlIGEgbG90IGFib3V0IEFubmllJnF1b3Q7ICZxdW90O1NvbGtrbm9sa2t3b2xra05vbGtrRm9sa2tKb2xra1BvbGtrem9sa2t3b2xra0RvbGtrU29sa2tOb2xra1BvbGtrZm9sa2twb2xra2gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1ZhbmVzc2EmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FuZCB5b3Uga25vdyBJIGNhcmUgYSBsb3QgYWJvdXQgQW5uaWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0ID0gJnF1b3Q7QW5kIHlvdSBrbm93IEkgY2FyZSBhIGxvdCBhYm91dCBBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7VmFuZXNzYSZxdW90OyAmcXVvdDtKdXN0IGtub3cgdGhhdCBJIHdvbuKAmXQgbGV0IE5hb21pIGNvbXBsZXRlbHkgZGVyYWlsIEFubmllJnF1b3Q7ICZxdW90O2pvbGtrZ29sa2tib2xra01vbGtrcW9sa2tGb2xra09vbGtreG9sa2tDb2xra09vbGtrTW9sa2tvb2xra1pvbGtrWm9sa2t2b2xra3AmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1ZhbmVzc2EmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0p1c3Qga25vdyB0aGF0IEkgd29u4oCZdCBsZXQgTmFvbWkgY29tcGxldGVseSBkZXJhaWwgQW5uaWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0ID0gJnF1b3Q7SnVzdCBrbm93IHRoYXQgSSB3b27igJl0IGxldCBOYW9taSBjb21wbGV0ZWx5IGRlcmFpbCBBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuOHMgJnF1b3Q7VmFuZXNzYSZxdW90OyAmcXVvdDtZb3UgY2FuIGNvdW50IG9uIG1lIGlmIHlvdSBuZWVkIGhlbHAgb3IgaWYgeW91IGhhdmUgc2Vjb25kIHRob3VnaHRzIGFib3V0IGFsbCB0aGlzJnF1b3Q7ICZxdW90O2dvbGtrUm9sa2tEb2xra0VvbGtrR29sa2tHb2xra0FvbGtrY29sa2tab2xra1pvbGtrcG9sa2thb2xra2pvbGtrR29sa2t1b2xra3UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1ZhbmVzc2EmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBjYW4gY291bnQgb24gbWUgaWYgeW91IG5lZWQgaGVscCBvciBpZiB5b3UgaGF2ZSBzZWNvbmQgdGhvdWdodHMgYWJvdXQgYWxsIHRoaXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0ID0gJnF1b3Q7WW91IGNhbiBjb3VudCBvbiBtZSBpZiB5b3UgbmVlZCBoZWxwIG9yIGlmIHlvdSBoYXZlIHNlY29uZCB0aG91Z2h0cyBhYm91dCBhbGwgdGhpcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA3LjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuOHMgJnF1b3Q7VmFuZXNzYSZxdW90OyAmcXVvdDtJZiB0aGlzIGlzIHJlYWxseSB3aGF0IHlvdSB3YW50LCBJIGhhdmUgbm8gcHJvYmxlbSB3aXRoIGl0LCB5b3XigJlyZSBib3RoIGFkdWx0cyBhZnRlciBhbGwmcXVvdDsgJnF1b3Q7ZG9sa2tTb2xra3VvbGtra29sa2tEb2xra1pvbGtrSW9sa2tCb2xra3ZvbGtrTm9sa2tab2xra3JvbGtrRW9sa2tVb2xra3VvbGtrQSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7VmFuZXNzYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SWYgdGhpcyBpcyByZWFsbHkgd2hhdCB5b3Ugd2FudCwgSSBoYXZlIG5vIHByb2JsZW0gd2l0aCBpdCwgeW914oCZcmUgYm90aCBhZHVsdHMgYWZ0ZXIgYWxsJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdCA9ICZxdW90O0lmIHRoaXMgaXMgcmVhbGx5IHdoYXQgeW91IHdhbnQsIEkgaGF2ZSBubyBwcm9ibGVtIHdpdGggaXQsIHlvdeKAmXJlIGJvdGggYWR1bHRzIGFmdGVyIGFsbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxMC4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O1ZhbmVzc2EmcXVvdDsgJnF1b3Q7QnV0IEnigJltIGhlcmUgdG8gaGVscCBpZiB5b3UgZ3V5cyBuZWVkIG1lJnF1b3Q7ICZxdW90O1VvbGtrSW9sa2tVb2xra2pvbGtrQW9sa2tYb2xra3ZvbGtrYW9sa2tmb2xra25vbGtrem9sa2tWb2xra0pvbGtram9sa2t6b2xra2wmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1ZhbmVzc2EmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCBJ4oCZbSBoZXJlIHRvIGhlbHAgaWYgeW91IGd1eXMgbmVlZCBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtCdXQgSeKAmW0gaGVyZSB0byBoZWxwIGlmIHlvdSBndXlzIG5lZWQgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1NvbGtram9sa2tzb2xra3RvbGtram9sa2tzb2xra3VvbGtrQiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMTEuN3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0SWQgID0gJnF1b3Q7I1NvbGtram9sa2tzb2xra3RvbGtram9sa2tzb2xra3VvbGtrQiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2Ffb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhhbmtzLCB5b3XigJl2ZSBhbHdheXMgYmVlbiBhIGdvb2QgZnJpZW5kJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtWYW5lc3NhSW50cm8xXzZhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhhbmtzLCB5b3XigJl2ZSBhbHdheXMgYmVlbiBhIGdvb2QgZnJpZW5kJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7VmFuZXNzYUludHJvMV82YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0SWQgID0gJnF1b3Q7I1NvbGtram9sa2tzb2xra3RvbGtram9sa2tzb2xra3VvbGtrQiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2Ffb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhhdCB3b27igJl0IGJlIG5lY2Vzc2FyeSZxdW90OywgcGFzc2FnZTogJnF1b3Q7VmFuZXNzYUludHJvMV82YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoYXQgd29u4oCZdCBiZSBuZWNlc3NhcnkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtWYW5lc3NhSW50cm8xXzZiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ1NiIgbmFtZT0iVmFuZXNzYUludHJvMV82YSIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDU3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0U3RhdGUgID0gJnF1b3Q7VmFuZXNzYUludHJvMV82YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkVmFuZXNzYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhhbmtzLCB5b3XigJl2ZSBhbHdheXMgYmVlbiBhIGdvb2QgZnJpZW5kJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGFua3MsIHlvdeKAmXZlIGFsd2F5cyBiZWVuIGEgZ29vZCBmcmllbmQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0ID0gJnF1b3Q7VGhhbmtzLCB5b3XigJl2ZSBhbHdheXMgYmVlbiBhIGdvb2QgZnJpZW5kJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICR2YW5lc3NhX3JlbCA9ICR2YW5lc3NhX3JlbCsxJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1dvbGtreW9sa2tEb2xra0ZvbGtrdW9sa2tIb2xra1FvbGtrVSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2Ffb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3RJZCAgPSAmcXVvdDsjV29sa2t5b2xra0RvbGtrRm9sa2t1b2xra0hvbGtrUW9sa2tVJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtXZSBqdXN0IHdhbnQgdG8gdHJ5IHNvbWV0aGluZyBuZXcsIHRoYXTigJlzIGFsbCZxdW90OywgcGFzc2FnZTogJnF1b3Q7VmFuZXNzYUludHJvMV83JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7V2UganVzdCB3YW50IHRvIHRyeSBzb21ldGhpbmcgbmV3LCB0aGF04oCZcyBhbGwmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtWYW5lc3NhSW50cm8xXzcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDU3IiBuYW1lPSJWYW5lc3NhSW50cm8xXzZiIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsNTcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRTdGF0ZSAgPSAmcXVvdDtWYW5lc3NhSW50cm8xXzZiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRWYW5lc3NhX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGF0IHdvbuKAmXQgYmUgbmVjZXNzYXJ5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGF0IHdvbuKAmXQgYmUgbmVjZXNzYXJ5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdCA9ICZxdW90O1RoYXQgd29u4oCZdCBiZSBuZWNlc3NhcnkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Vm9sa2tlb2xra1RvbGtrbm9sa2tpb2xra3VvbGtrWG9sa2t2JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdElkICA9ICZxdW90OyNWb2xra2VvbGtrVG9sa2tub2xra2lvbGtrdW9sa2tYb2xra3YmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1dlIGp1c3Qgd2FudCB0byB0cnkgc29tZXRoaW5nIG5ldywgdGhhdOKAmXMgYWxsJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtWYW5lc3NhSW50cm8xXzcmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXZSBqdXN0IHdhbnQgdG8gdHJ5IHNvbWV0aGluZyBuZXcsIHRoYXTigJlzIGFsbCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O1ZhbmVzc2FJbnRybzFfNyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0NTgiIG5hbWU9IlZhbmVzc2FJbnRybzFfNyIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDU3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0U3RhdGUgID0gJnF1b3Q7VmFuZXNzYUludHJvMV83JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRWYW5lc3NhX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtXZSBqdXN0IHdhbnQgdG8gdHJ5IHNvbWV0aGluZyBuZXcsIHRoYXTigJlzIGFsbCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2UganVzdCB3YW50IHRvIHRyeSBzb21ldGhpbmcgbmV3LCB0aGF04oCZcyBhbGwmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0ID0gJnF1b3Q7V2UganVzdCB3YW50IHRvIHRyeSBzb21ldGhpbmcgbmV3LCB0aGF04oCZcyBhbGwmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtWYW5lc3NhJnF1b3Q7ICZxdW90O0kgdG90YWxseSBnZXQgaXQmcXVvdDsgJnF1b3Q7a29sa2tKb2xra3RvbGtrZW9sa2tSb2xra0VvbGtreW9sa2tZb2xra0NvbGtrUm9sa2tjb2xra3lvbGtrWG9sa2tqb2xra3lvbGtrdiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7VmFuZXNzYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB0b3RhbGx5IGdldCBpdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtJIHRvdGFsbHkgZ2V0IGl0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtWYW5lc3NhJnF1b3Q7ICZxdW90O0xpa2UgSSBzYWlkLCBqdXN0IHRleHQgbWUgaWYgeW91IG5lZWQgYW55dGhpbmcmcXVvdDsgJnF1b3Q7b29sa2thb2xra3dvbGtrbW9sa2tDb2xra3pvbGtrcm9sa2tYb2xra25vbGtrTm9sa2tYb2xra1ZvbGtrVW9sa2tnb2xra2VvbGtrcyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7VmFuZXNzYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGlrZSBJIHNhaWQsIGp1c3QgdGV4dCBtZSBpZiB5b3UgbmVlZCBhbnl0aGluZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtMaWtlIEkgc2FpZCwganVzdCB0ZXh0IG1lIGlmIHlvdSBuZWVkIGFueXRoaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt2b2xra1BvbGtrZ29sa2tjb2xra01vbGtrbm9sa2tVb2xra3MmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuOXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0SWQgID0gJnF1b3Q7I3ZvbGtrUG9sa2tnb2xra2NvbGtrTW9sa2tub2xra1VvbGtrcyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2Ffb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSB3aWxsJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtWYW5lc3NhSW50cm8xXzgmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIHdpbGwmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtWYW5lc3NhSW50cm8xXzgmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDU5IiBuYW1lPSJWYW5lc3NhSW50cm8xXzgiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsNTcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRTdGF0ZSAgPSAmcXVvdDtWYW5lc3NhSW50cm8xXzgmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJFZhbmVzc2FfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgd2lsbCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB3aWxsJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdCA9ICZxdW90O0kgd2lsbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtKb2xra29vbGtrbG9sa2thb2xra3BvbGtrRW9sa2tab2xra1cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0SWQgID0gJnF1b3Q7I0pvbGtrb29sa2tsb2xra2FvbGtrcG9sa2tFb2xra1pvbGtrVyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2Ffb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGFrZSBjYXJlLCBWYW5lc3NhJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtWYW5lc3NhSW50cm8xXzkmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUYWtlIGNhcmUsIFZhbmVzc2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtWYW5lc3NhSW50cm8xXzkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDYwIiBuYW1lPSJWYW5lc3NhSW50cm8xXzkiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsNTcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRTdGF0ZSAgPSAmcXVvdDtWYW5lc3NhSW50cm8xXzkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJFZhbmVzc2FfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1Rha2UgY2FyZSwgVmFuZXNzYSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGFrZSBjYXJlLCBWYW5lc3NhJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdCA9ICZxdW90O1Rha2UgY2FyZSwgVmFuZXNzYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O1ZhbmVzc2EmcXVvdDsgJnF1b3Q7WW91IHRvbywgJG5hbWUmcXVvdDsgJnF1b3Q7Vm9sa2tkb2xra25vbGtram9sa2t3b2xra2RvbGtrY29sa2tJb2xra0hvbGtrWm9sa2tyb2xra0dvbGtrTG9sa2txb2xra0JvbGtrSSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7VmFuZXNzYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IHRvbywgJG5hbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0ID0gJnF1b3Q7WW91IHRvbywgJG5hbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4ycyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9zbWlsZS53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7VmFuZXNzYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7VmFuZXNzYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfc21pbGUud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMi4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDvwn5mCJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdFN0YXRlID0gJnF1b3Q7VmFuZXNzYUludHJvNiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3RfaG91ciA9ICZxdW90OzEyOjE0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdCA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDsxMjoxNCZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7b2ZmbGluZS10ZXh0JnF1b3Q7Jmd0O1ZhbmVzc2EgaXMgb2ZmbGluZSZsdDsvZGl2Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjJzJmd0OyZndDsKJmx0OyZsdDtzZXQgJFZhbmVzc2Ffbm90ZXMucHVzaCgmcXVvdDtTaGUgdGV4dGVkIG1lIHRvIG9mZmVyIGhlciBoZWxwIHdpdGggdGhlIEFubmllIHNpdHVhdGlvbiwgc2F5aW5nIHRoYXQgaWYgSSBldmVyIGhhdmUgc2Vjb25kIHRob3VnaHRzIGFib3V0IHRoaXMgSSBqdXN0IG5lZWQgdG8gbGV0IGhlciBrbm93LiZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMnMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRlbmRPZkNvbnRlbnQgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMnMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRlcDEgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ2MSIgbmFtZT0iVmFuZXNzYV9ub3RlIiB0YWdzPSJub3Rlc2luIG5vdGhvdXIiIHBvc2l0aW9uPSIxMDAsNTg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtoZWFkZXIgJnF1b3Q7VmFuZXNzYSZxdW90OyAmcXVvdDtWYW5lc3NhJnF1b3Q7ICZxdW90O05vdGVzJnF1b3Q7IHRydWUmZ3Q7Jmd0OwogICAgJmx0O2RpdiBpZD0mcXVvdDtwYWRkaW5nLWNvbnRhaW5lciZxdW90OyBjbGFzcz0mcXVvdDt0ZXh0X2JsYWNrJnF1b3Q7Jmd0OwogICAgICAgICZsdDtkaXYmZ3Q7LSBTaGXigJlzIGEgY2xvc2UgZnJpZW5kIG9mIEFubmllIGFuZCBOYW9taSwgdGhleSBhbGwgd29yayB0b2dldGhlci4gU2hl4oCZcyBhbHdheXMgYmVlbiByZWFsbHkgZnJpZW5kbHkgdG93YXJkIG1lLCBpdCBzZWVtcyBsaWtlIHNoZeKAmXMgdGhlIGNvbXBsZXRlIG9wcG9zaXRlIG9mIE5hb21pLiZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsmbHQ7Zm9yIF9pIHJhbmdlICRWYW5lc3NhX25vdGVzJmd0OyZndDsKICAgICAgICAgICAgJmx0O2RpdiBzdHlsZT0mcXVvdDttYXJnaW4tdG9wOiAxNnB4JnF1b3Q7Jmd0Oy0gX2kmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7Jmx0Oy9mb3ImZ3Q7Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDYyIiBuYW1lPSJkZXZfY2hhdCIgdGFncz0ibWFwcCBub3Rob3VyIiBwb3NpdGlvbj0iMjI1LDU4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7Ci8qcmVnaW9uIEVtaWx5IGNoYXQqLwombHQ7Jmx0O2hlYWRlciAmcXVvdDtUaGVQaG9uZUd1eSAoZGV2KSZxdW90OyAmcXVvdDtkZXYmcXVvdDsgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsgdHJ1ZSZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7bWVzc2FnZV9jb250YWluZXImcXVvdDsmZ3Q7CiZsdDsmbHQ7c2V0IF9uZXh0ID0gJGZyZWVDYXArMSZndDsmZ3Q7CgombHQ7Jmx0O2lmICRjYXAgPT0gMiAmYW1wOyZhbXA7ICRlbmRPZkNvbnRlbnQgPT0gdHJ1ZSAmYW1wOyZhbXA7ICRwbWRscCA9PSBmYWxzZSZndDsmZ3Q7CiAgICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtEZXYmcXVvdDsgJnF1b3Q7SGkgdGhlcmUhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7RGV2JnF1b3Q7ICZxdW90O1lvdeKAmXZlIHJlYWNoZWQgdGhlIGVuZCBvZiBDaGFwdGVyICRmcmVlQ2FwLiZxdW90OyAmcXVvdDtFb2xra29vbGtrZm9sa2tYb2xra3BvbGtrcG9sa2tpb2xra1hvbGtrTG9sa2tob2xra0FvbGtrb29sa2tub2xra2RvbGtrdG9sa2tVJnF1b3Q7KCkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0RldiZxdW90OyAmcXVvdDtDaGFwdGVyIF9uZXh0IGlzIGFscmVhZHkgYXZhaWxhYmxlIGZvciBQYXRyZW9uIG1lbWJlcnMuJnF1b3Q7ICZxdW90O09vbGtrRG9sa2txb2xra01vbGtrbm9sa2thb2xra2hvbGtrRG9sa2tvb2xra3hvbGtrT29sa2tUb2xra2JvbGtreW9sa2tTb2xra2UmcXVvdDsoKSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuOHMgJnF1b3Q7RGV2JnF1b3Q7ICZxdW90O0lmIHlvdSBhbHJlYWR5IGhhdmUgYSBwcmVtaXVtIGNvZGUsIHlvdSBjYW4gY2xpY2sgdGhlIGJ1dHRvbiBhdCB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uJnF1b3Q7ICZxdW90O0xvbGtrbW9sa2tOb2xra0xvbGtreW9sa2tTb2xra3JvbGtrTG9sa2tkb2xra1BvbGtrWW9sa2tEb2xra2ZvbGtrd29sa2t5b2xra0wmcXVvdDsoKSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDIuMXMgJnF1b3Q7RGV2JnF1b3Q7ICZxdW90O0lmIHlvdeKAmXJlIG5vdCBhIFBhdHJlb24gc3Vic2NyaWJlciB5ZXQsIHlvdSBjYW4gYmVjb21lIG9uZSBieSBjbGlja2luZyB0aGUgZm9sbG93aW5nIGxpbms6ICZsdDthIHRhcmdldD0mIzM5O19ibGFuayYjMzk7IHJlbD0mIzM5O25vb3BlbmVyIG5vcmVmZXJyZXImIzM5OyBocmVmPSYjMzk7aHR0cHM6Ly93d3cucGF0cmVvbi5jb20vVGhlUGhvbmVHdXkmIzM5OyZndDtwYXRyZW9uLmNvbS9UaGVQaG9uZUd1eSZsdDsvYSZndDsmcXVvdDsgJnF1b3Q7T29sa2tLb2xra2lvbGtrem9sa2tFb2xra3ZvbGtrSW9sa2t6b2xra0pvbGtrdm9sa2tTb2xra2FvbGtrSm9sa2tsb2xra1BvbGtrcSZxdW90OygpJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtpZiAkY2FwID09IDMgJmFtcDsmYW1wOyAkZW5kT2ZDb250ZW50ID09IHRydWUmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtEZXYmcXVvdDsgJnF1b3Q7SGkgdGhlcmUhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7RGV2JnF1b3Q7ICZxdW90O1lvdeKAmXZlIHJlYWNoZWQgdGhlIGVuZCBvZiBDaGFwdGVyIF9uZXh0LiZxdW90OyAmcXVvdDtIb2xra3ZvbGtrVW9sa2twb2xra29vbGtreW9sa2tkb2xra09vbGtrSm9sa2tmb2xra1pvbGtreW9sa2tMb2xra1dvbGtrbm9sa2thJnF1b3Q7KCkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0RldiZxdW90OyAmcXVvdDtXZSByZWxlYXNlIHVwZGF0ZXMgZXZlcnkgdHdvIHdlZWtzLiZxdW90OyAmcXVvdDtOb2xra3JvbGtrcG9sa2tYb2xra09vbGtrb29sa2tRb2xra1JvbGtrWG9sa2t3b2xra25vbGtrVW9sa2twb2xra3NvbGtrTG9sa2tGJnF1b3Q7KCkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O0RldiZxdW90OyAmcXVvdDtEb27igJl0IGZvcmdldCB0byBjaGVjayBvdXIgUGF0cmVvbiBwYWdlIGZvciBmdXR1cmUgcmVsZWFzZXMuJnF1b3Q7ICZxdW90O3dvbGtrZ29sa2tzb2xra2RvbGtrdW9sa2trb2xra1hvbGtrQW9sa2trb2xra1BvbGtrRm9sa2tOb2xra2hvbGtrVm9sa2tWb2xra0smcXVvdDsoKSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7RGV2JnF1b3Q7ICZxdW90O1RoYW5rcyBmb3IgcGxheWluZyEmcXVvdDsgJnF1b3Q7T29sa2tkb2xra3NvbGtrZG9sa2t2b2xra3hvbGtrRm9sa2tjb2xra2NvbGtrWW9sa2tMb2xra2ZvbGtrTm9sa2tVb2xra3dvbGtrYiZxdW90OygpJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDtlbmQmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2NoYXRfYmFyJnF1b3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O2NvbnRlbnQmcXVvdDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRjYXAgPT0gMiAmYW1wOyZhbXA7ICRlbmRPZkNvbnRlbnQgPT0gdHJ1ZSAmYW1wOyZhbXA7ICRwbWRscCA9PSBmYWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICZxdW90O0kgYWxyZWFkeSBoYXZlIGEgY29kZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7Z290byAmcXVvdDtwYXRyb24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7L2RpdiZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7dGltZWQgMC4ycyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsSW5zdGEoKTsKICAgICZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0NjMiIG5hbWU9IlBhc3NhZ2VIZWFkZXIiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCw1ODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwogICAgJmx0O2RpdiBpZD0mcXVvdDt0b3BiYXImcXVvdDsmZ3Q7CiAgICAmbHQ7ZGl2IHN0eWxlPSZxdW90O3BhZGRpbmctbGVmdDoyMHB4OyZxdW90OyBjbGFzcz0mcXVvdDt0b3AtaG91ciZxdW90OyZndDsKICAgICRob3VyCiAgICAmbHQ7L2RpdiZndDsKICAgICZsdDtkaXYgc3R5bGU9JnF1b3Q7cGFkZGluZy1yaWdodDogMThweDtwYWRkaW5nLXRvcDogNHB4OyZxdW90OyZndDsKICAgICZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvQ2VsbHVsYXIgQ29ubmVjdGlvbi5wbmcmcXVvdDsvJmd0OwogICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9CYXR0ZXJ5LnBuZyZxdW90Oy8mZ3Q7CiAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL1dpZmkucG5nJnF1b3Q7LyZndDsKICAgICZsdDsvZGl2Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDY0IiBuYW1lPSJTdG9yeUluaXQiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSw1ODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7aW1hZ2VzX3ByZWxvYWQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7dmFyaWFibGVzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtpbmNsdWRlICZxdW90O25hdmJhciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtoZWFkZXJfYXBwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtpbmNsdWRlICZxdW90O21lc3NhZ2Vfb3V0c2lkZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7aW5jbHVkZSAmcXVvdDttZXNzYWdlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtpbmNsdWRlICZxdW90O3BhZGRpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7bWVzc2FnZV90b2FzdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7aW5jbHVkZSAmcXVvdDttZXNzYWdlX29sZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtmYWtlX25hdmJhciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7aW5jbHVkZSAmcXVvdDttZXNzYWdlX2ltZyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7aW5jbHVkZSAmcXVvdDttZXNzYWdlX3ZpZGVvJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtpbmNsdWRlICZxdW90O2xpa2VfYnV0dG9uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtpbmNsdWRlICZxdW90O2F2YXRhcl90b3AmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7aG9tZV9zY3JlZW5fYnV0dG9uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtpbmNsdWRlICZxdW90O21lc3NhZ2VfZW1vamkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7bWVzc2FnZV90YWcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7c3dpdGNoX2J1dHRvbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtub3Rlc19idXR0b24mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7dG9kb19idXR0b24mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O2NhY2hlYXVkaW8gJnF1b3Q7bXltZXNzYWdlJnF1b3Q7ICZxdW90O2Fzc2V0cy9zb3VuZC9teU1zZy5tcDMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O2NhY2hlYXVkaW8gJnF1b3Q7bWVzc2FnZSZxdW90OyAmcXVvdDthc3NldHMvc291bmQvcG9wLm1wMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7Y2FjaGVhdWRpbyAmcXVvdDt0b2FzdCZxdW90OyAmcXVvdDthc3NldHMvc291bmQvbm90aWZQb3AubXAzJnF1b3Q7Jmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ2NSIgbmFtZT0iUGFzc2FnZVJlYWR5IiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsNTg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgc2V0dXAuc2V0QmcoU3RhdGUudmFyaWFibGVzLndhbGxwYXBlcik7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0NjYiIG5hbWU9ImltYWdlc19wcmVsb2FkIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsNTg1MCIgc2l6ZT0iMTAwLDEwMCI+LyphdmF0YXIqLwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2ljb25zL0FubmllX2F2YXRhci53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9pY29ucy9OYW9taV9hdmF0YXIud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvaWNvbnMvUGhpbGxpcHNfYXZhdGFyLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2ljb25zL1ZhbmVzc2FfYXZhdGFyLndlYnAmcXVvdDsvJmd0OwoKLyppY29uKi8KJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9pY29ucy9CYWNrdXBzLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2ljb25zL0Nsb2NrLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2ljb25zL0NyZWRpdHMud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvaWNvbnMvRGlzY29yZC53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9pY29ucy9Ib3Jvc2NvcGUud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvaWNvbnMvSW5zdGF2aWJlLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2ljb25zL0l0Y2guaW8ud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvaWNvbnMvSm91cm5hbC53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9pY29ucy9NZXNzYWdlcy53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9pY29ucy9NdXNpYy53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9pY29ucy9Ob3Rlcy53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9pY29ucy9QYXRyZW9uLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2ljb25zL1Bob3Rvcy53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9pY29ucy9QcmVtaXVtLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2ljb25zL1NldHRpbmdzLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2ljb25zL1N5c3RlbS53ZWJwJnF1b3Q7LyZndDsKCi8qZW1vdGVzKi8KJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfYmlnX3NtaWxlLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9jb25maWRlbmNlLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9jcnlpbmcud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2RvdWJ0LndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X21vdXRoLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV90b25ndWUud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X3dpbmsud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xhdWdoLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9sZXdkX2ZhY2Uud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xtYW8ud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX25vX3dvcmRzLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9zbWlsZS53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfc3RyZXNzZWQud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX3N1cnByaXNlLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV93aGF0LndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV93aW5rLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV94ZC53ZWJwJnF1b3Q7LyZndDsKCi8qZXAxKi8KJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lcDEvYW5uaWVfcGhvdG9fMS53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lcDEvYW5uaWVfcGhvdG9fMV90aHVtYm5haWwud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZXAxL2FubmllX3Bob3RvXzIud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZXAxL2FubmllX3Bob3RvXzJfdGh1bWJuYWlsLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2VwMS9oYWlsZXlfcGhvdG9fMS53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lcDEvaGFpbGV5X3Bob3RvXzFfdGh1bWJuYWlsLndlYnAmcXVvdDsvJmd0OwoKLyplcDIqLwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2VwMi9hbm5pZV9waG90b18zLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2VwMi9hbm5pZV9waG90b18zX3RodW1ibmFpbC53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lcDIvYW5uaWVfcGhvdG9fNC53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lcDIvYW5uaWVfcGhvdG9fNF90aHVtYm5haWwud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZXAyL2hhaWxleV9waG90b18yLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2VwMi9oYWlsZXlfcGhvdG9fMl90aHVtYm5haWwud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZXAyL2hhaWxleV9waG90b18zLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2VwMi9oYWlsZXlfcGhvdG9fM190aHVtYm5haWwud2VicCZxdW90Oy8mZ3Q7CgovKmVwMyovCiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZXAzL2FubmllX3Bob3RvXzUud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZXAzL2hhaWxleV9waG90b180LndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2VwMy9oYWlsZXlfcGhvdG9fNS53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lcDMvYW5uaWVfcGhvdG9fNV90aHVtYm5haWwud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZXAzL2hhaWxleV9waG90b180X3RodW1ibmFpbC53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lcDMvaGFpbGV5X3Bob3RvXzVfdGh1bWJuYWlsLndlYnAmcXVvdDsvJmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDY3IiBuYW1lPSJpbnN0YXZpYmUiIHRhZ3M9IndoaXRlIG5vdGhvdXIiIHBvc2l0aW9uPSI4NTAsNTg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtoZWFkZXIgJnF1b3Q7SW5zdGF2aWJlJnF1b3Q7ICZxdW90OyZxdW90OyAmcXVvdDtob21lJnF1b3Q7IHRydWUmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O3BhZGRpbmctY29udGFpbmVyJnF1b3Q7Jmd0OwombHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwombHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2Vycm9yJnF1b3Q7Jmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2Vycm9yLndlYnAmcXVvdDsmZ3Q7CiZsdDtzcGFuJmd0O0ludGVybmFsIFNlcnZlciBFcnJvciZsdDsvc3BhbiZndDsKNTAwCiZsdDtzcGFuIHN0eWxlPSZxdW90O2ZvbnQtc2l6ZTogMXJlbTsmcXVvdDsmZ3Q7KERldmVsb3BlcnMgYXJlIGJ1c3kpJmx0Oy9zcGFuJmd0OwombHQ7L2RpdiZndDsKLyogJmx0O2RpdiBjbGFzcz0mcXVvdDtpbnN0YXZpYmUtdG9wJnF1b3Q7Jmd0OwogICAgJmx0OyZsdDthdmF0YXJfdG9wICZxdW90O0VtaWx5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7YXZhdGFyX3RvcCAmcXVvdDtFbWlseSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2F2YXRhcl90b3AgJnF1b3Q7RW1pbHkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDthdmF0YXJfdG9wICZxdW90O0VtaWx5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7YXZhdGFyX3RvcCAmcXVvdDtFbWlseSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2F2YXRhcl90b3AgJnF1b3Q7RW1pbHkmcXVvdDsmZ3Q7Jmd0OwombHQ7L2RpdiZndDsKJmx0OyZsdDtpbmNsdWRlICZxdW90O2luc3RhdmliZV9wb3N0X3Rlc3QmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7aW5zdGF2aWJlX3Bvc3RfdGVzdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtpbnN0YXZpYmVfcG9zdF90ZXN0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtpbmNsdWRlICZxdW90O2luc3RhdmliZV9wb3N0X3Rlc3QmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7aW5zdGF2aWJlX3Bvc3RfdGVzdCZxdW90OyZndDsmZ3Q7ICovCiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ2OCIgbmFtZT0iaW5zdGF2aWJlX3Bvc3RfdGVzdCIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDU4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7aW1nLXBvc3QmcXVvdDsmZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvaW5zdGF2aWJlL0VtaWx5XzEud2VicCZxdW90OyZndDsKJmx0OyZsdDtidXR0b24gJnF1b3Q7JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRpbWcgPSAmcXVvdDthc3NldHMvaW1nL2luc3RhdmliZS9FbWlseV8xLndlYnAmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIERpYWxvZy5zZXR1cCgmcXVvdDsmcXVvdDspOwogICAgICAgIERpYWxvZy53aWtpKCYjMzk7Jmx0OyZsdDtpbmNsdWRlICZxdW90O2ltZ19iaWcmcXVvdDsmZ3Q7Jmd0OyYjMzk7KTsKICAgICAgICBEaWFsb2cub3BlbigpOwogICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvYnV0dG9uJmd0OyZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7aW5zdGF2aWJlLXBvc3QmcXVvdDsmZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2F2YXRhciZxdW90OyZndDsKICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2luc3RhdmliZS9FbWlseV9hdmF0YXIud2VicCZxdW90OyZndDsKICAgICZsdDsvZGl2Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDt0ZXh0JnF1b3Q7Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7dG9wJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O25hbWUmcXVvdDsmZ3Q7Y3JhenluZnVuJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7dGltZSZxdW90OyZndDtMaWtlZCBieSA4MyBwZW9wbGUmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2JvdHRvbSZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtjYXB0aW9uJnF1b3Q7Jmd0O0VtaWx5Jmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7YnV0dG9ucyZxdW90OyZndDsKICAgICAgICAgICAgICAgICZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvRG93bmxvYWQud2VicCZxdW90OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtsaWtlX2J1dHRvbl90ZXN0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7ZGVzY3JpcHRpb24mcXVvdDsmZ3Q7VGhpcyB3YXMgYSBncmVhdCBkYXksIGEgbG90IG9mIGZ1biB3aXRoIGZyaWVuZHMgYW5kIGZhbWlseS4gU2FkbHkgSSBnb3Qgc2ljayBidXQgSeKAmW0gZG9pbmcgYmV0dGVyIG5vdy4uLiZsdDsvZGl2Jmd0OwombHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ2OSIgbmFtZT0iRW1pbHlfcHJvZmlsZSIgdGFncz0id2hpdGUiIHBvc2l0aW9uPSIxMTAwLDU4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aGVhZGVyICZxdW90O2NyYXp5bmZ1biZxdW90OyAmcXVvdDsmcXVvdDsgJnF1b3Q7aW5zdGF2aWJlJnF1b3Q7IHRydWUmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O3BhZGRpbmctY29udGFpbmVyJnF1b3Q7Jmd0OwoKJmx0O2RpdiBjbGFzcz0mcXVvdDtwcm9maWxlLWNhcmQmcXVvdDsmZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2F2YXRhci1jb250YWluZXImcXVvdDsmZ3Q7CiAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9pbnN0YXZpYmUvRW1pbHlfYXZhdGFyLndlYnAmcXVvdDsmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7cHJvZmlsZS1pbmZvJnF1b3Q7Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7bmFtZSZxdW90OyZndDtjcmF6eW5mdW4mbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2JpbyZxdW90OyZndDtJIGp1c3Qgd2FubmEgaGF2ZSBmdW4gYW5kIGVuam95IGxpZmUuJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtzdGF0cyZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtwb3N0cyZxdW90OyZndDszICZsdDticiZndDsgUG9zdHMmbHQ7L2RpdiZndDsKICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtmb2xsb3dlcnMmcXVvdDsmZ3Q7OTYxICZsdDticiZndDsgRm9sbG93ZXJzJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7Zm9sbG93aW5nJnF1b3Q7Jmd0OzE0NyAmbHQ7YnImZ3Q7IEZvbGxvd2luZyZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwombHQ7L2RpdiZndDsKJmx0Oy9kaXYmZ3Q7CgoKJmx0OyZsdDtpbmNsdWRlICZxdW90O2luc3RhdmliZV9wb3N0X3Rlc3QmcXVvdDsmZ3Q7Jmd0OwombHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0NzAiIG5hbWU9ImF2YXRhcl90b3AiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsNTg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsmbHQ7Jmx0O3dpZGdldCAmcXVvdDthdmF0YXJfdG9wJnF1b3Q7Jmd0OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7aW5zdGF2aWJlLXRvcC1jb250ZW50JnF1b3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0IF9hdmF0YXIgPSAmcXVvdDthc3NldHMvaW1nL2luc3RhdmliZS8mcXVvdDsgKyAkYXJnc1swXSArICZxdW90O19hdmF0YXIud2VicCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0O2ltZyBAc3JjPSZxdW90O19hdmF0YXImcXVvdDsmZ3Q7CiAgICAgICAgJGFyZ3NbMF0KICAgICAgICAmbHQ7Jmx0O2J1dHRvbiAmcXVvdDsmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O3NldCBfcHJvZmlsZSA9ICRhcmdzWzBdKyAmcXVvdDtfcHJvZmlsZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7Z290byBfcHJvZmlsZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvYnV0dG9uJmd0OyZndDsKICAgICZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy93aWRnZXQmZ3Q7Jmd0OyZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDcxIiBuYW1lPSJsaWtlX2J1dHRvbiIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDU5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7Jmx0OyZsdDt3aWRnZXQgJnF1b3Q7bGlrZV9idXR0b24mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkYXJnc1swXSA9PSB0cnVlJmd0OyZndDsKICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2hlYXJ0bGlrZWQud2VicCZxdW90OyZndDsKICAgICAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2hlYXJ0LndlYnAmcXVvdDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7L3dpZGdldCZndDsmZ3Q7Jmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0NzIiIG5hbWU9Imxpa2VfYnV0dG9uX3Rlc3QiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSw1OTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDttYWdpY19idXR0b24mcXVvdDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBpZD0mcXVvdDt0ZXN0YnV0dG9uJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2xpa2VfYnV0dG9uICR0ZXN0dmFyJmd0OyZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7Jmx0O2J1dHRvbiAmcXVvdDsmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O3NldCAkdGVzdHZhciA9ICEkdGVzdHZhciZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7cmVwbGFjZSAgJnF1b3Q7I3Rlc3RidXR0b24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtsaWtlX2J1dHRvbiAkdGVzdHZhciZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2J1dHRvbiZndDsmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0NzMiIG5hbWU9ImhlYWRlcl9hcHAiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCw1OTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OyZsdDsmbHQ7d2lkZ2V0ICZxdW90O2hlYWRlciZxdW90OyZndDsmZ3Q7CiZsdDshLS1yZWdpb24gaGVhZGVyIC0tJmd0OwombHQ7Jmx0O3NldCBfYXZhdGFyID0gJGFyZ3NbMV0mZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O2hlYWRlcl9hcHAmcXVvdDsmZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2hlYWRlcl9hcHBfY29udGVudCZxdW90OyZndDsKICAgICAgICAmbHQ7ZGl2IGlkPSZxdW90O25hdi1wbGFjZSZxdW90OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpZiAkYXJnc1szXSA9PSB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICRhcmdzWzJdJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7Jmx0O2lmIF9hdmF0YXIgIT0gJnF1b3Q7JnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0O2RpdiBpZD0mcXVvdDthdmF0YXJfbWVzc2FnZSZxdW90OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0IF9hdmF0YXJJbWcgPSAmcXVvdDthc3NldHMvaW1nLyZxdW90OytfYXZhdGFyKyZxdW90O19hdmF0YXIud2VicCZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7aW1nIEBzcmM9JnF1b3Q7X2F2YXRhckltZyZxdW90OyZndDsKICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7aGVhZGVyX3RpdGxlJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7aDEmZ3Q7JGFyZ3NbMF0mbHQ7L2gxJmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsmbHQ7aWYgX2F2YXRhciAhPSAmcXVvdDsmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2IGlkPSZxdW90O21lc3NhZ2VfYnV0dG9ucyZxdW90OyZndDsKICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgc3R5bGU9JnF1b3Q7aGVpZ2h0OiA1MHB4OyB3aWR0aDogMzhweDsmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsvZGl2Jmd0OwombHQ7L2RpdiZndDsKJmx0OyZsdDsvd2lkZ2V0Jmd0OyZndDsmbHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ3NCIgbmFtZT0ibmF2YmFyIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsNTk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsmbHQ7Jmx0O3dpZGdldCAmcXVvdDtuYXZiYXImcXVvdDsmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O25hdmJhciZxdW90OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7YnV0dG9uLWFwcCZxdW90OyZndDsKICAgICAgICAmbHQ7aW1nIHNyYz0mIzM5O2Fzc2V0cy9pbWcvQmFjay53ZWJwJiMzOTsvJmd0OwogICAgICAgICZsdDsmbHQ7bGluayAmcXVvdDsmcXVvdDsgJGFyZ3NbMF0mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy93aWRnZXQmZ3Q7Jmd0OyZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDc1IiBuYW1lPSJmYWtlX25hdmJhciIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDU5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7Jmx0OyZsdDt3aWRnZXQgJnF1b3Q7ZmFrZV9uYXZiYXImcXVvdDsmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O25hdmJhciZxdW90OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7YnV0dG9uLWFwcCZxdW90OyZndDsKICAgICAgICAmbHQ7aW1nIHNyYz0mIzM5O2Fzc2V0cy9pbWcvQmFjay53ZWJwJiMzOTsvJmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy93aWRnZXQmZ3Q7Jmd0OyZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDc2IiBuYW1lPSJ2YXJpYWJsZXMiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSw1OTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ3NyIgbmFtZT0iU3RhcnQiIHRhZ3M9ImJnMSBub3Rob3VyIiBwb3NpdGlvbj0iODUwLDU5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAvKnJlZ2lvbiBzdGFydCovCiAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2xvZ28ud2VicCZxdW90OyBjbGFzcz0mcXVvdDtsb2dvJnF1b3Q7LyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7bWFpbi1tZW51JnF1b3Q7Jmd0OwogICAgICAgIFtbTmV3IEdhbWV8ZGlzY2xhaW1lcl1dCiAgICAgICAgJmx0OyZsdDtsaW5rICZxdW90O0xvYWQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgICAgICAgICAkLndpa2koJiMzOTsmbHQ7Jmx0O3J1biBVSS5zYXZlcygpJmd0OyZndDsmIzM5Oyk7CiAgICAgICAgICAgICZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICZxdW90O0Z1bGwgU2NyZWVuJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgc2V0dXAudG9nZ2xlRnVsbFNjcmVlbigpOwogICAgICAgICAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDc4IiBuYW1lPSJkaXNjbGFpbWVyIiB0YWdzPSJiZzEgbm90aG91ciIgcG9zaXRpb249Ijk3NSw1OTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtwYW5lbCZxdW90OyZndDsKICAgICAgICAmbHQ7cCZndDsmIzM5OyYjMzk7TXkgUGhvbmUgaXMgTlRSJiMzOTsmIzM5OyBpcyBhbiBhZHVsdCBnYW1lIHRoYXQgY29udGFpbnMgYWdlLXJlc3RyaWN0ZWQgY29udGVudC4gWW91IG11c3QgYmUgMTggeWVhcnMgb2xkIG9yIG92ZXIgdG8gcGxheS4mbHQ7L3AmZ3Q7CiAgICAgICAgW1tJIGFtIDE4IG9yIG9sZGVyfCBkaXNjbGFpbWVyQXVkaW9dXQogICAgICAgIFtbRXhpdHwgU3RhcnRdXQogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDc5IiBuYW1lPSJkaXNjbGFpbWVyQXVkaW8iIHRhZ3M9ImJnMSBub3Rob3VyIiBwb3NpdGlvbj0iMTEwMCw1OTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtwYW5lbCZxdW90OyZndDsKICAgICAgICAmbHQ7cCZndDtUaGlzIGdhbWUgaW5jbHVkZXMgYXVkaW8gY29udGVudCwgc3BlY2lmaWNhbGx5IHdoZW4geW91IHJlY2VpdmUgb3Igc2VuZCBhIG1lc3NhZ2UuIEhvdyB3b3VsZCB5b3UgbGlrZSB0byBjb25maWd1cmUgaXQ/Jmx0Oy9wJmd0OwogICAgICAgIFtbRW5hYmxlIHNvdW5kfCBzdGFydFNldHRpbmddXQogICAgICAgIFtbRGlzYWJsZSBzb3VuZHwgc3RhcnRTZXR0aW5nXVskc291bmQgPSBmYWxzZV1dCiAgICAmbHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0ODAiIG5hbWU9InN0YXJ0U2V0dGluZyIgdGFncz0iYmcxIG5vdGhvdXIiIHBvc2l0aW9uPSIxMjI1LDU5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3BhbmVsJnF1b3Q7Jmd0OwogICAgICAgICZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvbG9nby53ZWJwJnF1b3Q7LyZndDsKICAgICAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgICAgIFdyaXRlIHlvdXIgbmFtZToKICAgICAgICAmbHQ7Jmx0O3RleHRib3ggJnF1b3Q7JG5hbWUmcXVvdDsgJnF1b3Q7Sm9zaCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICAgICBbW0NvbnRpbnVlfCBob21lXV0KICAgICZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ4MSIgbmFtZT0iYmFja1NjcmVlbiIgdGFncz0ibm90aGluZyBub3Rob3VyIiBwb3NpdGlvbj0iMTAwLDYxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkdHJhbnNpdGlvbiA9IGZhbHNlJmd0OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7YmFjay1zY3JlZW4mcXVvdDsmZ3Q7CiAgICAgICAgJmx0O2gyJmd0OyR0cmFuc2l0aW9uVGV4dCZsdDsvaDImZ3Q7CiAgICAmbHQ7L2RpdiZndDsKICAgICZsdDsmbHQ7dGltZWQgMnMmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7Z290byAmcXVvdDtob21lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0ODIiIG5hbWU9ImhvbWUiIHRhZ3M9ImJnMSBub3Rob3VyIiBwb3NpdGlvbj0iMjI1LDYxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAvKnJlZ2lvbiBob21lKi8KICAgICZsdDsmbHQ7c2V0ICRiYWNrID0gJnF1b3Q7aG9tZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRBbm5pZV9ub3RpZmljYXRpb25fMSA9PSBmYWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX25vdGlmaWNhdGlvbl8xID0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgICAgICBzZXR1cC50b2FzdCgmcXVvdDtBbm5pZSZxdW90OywmcXVvdDtIZXkgaG9uZXksIGdvb2QgbW9ybmluZyZxdW90OywgU3RhdGUudmFyaWFibGVzLmhvdXIpOwogICAgICAgICZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRUb2FzdEFubmllMiA9PSB0cnVlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVG9hc3RBbm5pZTIgPSBmYWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgICAgICBzZXR1cC50b2FzdCgmcXVvdDtBbm5pZSZxdW90OywmcXVvdDtIZXkgaG9uZXkmcXVvdDssICZxdW90OzIxOjM0JnF1b3Q7KTsKICAgICAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwoKICAgICZsdDsmbHQ7aWYgJEhhaWxleV9jaGF0U3RhdGUgPT0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18xJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgICAgICAgICBzZXR1cC50b2FzdCgmcXVvdDtIYWlsZXkmcXVvdDssJnF1b3Q7SGV5LCBhcmUgeW91IHN0aWxsIHRoZXJlPyZxdW90OywgU3RhdGUudmFyaWFibGVzLmhvdXIpOwogICAgICAgICZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CgoKICAgICZsdDsmbHQ7aWYgJEhhaWxleV9jaGF0U3RhdGUgPT0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgIHNldHVwLnRvYXN0KCZxdW90O0hhaWxleSZxdW90OywmcXVvdDtPa2F5LCBJIG5lZWQgeW91ciBoZWxwIGFnYWluJnF1b3Q7LCBTdGF0ZS52YXJpYWJsZXMuaG91cik7CiAgICAgICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKCiAgICAmbHQ7Jmx0O2lmICRBbm5pZV9jaGF0U3RhdGUgPT0gJnF1b3Q7QW5uaWVDaGF0RXAzXzEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgIHNldHVwLnRvYXN0KCZxdW90O0FubmllJnF1b3Q7LCZxdW90O0dvb2QgbW9ybmluZyBob25leSZxdW90OywgU3RhdGUudmFyaWFibGVzLmhvdXIpOwogICAgICAgICZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAKCiAgICAmbHQ7ZGl2IGlkPSZxdW90O2hvbWUtc2NyZWVuJnF1b3Q7Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7aG91ci1jb250YWluZXImcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7aG91ci1zY3JlZW4mcXVvdDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7aDEmZ3Q7JGhvdXImbHQ7L2gxJmd0OwogICAgICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2ljb24tY29udGFpbmVyJnF1b3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aG9tZV9zY3JlZW5fYnV0dG9uICZxdW90O0luc3RhdmliZSZxdW90OyAmcXVvdDtpbnN0YXZpYmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aG9tZV9zY3JlZW5fYnV0dG9uICZxdW90O05vdGVzJnF1b3Q7ICZxdW90O05vdGVzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2J1dHRvbi1hcHAmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtpbWcgc3JjPSYjMzk7YXNzZXRzL2ltZy9pY29ucy9JdGNoLmlvLndlYnAmIzM5Oy8mZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bGluayAmcXVvdDsmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtydW4gd2luZG93Lm9wZW4oJnF1b3Q7aHR0cHM6Ly90aGUtcGhvbmUtZ3V5Lml0Y2guaW8vbXktcGhvbmUtaXMtbnRyJnF1b3Q7LCAmcXVvdDtfYmxhbmsmcXVvdDspJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtidXR0b24tYXBwJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7aW1nIHNyYz0mIzM5O2Fzc2V0cy9pbWcvaWNvbnMvUGF0cmVvbi53ZWJwJiMzOTsvJmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2xpbmsgJnF1b3Q7JnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7cnVuIHdpbmRvdy5vcGVuKCZxdW90O2h0dHBzOi8vd3d3LnBhdHJlb24uY29tL1RoZVBob25lR3V5JnF1b3Q7LCAmcXVvdDtfYmxhbmsmcXVvdDspJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDtob21lX3NjcmVlbl9idXR0b24gJnF1b3Q7Sm91cm5hbCZxdW90OyAmcXVvdDtUb0RvJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2hvbWVfc2NyZWVuX2J1dHRvbiAmcXVvdDtTeXN0ZW0mcXVvdDsgJnF1b3Q7U3lzdGVtJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2hvbWVfc2NyZWVuX2J1dHRvbiAmcXVvdDtDbG9jayZxdW90OyAmcXVvdDtDbG9jayZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtob21lX3NjcmVlbl9idXR0b24gJnF1b3Q7U2V0dGluZ3MmcXVvdDsgJnF1b3Q7U2V0dGluZ3MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aG9tZV9zY3JlZW5fYnV0dG9uICZxdW90O0NyZWRpdHMmcXVvdDsgJnF1b3Q7JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2J1dHRvbi1hcHAmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtpbWcgc3JjPSYjMzk7YXNzZXRzL2ltZy9pY29ucy9EaXNjb3JkLndlYnAmIzM5Oy8mZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bGluayAmcXVvdDsmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtydW4gd2luZG93Lm9wZW4oJnF1b3Q7aHR0cHM6Ly9kaXNjb3JkLmdnL2trTU05YXZRanUmcXVvdDssICZxdW90O19ibGFuayZxdW90OykmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7Jmx0O2hvbWVfc2NyZWVuX2J1dHRvbiAmcXVvdDtQcmVtaXVtJnF1b3Q7ICZxdW90O3BhdHJvbiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtob21lX3NjcmVlbl9idXR0b24gJnF1b3Q7SG9yb3Njb3BlJnF1b3Q7ICZxdW90O0hvcm9zY29wZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKICAgICZsdDsvZGl2Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtib3R0b20tYmFyJnF1b3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aG9tZV9zY3JlZW5fYnV0dG9uICZxdW90O01lc3NhZ2VzJnF1b3Q7ICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2J1dHRvbi1hcHAmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtpbWcgc3JjPSYjMzk7YXNzZXRzL2ltZy9pY29ucy9QaG90b3Mud2VicCYjMzk7LyZndDsKICAgICAgICAgICAgJmx0OyZsdDtsaW5rICZxdW90OyZxdW90OyAmcXVvdDtwaG90byZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7YnV0dG9uLWFwcCZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2ltZyBzcmM9JiMzOTthc3NldHMvaW1nL2ljb25zL0JhY2t1cHMud2VicCYjMzk7LyZndDsKICAgICAgICAgICAgJmx0OyZsdDtsaW5rICZxdW90OyZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJC53aWtpKCYjMzk7Jmx0OyZsdDtydW4gVUkuc2F2ZXMoKSZndDsmZ3Q7JiMzOTspOwogICAgICAgICAgICAgICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0ODMiIG5hbWU9ImhvbWVfc2NyZWVuX2J1dHRvbiIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDYxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7Jmx0OyZsdDt3aWRnZXQgJnF1b3Q7aG9tZV9zY3JlZW5fYnV0dG9uJnF1b3Q7Jmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtidXR0b24tYXBwJnF1b3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgX2ltZyA9ICZxdW90O2Fzc2V0cy9pbWcvaWNvbnMvJnF1b3Q7KyRhcmdzWzBdKyZxdW90Oy53ZWJwJnF1b3Q7Jmd0OyZndDsKICAgICZsdDtpbWcgQHNyYz0mIzM5O19pbWcmIzM5Oy8mZ3Q7CiAgICAmbHQ7Jmx0O2xpbmsgJnF1b3Q7JnF1b3Q7ICRhcmdzWzFdJmd0OyZndDsKICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7L2RpdiZndDsKJmx0OyZsdDsvd2lkZ2V0Jmd0OyZndDsmbHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ4NCIgbmFtZT0ibWVzc2FnZV9hcHAiIHRhZ3M9Im1hcHAgbm90aG91ciIgcG9zaXRpb249IjQ3NSw2MTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwovKnJlZ2lvbiBtZXNzYWdlIGFwcCovIAoKJmx0OyZsdDtpZiAkdHJhbnNpdGlvbiA9PSB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7Z290byAmcXVvdDtiYWNrU2NyZWVuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwoKJmx0OyZsdDtpZiAkY2FwID09IDEgJmFtcDsmYW1wOyAkZW5kT2ZDb250ZW50ID09IHRydWUgJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRlbmRPZkNvbnRlbnQgPSBmYWxzZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkY2FwID0gMiZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXQgPSB0cnVlICZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSA9ICZxdW90O0hhaWxleUVwMl8xJnF1b3Q7ICZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDskbmFtZSwgaXQmIzM5O3MgbWUgYWdhaW4uIEhvdyYjMzk7cyBldmVyeXRoaW5nIGdvaW5nPyZxdW90OyAmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nID0gJEhhaWxleV9jaGF0TG9nLnNsaWNlKC01KSZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKCiZsdDsmbHQ7aWYgJGNhcCA9PSAyICZhbXA7JmFtcDsgJGVuZE9mQ29udGVudCA9PSB0cnVlICZhbXA7JmFtcDsgJHBtZGxwID09IHRydWUmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJGVuZE9mQ29udGVudCA9IGZhbHNlJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRjYXAgPSAzJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdCA9IHRydWUgJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18xJnF1b3Q7ICZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtIZXkgJG5hbWUsIGFyZSB5b3Ugc3RpbGwgdGhlcmU/JnF1b3Q7ICZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cgPSAkSGFpbGV5X2NoYXRMb2cuc2xpY2UoLTUpJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwoKCiZsdDsmbHQ7aGVhZGVyICZxdW90O0NvbnRhY3RzJnF1b3Q7ICZxdW90OyZxdW90OyAmcXVvdDtob21lJnF1b3Q7IHRydWUmZ3Q7Jmd0OwombHQ7ZGl2IHN0eWxlPSZxdW90O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDIycHg7JnF1b3Q7Jmd0OwoKJmx0OyZsdDtpZiAkY2FwID09IDIgJmFtcDsmYW1wOyAkZW5kT2ZDb250ZW50ID09IHRydWUgJmFtcDsmYW1wOyAkcG1kbHAgPT0gZmFsc2UmZ3Q7Jmd0OwogICAgJmx0OyZsdDttZXNzYWdlbyAmcXVvdDtkZXYmcXVvdDsgJGRldl9sYXN0ICRWYW5lc3NhX2xhc3RfaG91ciZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2VpZiAkY2FwID09IDMgJmFtcDsmYW1wOyAkZW5kT2ZDb250ZW50ID09IHRydWUmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bWVzc2FnZW8gJnF1b3Q7ZGV2JnF1b3Q7ICRkZXZfbGFzdCAkVmFuZXNzYV9sYXN0X2hvdXImZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CgombHQ7Jmx0O21lc3NhZ2VvICZxdW90O0FubmllJnF1b3Q7ICRBbm5pZV9sYXN0ICRBbm5pZV9sYXN0X2hvdXImZ3Q7Jmd0OwoKJmx0OyZsdDtpZiAkTmFvbWlfdmlzaWJsZSA9PSB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7bWVzc2FnZW8gJnF1b3Q7TmFvbWkmcXVvdDsgJE5hb21pX2xhc3QgJE5hb21pX2xhc3RfaG91ciZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKCiZsdDsmbHQ7aWYgJFZhbmVzc2FfdmlzaWJsZSA9PSB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7bWVzc2FnZW8gJnF1b3Q7VmFuZXNzYSZxdW90OyAkVmFuZXNzYV9sYXN0ICRWYW5lc3NhX2xhc3RfaG91ciZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKCiZsdDsmbHQ7aWYgJEhhaWxleV92aXNpYmxlID09IHRydWUmZ3Q7Jmd0OwogICAgJmx0OyZsdDttZXNzYWdlbyAmcXVvdDtIYWlsZXkmcXVvdDsgJEhhaWxleV9sYXN0ICRIYWlsZXlfbGFzdF9ob3VyJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwoKJmx0OyZsdDtpZiAkUGhpbGxpcHNfdmlzaWJsZSA9PSB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7bWVzc2FnZW8gJnF1b3Q7UGhpbGxpcHMmcXVvdDsgJFBoaWxsaXBzX2xhc3QgJFBoaWxsaXBzX2xhc3RfaG91ciZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKCiZsdDsmbHQ7aWYgJEplbm5hX3Zpc2libGUgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O21lc3NhZ2VvICZxdW90O0plbm5hJnF1b3Q7ICRKZW5uYV9sYXN0ICRKZW5uYV9sYXN0X2hvdXImZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CgombHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0ODUiIG5hbWU9IlRvRG8iIHRhZ3M9InRvZG8gbm90aG91ciIgcG9zaXRpb249IjYwMCw2MTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2hlYWRlciAmcXVvdDtUby1EbyZxdW90OyAmcXVvdDsmcXVvdDsgJnF1b3Q7aG9tZSZxdW90OyB0cnVlJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDtwYWRkaW5nLWNvbnRhaW5lciZxdW90OyZndDsKJmx0O3AmZ3Q7SGVyZSB5b3UgY2FuIGNoZWNrIHRoZSBhY2hpZXZlbWVudHMgeW914oCZdmUgYWxyZWFkeSB1bmxvY2tlZC4mbHQ7L3AmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7YWNoaWV2ZW1lbnRzX3RpbGUmcXVvdDsmZ3Q7VW5sb2NrZWQ6Jmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7aWYgJGVwMSA9PSB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7dG9kb19idXR0b24gJnF1b3Q7YXNzZXRzL2ltZy9hY2hpZXZlbWVudHMvYWNoNC53ZWJwJnF1b3Q7ICZxdW90O0VwaXNvZGUgMSAtIEZhciBGcm9tIEhvbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7aWYgJG5hb21pX29mZmVyID09IHRydWUmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0b2RvX2J1dHRvbiAmcXVvdDthc3NldHMvaW1nL2FjaGlldmVtZW50cy9hY2gxLndlYnAmcXVvdDsgJnF1b3Q7QSBEYW5nZXJvdXMgQWxseT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7aWYgJGVwMiA9PSB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7dG9kb19idXR0b24gJnF1b3Q7YXNzZXRzL2ltZy9hY2hpZXZlbWVudHMvYWNoMy53ZWJwJnF1b3Q7ICZxdW90O0VwaXNvZGUgMiAtIEFyZSBZb3UgU3VyZT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CgombHQ7Jmx0O2lmICRKZW5uYUFjaGl2ZW1lbnQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RvZG9fYnV0dG9uICZxdW90O2Fzc2V0cy9pbWcvYWNoaWV2ZW1lbnRzL2FjaDIud2VicCZxdW90OyAmcXVvdDtBbiBPbGQgRnJpZW5kJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwoKJmx0OyZsdDtpZiAkaGFpbGV5X3ViID09IHRydWUmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0b2RvX2J1dHRvbiAmcXVvdDthc3NldHMvaW1nL2FjaGlldmVtZW50cy9hY2g1LndlYnAmcXVvdDsgJnF1b3Q7QSBIZWxwaW5nIEhhbmQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CgombHQ7Jmx0O2lmICRlcDMgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RvZG9fYnV0dG9uICZxdW90O2Fzc2V0cy9pbWcvYWNoaWV2ZW1lbnRzL2FjaDYud2VicCZxdW90OyAmcXVvdDtFcGlzb2RlIDMgLSBPbmUgRm9yIEFsbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKCgombHQ7ZGl2IGNsYXNzPSZxdW90O2FjaGlldmVtZW50c190aWxlJnF1b3Q7Jmd0O1BlbmRpbmc6Jmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7aWYgJGVwMSA9PSBmYWxzZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RvZG9fYnV0dG9uICZxdW90O2Fzc2V0cy9pbWcvbG9jay53ZWJwJnF1b3Q7ICZxdW90O0VwaXNvZGUgMSAtIEZhciBGcm9tIEhvbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7aWYgJG5hb21pX29mZmVyID09IGZhbHNlJmd0OyZndDsKICAgICZsdDsmbHQ7dG9kb19idXR0b24gJnF1b3Q7YXNzZXRzL2ltZy9sb2NrLndlYnAmcXVvdDsgJnF1b3Q7QSBEYW5nZXJvdXMgQWxseT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7aWYgJGVwMiA9PSBmYWxzZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RvZG9fYnV0dG9uICZxdW90O2Fzc2V0cy9pbWcvbG9jay53ZWJwJnF1b3Q7ICZxdW90O0VwaXNvZGUgMiAtIEFyZSBZb3UgU3VyZT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7aWYgJEplbm5hQWNoaXZlbWVudCA9PSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7dG9kb19idXR0b24gJnF1b3Q7YXNzZXRzL2ltZy9sb2NrLndlYnAmcXVvdDsgJnF1b3Q7QW4gT2xkIEZyaWVuZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKCiZsdDsmbHQ7aWYgJGhhaWxleV91YiA9PSBmYWxzZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RvZG9fYnV0dG9uICZxdW90O2Fzc2V0cy9pbWcvbG9jay53ZWJwJnF1b3Q7ICZxdW90O0EgSGVscGluZyBIYW5kJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwoKJmx0OyZsdDtpZiAkZXAzID09IGZhbHNlJmd0OyZndDsKICAgICZsdDsmbHQ7dG9kb19idXR0b24gJnF1b3Q7YXNzZXRzL2ltZy9sb2NrLndlYnAmcXVvdDsgJnF1b3Q7RXBpc29kZSAzIC0gT25lIEZvciBBbGwmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CgoKCiZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ4NiIgbmFtZT0idG9kb19idXR0b24iIHRhZ3M9IiIgcG9zaXRpb249IjcyNSw2MTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OyZsdDsmbHQ7d2lkZ2V0ICZxdW90O3RvZG9fYnV0dG9uJnF1b3Q7Jmd0OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7dG9kb19idXR0b24mcXVvdDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDt0b2RvX2ljb24mcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtpbWcgQHNyYz0mIzM5OyRhcmdzWzBdJiMzOTsvJmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7dG9kb190ZXh0JnF1b3Q7Jmd0OwogICAgICAgICAgICAkYXJnc1sxXQogICAgICAgICZsdDsvZGl2Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L3dpZGdldCZndDsmZ3Q7Jmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0ODciIG5hbWU9Ik5vdGVzIiB0YWdzPSJub3RlcyBub3Rob3VyIiBwb3NpdGlvbj0iODUwLDYxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aGVhZGVyICZxdW90O05vdGVzJnF1b3Q7ICZxdW90OyZxdW90OyAmcXVvdDtob21lJnF1b3Q7IHRydWUmZ3Q7Jmd0OwogICAgJmx0O2RpdiBpZD0mcXVvdDtwYWRkaW5nLWNvbnRhaW5lciZxdW90OyZndDsKICAgICAgICAmbHQ7Jmx0O25vdGVzX2J1dHRvbiAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtub3Rlc19idXR0b24gJnF1b3Q7TmFvbWkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bm90ZXNfYnV0dG9uICZxdW90O1ZhbmVzc2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bm90ZXNfYnV0dG9uICZxdW90O0hhaWxleSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtub3Rlc19idXR0b24gJnF1b3Q7UGhpbGxpcHMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bm90ZXNfYnV0dG9uICZxdW90O0plbm5hJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ4OCIgbmFtZT0ibm90ZXNfYnV0dG9uIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsNjEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsmbHQ7Jmx0O3dpZGdldCAmcXVvdDtub3Rlc19idXR0b24mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtub3Rlc19idXR0b24mcXVvdDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICZxdW90OyZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7c2V0IF9nbyA9ICRhcmdzWzBdKyZxdW90O19ub3RlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtnb3RvIF9nbyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtub3Rlc190ZXh0JnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2lmICRhcmdzWzBdICE9ICZxdW90O1BoaWxsaXBzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICRhcmdzWzBdCiAgICAgICAgICAgICAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgIE1yLiBQaGlsbGlwcwogICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgICAgIAogICAgICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2ZvbGRlci53ZWJwJnF1b3Q7LyZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O25vdGVzX2ljb24mcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7c2V0IF9hdmF0YXIgPSAmcXVvdDthc3NldHMvaW1nLyZxdW90OyskYXJnc1swXSsmcXVvdDtfYXZhdGFyLndlYnAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7aW1nIEBzcmM9JnF1b3Q7X2F2YXRhciZxdW90Oy8mZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKJmx0OyZsdDsvd2lkZ2V0Jmd0OyZndDsmbHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ4OSIgbmFtZT0iU2V0dGluZ3MiIHRhZ3M9ImRhcmsgbm90aG91ciIgcG9zaXRpb249IjExMDAsNjEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtoZWFkZXIgJnF1b3Q7U2V0dGluZ3MmcXVvdDsgJnF1b3Q7JnF1b3Q7ICZxdW90O2hvbWUmcXVvdDsgdHJ1ZSZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7cGFkZGluZy1jb250YWluZXImcXVvdDsmZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3NldHRpbmdfY29udGFpbmVyJnF1b3Q7Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7aWNvbl9zZXR0aW5nJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7aW1nIHNyYz0mIzM5O2Fzc2V0cy9pbWcvc291bmQud2VicCYjMzk7LyZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3RleHRfc2V0dGluZyZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2RpdiZndDtUZXh0IFNvdW5kICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDtkaXYmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtzZXR0aW5nX2J1dHRvbiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKICAgICZsdDsmbHQ7c2V0ICRiYWNrID0gJnF1b3Q7U2V0dGluZ3MmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtzZXR0aW5nX2NvbnRhaW5lciZxdW90OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJnF1b3Q7JnF1b3Q7ICZxdW90O3BhdHJvbiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtpY29uX3NldHRpbmcmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtpbWcgc3JjPSYjMzk7YXNzZXRzL2ltZy9wcmVtaXVtLTEud2VicCYjMzk7LyZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3RleHRfc2V0dGluZyZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2RpdiZndDtQcmVtaXVtIE1vZGUmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICZsdDsvZGl2Jmd0OwoKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7c2V0dGluZ19jb250YWluZXImcXVvdDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICZxdW90OyZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgIHNldHVwLnRvZ2dsZUZ1bGxTY3JlZW4oKTsKICAgICAgICAgICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2ljb25fc2V0dGluZyZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2ltZyBzcmM9JiMzOTthc3NldHMvaW1nL2Z1bGwud2VicCYjMzk7LyZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3RleHRfc2V0dGluZyZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2RpdiZndDtFbmFibGUgRnVsbHNjcmVlbiZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CgombHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0OTAiIG5hbWU9InN3aXRjaF9idXR0b24iIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsNjEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsmbHQ7Jmx0O3dpZGdldCAmcXVvdDtzd2l0Y2hfYnV0dG9uJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJGFyZ3NbMF0gPT0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9zX29uLndlYnAmcXVvdDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9zX29mZi53ZWJwJnF1b3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0Oy93aWRnZXQmZ3Q7Jmd0OyZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDkxIiBuYW1lPSJzZXR0aW5nX2J1dHRvbiIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDYyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3NldHRpbmdfYnV0dG9uJnF1b3Q7Jmd0OwogICAgICAgICZsdDtkaXYgaWQ9JnF1b3Q7dGVzdGJ1dHRvbiZxdW90OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtzd2l0Y2hfYnV0dG9uICRzb3VuZCZndDsmZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDtidXR0b24gJnF1b3Q7JnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtzZXQgJHNvdW5kID0gISRzb3VuZCZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7cmVwbGFjZSAgJnF1b3Q7I3Rlc3RidXR0b24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzd2l0Y2hfYnV0dG9uICRzb3VuZCZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2J1dHRvbiZndDsmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0OTIiIG5hbWU9InBhdHJvbiIgdGFncz0iZGFyayBub3Rob3VyIiBwb3NpdGlvbj0iMjI1LDYyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aGVhZGVyICZxdW90O1ByZW1pdW0gTW9kZSZxdW90OyAmcXVvdDsmcXVvdDsgJGJhY2sgdHJ1ZSZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7cGFkZGluZy1jb250YWluZXImcXVvdDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRwbWRscCBpcyBmYWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtwcmVtaXVtX2NvbnRhaW5lciZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9sb2dvLndlYnAmcXVvdDsvJmd0OwogICAgICAgICAgICAmbHQ7YSB0YXJnZXQ9JnF1b3Q7X2JsYW5rJnF1b3Q7IHJlbD0mcXVvdDtub29wZW5lciBub3JlZmVycmVyJnF1b3Q7IGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucGF0cmVvbi5jb20vVGhlUGhvbmVHdXkmcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9wYXRyZW9uLndlYnAmcXVvdDsmZ3Q7Jmx0Oy9hJmd0OwogICAgICAgICAgICAmbHQ7ZGl2Jmd0O0VudGVyIHlvdXIgUGF0cmVvbiBjb2RlIGJlbGxvdyB0byB1bmxvY2sgYWxsIHByZW1pdW0gY29udGVudDombHQ7L2RpdiZndDsKICAgICAgICAgICAgJmx0OyZsdDt0ZXh0Ym94ICZxdW90OyRhZnFsb3AmcXVvdDsgJnF1b3Q7JnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICAgICAgICAgW1tVbmxvY2t8cGF0cm9uVGVzdF1dCiAgICAgICAgICAgIAogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7cHJlbWl1bV9jb250YWluZXImcXVvdDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9sb2dvLndlYnAmcXVvdDsvJmd0OwogICAgICAgICAgICAgICAgJmx0O2RpdiBzdHlsZT0mcXVvdDttYXJnaW4tdG9wOiAxMnB4OyZxdW90OyZndDtUaGUgcHJlbWl1bSBtb2RlIGlzIG5vdyBhY3RpdmF0ZWQsIHRoYW5rIHlvdSBzbyBtdWNoIGZvciB5b3VyIHN1cHBvcnQsIHRoaXMgZ2FtZSB3b3VsZG7igJl0IGJlIHBvc3NpYmxlIHdpdGhvdXQgeW91ciBoZWxwLiZsdDsvZGl2Jmd0OwogICAgICAgICAgICAmbHQ7L2RpdiZndDsgCiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ5MyIgbmFtZT0icGF0cm9uVGVzdCIgdGFncz0iZGFyayBub3Rob3VyIiBwb3NpdGlvbj0iMzUwLDYyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aGVhZGVyICZxdW90O1ByZW1pdW0gTW9kZSZxdW90OyAmcXVvdDsmcXVvdDsgJnF1b3Q7U2V0dGluZ3MmcXVvdDsgdHJ1ZSZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7cGFkZGluZy1jb250YWluZXImcXVvdDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgIHNldHVwLnBhdHJvbihTdGF0ZS52YXJpYWJsZXMuYWZxbG9wKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKCiZsdDsmbHQ7aWYgX3BhdHJlb25DaGVjayZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2dvdG8gJnF1b3Q7cGF0cm9uX3VubG9jayZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7Z290byAmcXVvdDtwYXRyb25fbG9jayZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDk0IiBuYW1lPSJwYXRyb25fdW5sb2NrIiB0YWdzPSJkYXJrIG5vdGhvdXIiIHBvc2l0aW9uPSI0NzUsNjIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtoZWFkZXIgJnF1b3Q7UHJlbWl1bSBNb2RlJnF1b3Q7ICZxdW90OyZxdW90OyAmcXVvdDtob21lJnF1b3Q7IHRydWUmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O3BhZGRpbmctY29udGFpbmVyJnF1b3Q7Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtwcmVtaXVtX2NvbnRhaW5lciZxdW90OyZndDsKICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2xvZ28ud2VicCZxdW90Oy8mZ3Q7CiAgICAgICAgJmx0O2RpdiBzdHlsZT0mcXVvdDttYXJnaW4tdG9wOiAxMnB4OyZxdW90OyZndDtUaGUgcHJlbWl1bSBtb2RlIGlzIG5vdyBhY3RpdmF0ZWQsIHRoYW5rIHlvdSBzbyBtdWNoIGZvciB5b3VyIHN1cHBvcnQsIHRoaXMgZ2FtZSB3b3VsZG7igJl0IGJlIHBvc3NpYmxlIHdpdGhvdXQgeW91ciBoZWxwLiZsdDsvZGl2Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ5NSIgbmFtZT0icGF0cm9uX2xvY2siIHRhZ3M9ImRhcmsgbm90aG91ciIgcG9zaXRpb249IjYwMCw2MjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2hlYWRlciAmcXVvdDtQcmVtaXVtIE1vZGUmcXVvdDsgJnF1b3Q7JnF1b3Q7ICRiYWNrIHRydWUmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O3BhZGRpbmctY29udGFpbmVyJnF1b3Q7Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtwcmVtaXVtX2NvbnRhaW5lciZxdW90OyZndDsKICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2xvZ28ud2VicCZxdW90Oy8mZ3Q7CiAgICAgICAgJmx0O2RpdiZndDsmbHQ7aDImZ3Q7SW5jb3JyZWN0IGNvZGUmbHQ7L2gyJmd0OyZsdDsvZGl2Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ5NiIgbmFtZT0icGhvdG8iIHRhZ3M9ImRhcmsgbm90aG91ciIgcG9zaXRpb249IjcyNSw2MjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2hlYWRlciAmcXVvdDtQaG90b3MmcXVvdDsgJnF1b3Q7JnF1b3Q7ICZxdW90O2hvbWUmcXVvdDsgdHJ1ZSZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7cGFkZGluZy1jb250YWluZXImcXVvdDsmZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3Bob3Rvc19jb250YWluZXImcXVvdDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtmb3IgX2kgcmFuZ2UgJHBob3RvcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZV9pbWcgX2kmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2ZvciZndDsmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDk3IiBuYW1lPSJTeXN0ZW0iIHRhZ3M9ImRhcmsgbm90aG91ciIgcG9zaXRpb249Ijg1MCw2MjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2hlYWRlciAmcXVvdDtTeXN0ZW0mcXVvdDsgJnF1b3Q7JnF1b3Q7ICZxdW90O2hvbWUmcXVvdDsgdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0IF9uZXh0ID0gJGZyZWVDYXArMSZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7cGFkZGluZy1jb250YWluZXImcXVvdDsmZ3Q7CiAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2xvZ28ud2VicCZxdW90OyZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3BhbmVsX2JhY2smcXVvdDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpZiAkcG1kbHAgPT0gZmFsc2UmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0O2RpdiZndDsmbHQ7aDImZ3Q7RXBpc29kZSAkZnJlZUNhcCAmbHQ7c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjojNjY2O2ZvbnQtc2l6ZTogMXJlbTsmcXVvdDsmZ3Q7KEphbnVhcnkgMzAsIDIwMjUpJmx0Oy9zcGFuJmd0OyZsdDsvaDImZ3Q7Jmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7ZGl2IHN0eWxlPSZxdW90O2NvbG9yOiNmODY3NTQ7bWFyZ2luLXRvcDogMTJweDsmcXVvdDsmZ3Q7RXBpc29kZSBfbmV4dCBub3cgYXZhaWxhYmxlIGZvciBzdWJzY3JpYmVycyBvbiBQYXRyZW9uLiZsdDsvZGl2Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0O2RpdiZndDsmbHQ7aDImZ3Q7RXBpc29kZSBfbmV4dCAmbHQ7c3BhbiBzdHlsZT0mcXVvdDtjb2xvcjojNjY2O2ZvbnQtc2l6ZTogMXJlbTsmcXVvdDsmZ3Q7KEphbnVhcnkgMzAsIDIwMjUpJmx0Oy9zcGFuJmd0OyZsdDsvaDImZ3Q7Jmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICAgICAgICZsdDtkaXYgc3R5bGU9JnF1b3Q7Y29sb3I6I2Y4Njc1NDttYXJnaW4tdG9wOiAxMnB4OyZxdW90OyZndDtZb3UgYXJlIHBsYXlpbmcgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHRoZSBnYW1lLiZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsvZGl2Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICAmbHQ7Jmx0O2lmICRwbWRscCA9PSBmYWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0O2EgdGFyZ2V0PSZxdW90O19ibGFuayZxdW90OyByZWw9JnF1b3Q7bm9vcGVuZXIgbm9yZWZlcnJlciZxdW90OyBocmVmPSZxdW90O2h0dHBzOi8vd3d3LnBhdHJlb24uY29tL1RoZVBob25lR3V5JnF1b3Q7Jmd0OyZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvcGF0cmVvbjIud2VicCZxdW90OyZndDsmbHQ7L2EmZ3Q7CiAgICAgICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtzZXR0aW5nX2NvbnRhaW5lciZxdW90OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJnF1b3Q7JnF1b3Q7ICZxdW90O3BhdHJvbiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtpY29uX3NldHRpbmcmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtpbWcgc3JjPSYjMzk7YXNzZXRzL2ltZy9wcmVtaXVtLTEud2VicCYjMzk7LyZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3RleHRfc2V0dGluZyZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2RpdiZndDtBbHJlYWR5IGEgUGF0cmVvbiBzdWJzY3JpYmVyPyZsdDticiZndDtVbmxvY2sgcHJlbWl1bSBtb2RlLiZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ5OCIgbmFtZT0iSG9yb3Njb3BlIiB0YWdzPSJob3Jvc2NvcGUgbm90aG91ciIgcG9zaXRpb249Ijk3NSw2MjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2hlYWRlciAmcXVvdDtIb3Jvc2NvcGUmcXVvdDsgJnF1b3Q7JnF1b3Q7ICZxdW90O2hvbWUmcXVvdDsgdHJ1ZSZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7cGFkZGluZy1jb250YWluZXImcXVvdDsmZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2hvcm9zY29wZV9jb250YWluZXImcXVvdDsmZ3Q7CiAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9sb2dvLndlYnAmcXVvdDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3ByaW50ICRob3Jvc2NvcGUucmFuZG9tKCkmZ3Q7Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ5OSIgbmFtZT0iQ2xvY2siIHRhZ3M9ImRhcmsgY2xvY2sgbm90aG91ciIgcG9zaXRpb249IjExMDAsNjIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtzZXQgJGJhY2sgPSAmcXVvdDtDbG9jayZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7aGVhZGVyICZxdW90O0Nsb2NrJnF1b3Q7ICZxdW90OyZxdW90OyAmcXVvdDtob21lJnF1b3Q7IHRydWUmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O3BhZGRpbmctY29udGFpbmVyJnF1b3Q7Jmd0OwogICAgJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOiBjZW50ZXI7JnF1b3Q7Jmd0O0hlcmUgeW91IGNhbiBsb2FkIGFueSBjaGFwdGVyIGF2YWlsYWJsZSBpbiB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBnYW1lLiZsdDsvZGl2Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7Y2xvY2tfcGFuZWwmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7Y2xvY2tfaW1nJnF1b3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lcDEud2VicCZxdW90OyZndDsKICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7Y2xvY2tfdGV4dCZxdW90OyZndDsKICAgICAgICAgICAgICAgICZsdDtoMyZndDtFcGlzb2RlIDEmbHQ7L2gzJmd0OwogICAgICAgICAgICAgICAgJmx0O2RpdiBzdHlsZT0mcXVvdDttYXJnaW4tdG9wOiA1cHg7JnF1b3Q7IGNsYXNzPSZxdW90O2dyZXkmcXVvdDsmZ3Q7RmFyIEZyb20gSG9tZSZsdDsvZGl2Jmd0OwogICAgICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtjbG9ja19pY29uJnF1b3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9QbGF5LndlYnAmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2xpbmsgJnF1b3Q7JnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICBzdGF0ZS5yZXN0YXJ0KCk7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICZsdDsvZGl2Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtjbG9ja19wYW5lbCZxdW90OyZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2Nsb2NrX2ltZyZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lcDIud2VicCZxdW90OyZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2Nsb2NrX3RleHQmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtoMyZndDtFcGlzb2RlIDImbHQ7L2gzJmd0OwogICAgICAgICAgICAgJmx0O2RpdiBzdHlsZT0mcXVvdDttYXJnaW4tdG9wOiA1cHg7JnF1b3Q7IGNsYXNzPSZxdW90O2dyZXkmcXVvdDsmZ3Q7QXJlIHlvdSBzdXJlPyZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7Y2xvY2tfaWNvbiZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9QbGF5LndlYnAmcXVvdDsmZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICZxdW90OyZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDsxMzoyMSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJGVuZE9mQ29udGVudCA9IGZhbHNlJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkY2FwID0gMiZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0ID0gdHJ1ZSAmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlID0gJnF1b3Q7SGFpbGV5RXAyXzEmcXVvdDsgJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDskbmFtZSwgaXQmIzM5O3MgbWUgYWdhaW4uIEhvdyYjMzk7cyBldmVyeXRoaW5nIGdvaW5nPyZxdW90OyAmZ3Q7Jmd0OwoKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cgPSAkY2FwMkhhaWxleSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cgPSAkY2FwMkFubmllJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZyA9ICRjYXAyUGhpbGxpcHMmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nID0gJGNhcDJOYW9taSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdExvZyA9ICRjYXAyVmFuZXNzYSZndDsmZ3Q7CgogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMV8xJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSA9ICZxdW90O0hhaWxleUVwMl8xJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlID0gJnF1b3Q7TmFvbWlTdGFydDFfMTNiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdFN0YXRlID0gJnF1b3Q7UGhpbGxpcHNTdGFydDFfNiZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdFN0YXRlID0gJnF1b3Q7VmFuZXNzYUludHJvMV85JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXQgPSBmYWxzZSAmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0ID0gZmFsc2UgJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdCA9IGZhbHNlICZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdCA9IGZhbHNlICZndDsmZ3Q7CgogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc192aXNpYmxlID0gdHJ1ZSAmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV92aXNpYmxlID0gdHJ1ZSAmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX3Zpc2libGUgPSB0cnVlICZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV92aXNpYmxlID0gdHJ1ZSAmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7VW5kZXJzdG9vZCZxdW90OyAmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7SeKAmW0gZG9uZSB0YWxraW5nIHRvIHlvdSZxdW90OyAmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtZb3UgdG9vLCAkbmFtZSZxdW90OyAmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBsb3ZlIHlvdSBtb3JlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfdmlzaWJsZSA9IHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAgICAgc2V0dXAudG9hc3QoJnF1b3Q7SGFpbGV5JnF1b3Q7LCZxdW90O0l0JiMzOTtzIG1lIGFnYWluLiBIb3cmIzM5O3MgZXZlcnl0aGluZyBnb2luZz8mcXVvdDssIFN0YXRlLnZhcmlhYmxlcy5ob3VyKTsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7Z290byAmcXVvdDtob21lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICZsdDsvZGl2Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtjbG9ja19wYW5lbCZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtjbG9ja19pbWcmcXVvdDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2VwMy53ZWJwJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtjbG9ja190ZXh0JnF1b3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0O2gzJmd0O0VwaXNvZGUgMyZsdDsvaDMmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O2lmICRwbWRscCA9PSBmYWxzZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0O2RpdiBzdHlsZT0mcXVvdDttYXJnaW4tdG9wOiA1cHg7JnF1b3Q7IGNsYXNzPSZxdW90O29yYW5nZSZxdW90OyZndDtBdmFpbGFibGUgZm9yIFBhdHJlb24gc3VwcG9ydGVycyZsdDsvZGl2Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgICAgICZsdDtkaXYgc3R5bGU9JnF1b3Q7bWFyZ2luLXRvcDogNXB4OyZxdW90OyBjbGFzcz0mcXVvdDtncmV5JnF1b3Q7Jmd0O09uZSBmb3IgYWxsJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2Nsb2NrX2ljb24mcXVvdDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL1BsYXkud2VicCZxdW90OyZndDsKICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bGluayAmcXVvdDsmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtpZiAkcG1kbHAgPT0gZmFsc2UmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7Z290byAmcXVvdDtwYXRyb24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRob3VyID0gJnF1b3Q7MjM6MjEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkZW5kT2ZDb250ZW50ID0gZmFsc2UmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkY2FwID0gMyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdCA9IHRydWUgJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzEmcXVvdDsgJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SGV5ICRuYW1lLCBhcmUgeW91IHN0aWxsIHRoZXJlPyZxdW90OyAmZ3Q7Jmd0OwoKICAgICAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nID0gJGNhcDNIYWlsZXkmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZyA9ICRjYXAzQW5uaWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZyA9ICRjYXAyUGhpbGxpcHMmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZyA9ICRjYXAyTmFvbWkmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0TG9nID0gJGNhcDJWYW5lc3NhJmd0OyZndDsKCgogICAgICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTgmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSA9ICZxdW90O0hhaWxleUNoYXRFcDNfMSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRTdGF0ZSA9ICZxdW90O1BoaWxsaXBzU3RhcnQxXzYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0U3RhdGUgPSAmcXVvdDtWYW5lc3NhSW50cm8xXzkmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXQgPSBmYWxzZSAmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdCA9IGZhbHNlICZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0ID0gZmFsc2UgJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdCA9IGZhbHNlICZndDsmZ3Q7CgogICAgICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfdmlzaWJsZSA9IHRydWUgJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3Zpc2libGUgPSB0cnVlICZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX3Zpc2libGUgPSB0cnVlICZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfdmlzaWJsZSA9IHRydWUgJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtVbmRlcnN0b29kJnF1b3Q7ICZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7SeKAmW0gZG9uZSB0YWxraW5nIHRvIHlvdSZxdW90OyAmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0ID0gJnF1b3Q7WW91IHRvbywgJG5hbWUmcXVvdDsgJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtHb29kIG5pZ2h0LCBob25leSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRKZW5uYV92aXNpYmxlID0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHVwLnRvYXN0KCZxdW90O0hhaWxleSZxdW90OywmcXVvdDtIZXksIGFyZSB5b3Ugc3RpbGwgdGhlcmU/JnF1b3Q7LCBTdGF0ZS52YXJpYWJsZXMuaG91cik7CiAgICAgICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7Z290byAmcXVvdDtob21lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTAwIiBuYW1lPSJwYWRkaW5nIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDYyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7Jmx0OyZsdDt3aWRnZXQgJnF1b3Q7cGFkZGluZyZxdW90OyZndDsmZ3Q7CiZsdDshLS1yZWdpb24gcGFkZGluZyAtLSZndDsKJmx0O2RpdiBpZD0mcXVvdDtwYWRkaW5nLWJveCZxdW90OyZndDsmbHQ7L2RpdiZndDsKJmx0OyZsdDsvd2lkZ2V0Jmd0OyZndDsmbHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPg==