JavaScript must be enabled to play.
Browser lacks capabilities required to play.
Upgrade or switch to another browser.
Loading…
PHN0eWxlIHJvbGU9InN0eWxlc2hlZXQiIGlkPSJ0d2luZS11c2VyLXN0eWxlc2hlZXQiIHR5cGU9InRleHQvdHdpbmUtY3NzIj4jdWktYmFye2Rpc3BsYXk6bm9uZX1AZm9udC1mYWNle2ZvbnQtZmFtaWx5OlJhd3Nvbk1lZGl1bTtzcmM6dXJsKGFzc2V0cy9mb250L1Jhd3Nvbk1lZGl1bS5vdGYpfWltZ3std2Via2l0LXVzZXItZHJhZzpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtwb2ludGVyLWV2ZW50czpub25lfWJvZHksaHRtbHttYXgtd2lkdGg6MTAwJTtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG99Ym9keXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7bWFyZ2luOjAhaW1wb3J0YW50O3BhZGRpbmc6MCFpbXBvcnRhbnQ7Zm9udC1mYW1pbHk6UmF3c29uTWVkaXVtIWltcG9ydGFudDtmb250LXNpemU6MS4xcmVtIWltcG9ydGFudH1odG1se21hcmdpbjowIWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50fSNzdG9yeXtiYWNrZ3JvdW5kLWNvbG9yOiMzYjNiM2I7bWFyZ2luOjAgYXV0byFpbXBvcnRhbnQ7bWluLWhlaWdodDpjYWxjKDEwMGR2aCAtIDQ4cHgpO21heC13aWR0aDo0MDBweDtwb3NpdGlvbjpyZWxhdGl2ZTtwYWRkaW5nOjI0cHh9LmxpbmstaW50ZXJuYWx7ZGlzcGxheTpibG9jazttaW4td2lkdGg6MjAwcHghaW1wb3J0YW50O2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYztib3JkZXItcmFkaXVzOjE2cHg7cGFkZGluZzoxMnB4O3RleHQtYWxpZ246Y2VudGVyO3RleHQtZGVjb3JhdGlvbjpub25lIWltcG9ydGFudDtjb2xvcjojMjQyNDI0IWltcG9ydGFudDtmb250LXdlaWdodDo3MDB9LnBhc3NhZ2UgaW1ne2hlaWdodDphdXRvO3dpZHRoOmF1dG87bWF4LXdpZHRoOjEwMCU7Ym9yZGVyLXJhZGl1czoxMHB4O21heC1oZWlnaHQ6NTAwcHg7bWFyZ2luOjAgYXV0b30ucGFzc2FnZXttYXJnaW4tdG9wOjEycHh9Ym9keS5tYXBwIC5wYXNzYWdle21hcmdpbi10b3A6MTEycHg7bWFyZ2luLWJvdHRvbToxNjBweH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjYwMHB4KXsjc3Rvcnl7bWF4LXdpZHRoOjEwMCV9I3RvcGJhcntsZWZ0OjAhaW1wb3J0YW50O3JpZ2h0OjAhaW1wb3J0YW50fSNoZWFkZXJfYXBwe2xlZnQ6MCFpbXBvcnRhbnQ7cmlnaHQ6MCFpbXBvcnRhbnR9fTpyb290ey0tYmc6dXJsKGFzc2V0cy9pbWcvYmcxLndlYnApfS5tYWluLW1lbnV7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjMwcHg7bGVmdDowO3JpZ2h0OjA7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweH1pbnB1dCN0ZXh0Ym94LW5hbWUubWFjcm8tdGV4dGJveHtib3JkZXItcmFkaXVzOjhweH1oMntsaW5lLWhlaWdodDoxLjJ9LmxvZ297bWFyZ2luLXRvcDo3MHB4IWltcG9ydGFudH1ib2R5LmJnMSAjc3Rvcnl7YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7YmFja2dyb3VuZC1zaXplOmNvdmVyO2JhY2tncm91bmQtaW1hZ2U6dmFyKC0tYmcpfS5wYW5lbHtiYWNrZ3JvdW5kLWNvbG9yOiMyNDI0MjQ7Y29sb3I6I2ZjZmNmYztkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoycHg7cGFkZGluZzoyNHB4O2JvcmRlci1yYWRpdXM6MTJweDttaW4td2lkdGg6ODAlOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo0NSU7bGVmdDo1MCU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTQ1JSk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNDUlKTstby10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTQ1JSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC00NSUpfS5saW5rLWV4dGVybmFsOjphZnRlcntjb250ZW50OiIiIWltcG9ydGFudH0uYmFjay1zY3JlZW57cG9zaXRpb246YWJzb2x1dGU7dGV4dC1hbGlnbjpjZW50ZXI7dG9wOjQ1JTtsZWZ0OjUwJTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNDUlKTstbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC00NSUpOy1vLXRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtNDUlKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTQ1JSl9LnBhbmVsIHB7Zm9udC1zaXplOjEuNXJlbTtsaW5lLWhlaWdodDoxLjN9LnBhbmVsIC5saW5rLWludGVybmFse21hcmdpbi10b3A6NnB4O21pbi13aWR0aDo5MCUhaW1wb3J0YW50fS5idXR0b24tYXBwe21heC13aWR0aDo5MHB4O3dpZHRoOjIwJTtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21pbi1oZWlnaHQ6OTBweH0uaG91ci1zY3JlZW57d2lkdGg6MTAwJTt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6NjBweDtsaW5lLWhlaWdodDoxfWRpdiNob21lLXNjcmVlbiBkaXYgZGl2LmhvdXItc2NyZWVuIGgxe21hcmdpbjowO3BhZGRpbmc6MH0uYm90dG9tLWJhcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDA4ZjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDoyNnB4O3BhZGRpbmctYm90dG9tOjE3cHg7cGFkZGluZy10b3A6MTdweH0uZGF5LXNjcmVlbnt3aWR0aDoxMDAlO2xpbmUtaGVpZ2h0OjE7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLXRvcDotMnB4fWRpdi5kYXktc2NyZWVuIHB7bWFyZ2luOjA7cGFkZGluZzowfS5idXR0b24tYXBwIC5saW5rLWludGVybmFse3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7dG9wOjA7cmlnaHQ6MDtsZWZ0OjA7Ym90dG9tOjA7cGFkZGluZzowO21pbi13aWR0aDowIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjIwcHg7LXdlYmtpdC10cmFuc2Zvcm06bm9uZSFpbXBvcnRhbnQ7LW1zLXRyYW5zZm9ybTpub25lIWltcG9ydGFudDstby10cmFuc2Zvcm06bm9uZSFpbXBvcnRhbnQ7dHJhbnNmb3JtOm5vbmUhaW1wb3J0YW50fSNob21lLXNjcmVlbntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O2dhcDoyMHB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDo3JTtsZWZ0OjA7cmlnaHQ6MDstd2Via2l0LWZsZXgtd3JhcDp3cmFwOy1tcy1mbGV4LXdyYXA6d3JhcDtmbGV4LXdyYXA6d3JhcDstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0jdG9wYmFye21pbi1oZWlnaHQ6MzZweDtwb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjEycHg7cmlnaHQ6MTJweDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOy1tcy1mbGV4LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjttYXgtd2lkdGg6NDQ4cHg7bWFyZ2luOjAgYXV0bztiYWNrZ3JvdW5kLWNvbG9yOiM0ZDRkNGQxMDt6LWluZGV4Ojk5fSNuYXZiYXJ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDttYXgtaGVpZ2h0OjYwcHg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OjYwcHh9Ym9keS5tYXBwICNzdG9yeXtiYWNrZ3JvdW5kLWNvbG9yOiMwYjE0MWF9I25hdmJhciAuYnV0dG9uLWFwcCBpbWd7aGVpZ2h0OjMwcHg7d2lkdGg6MzBweDstby1vYmplY3QtZml0OmNvbnRhaW47b2JqZWN0LWZpdDpjb250YWluO21hcmdpbjowIWltcG9ydGFudDtwYWRkaW5nLWxlZnQ6MTJweH0jbmF2YmFyIC5idXR0b24tYXBwe21heC13aWR0aDpub25lIWltcG9ydGFudDt3aWR0aDozMnB4IWltcG9ydGFudH0jaGVhZGVyX2FwcCxib2R5Lm1hcHAgI3RvcGJhcntiYWNrZ3JvdW5kLWNvbG9yOiMyMDJjMzN9I2hlYWRlcl9hcHB7cG9zaXRpb246Zml4ZWQ7bWluLWhlaWdodDo3MHB4O3RvcDozNnB4O2xlZnQ6MTJweDtyaWdodDoxMnB4O21heC13aWR0aDo0NDhweDttYXJnaW46MCBhdXRvO21heC1oZWlnaHQ6MTAwcHg7ei1pbmRleDo5NTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfSNoZWFkZXJfYXBwIGgxe21hcmdpbjowO3BhZGRpbmc6MDtmb250LXNpemU6MS41ZW19I2F2YXRhcl9tZXNzYWdlIGltZ3ttaW4taGVpZ2h0OjUwcHg7bWluLXdpZHRoOjUwcHg7bWF4LWhlaWdodDo1MHB4O21heC13aWR0aDo1MHB4fSNtZXNzYWdlX2J1dHRvbnN7bWFyZ2luLXJpZ2h0OjE0cHg7d2lkdGg6MTIwcHg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmVuZDstd2Via2l0LWp1c3RpZnktY29udGVudDpmbGV4LWVuZDstbXMtZmxleC1wYWNrOmVuZDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9ZGl2LmhlYWRlcl9hcHBfY29udGVudCBkaXYjbWVzc2FnZV9idXR0b25zIGJ1dHRvbiNza2lwVG9nZ2xlQnV0dG9ue21pbi1oZWlnaHQ6NTBweCFpbXBvcnRhbnQ7bWluLXdpZHRoOjUwcHghaW1wb3J0YW50O21heC1oZWlnaHQ6NTBweCFpbXBvcnRhbnQ7bWF4LXdpZHRoOjUwcHghaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZTpjb3ZlciFpbXBvcnRhbnQ7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudDtib3JkZXI6bm9uZSFpbXBvcnRhbnQ7b3V0bGluZTowIWltcG9ydGFudDtjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoYXNzZXRzL2ltZy9GYXN0Rm93YXJkQnV0dG9uSWRsZS53ZWJwKTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50fWRpdi5oZWFkZXJfYXBwX2NvbnRlbnQgZGl2I21lc3NhZ2VfYnV0dG9ucyBidXR0b24jc2tpcFRvZ2dsZUJ1dHRvbiAuYWN0aXZle21pbi1oZWlnaHQ6NTBweCFpbXBvcnRhbnQ7bWluLXdpZHRoOjUwcHghaW1wb3J0YW50O21heC1oZWlnaHQ6NTBweCFpbXBvcnRhbnQ7bWF4LXdpZHRoOjUwcHghaW1wb3J0YW50O2JhY2tncm91bmQtc2l6ZTpjb3ZlciFpbXBvcnRhbnQ7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0IWltcG9ydGFudDtib3JkZXI6bm9uZSFpbXBvcnRhbnQ7b3V0bGluZTowIWltcG9ydGFudDtjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoYXNzZXRzL2ltZy9GYXN0Rm93YXJkQnV0dG9uQWN0aXZlLndlYnApO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LmF2YXRhcl9tZXNzYWdle21pbi13aWR0aDo3NXB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXh9LmhlYWRlcl9hcHBfY29udGVudHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOy1tcy1mbGV4LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt3aWR0aDoxMDAlfSNiYWNrLXNwYWNle3dpZHRoOjYwcHg7bWluLXdpZHRoOjYwcHh9LmhlYWRlcl9hcHBfY29udGVudCBoMXt0ZXh0LWFsaWduOmNlbnRlcn0ubWVzc2FnZV9idXR0b25ze2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7bWluLXdpZHRoOjEyMHB4Oy13ZWJraXQtYm94LXBhY2s6ZW5kOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmZsZXgtZW5kOy1tcy1mbGV4LXBhY2s6ZW5kO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0ubWVzc2FnZV9idXR0b25zIGltZ3stby1vYmplY3QtZml0OmNvbnRhaW47b2JqZWN0LWZpdDpjb250YWluO21heC13aWR0aDo0NHB4O21hcmdpbjowIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6NnB4IWltcG9ydGFudDtjdXJzb3I6cG9pbnRlcn0uaGVhZGVyX3RpdGxle3dpZHRoOjEwMCV9I21lc3NhZ2Vfb3V0c2lkZXtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O2dhcDoxMnB4O3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6OXB4O2JhY2tncm91bmQtY29sb3I6IzIwMmMzMztib3JkZXItcmFkaXVzOjVweH0jbWVzc2FnZV9vdXRzaWRlIC5hdmF0YXIgaW1ne21heC13aWR0aDo2MHB4O21heC1oZWlnaHQ6NjBweH0jbWVzc2FnZV9vdXRzaWRlIC5hdmF0YXJ7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH0uZXJyb3J7dGV4dC1hbGlnbjpjZW50ZXI7bGluZS1oZWlnaHQ6MTtmb250LXNpemU6MnJlbTtmb250LXdlaWdodDo3MDA7Y29sb3I6IzU5OGViYTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5oYXNfbWVzc2FnZXtiYWNrZ3JvdW5kLWNvbG9yOiNlOTFlOTQ7Ym9yZGVyLXJhZGl1czoxMDBweDtjb2xvcjojZmZmO2hlaWdodDoyMHB4O3dpZHRoOjIwcHg7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0jbWVzc2FnZV9vdXRzaWRlIC50ZXh0b3tkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O3dpZHRoOjEwMCU7LXdlYmtpdC1ib3gtcGFjazpqdXN0aWZ5Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47LW1zLWZsZXgtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufSNtZXNzYWdlX291dHNpZGUgLm1lbnNhamV7Y29sb3I6IzczODI4Yjstby10ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt3aWR0aDoyNTBweH0jbWVzc2FnZV9vdXRzaWRlIC5ub21icmV7Zm9udC13ZWlnaHQ6NzAwfSNtZXNzYWdlX291dHNpZGUgLmhvcmF7Y29sb3I6IzczODI4Yjtmb250LXdlaWdodDo3MDB9I21lc3NhZ2Vfb3V0c2lkZSBhLmxpbmstaW50ZXJuYWwubWFjcm8tbGlua3twb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MDtib3JkZXItcmFkaXVzOjA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6MH0ubGlua3twb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlfS5saW5rIGEubGluay1pbnRlcm5hbC5tYWNyby1saW5re3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDtib3R0b206MDtyaWdodDowO2JvcmRlci1yYWRpdXM6MDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjowfWRpdiNuYXZiYXIgZGl2LmJ1dHRvbi1hcHAgYS5saW5rLWludGVybmFsLm1hY3JvLWxpbmt7Ym9yZGVyOjB9Lm1lbnNhamVfY2Fwc3VsZS1maXJzdHtiYWNrZ3JvdW5kLWNvbG9yOiM0MDQ1NGI7cGFkZGluZzo4cHggMjhweDstd2Via2l0LWJvcmRlci1yYWRpdXM6MjBweDstd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6MnB4O2JvcmRlci1yYWRpdXM6MjBweDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjJweDtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZX0ubWVuc2FqZV9jYXBzdWxle2JhY2tncm91bmQtY29sb3I6IzQwNDU0YjtwYWRkaW5nOjhweCAxNnB4O2JvcmRlci1yYWRpdXM6NHB4O3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi10b3A6OXB4fWRpdi5tZW5zYWplX2NhcHN1bGUucGFkZGluZy1tZXNzYWdlLmRlcmVjaGE6OmJlZm9yZXtjb250ZW50OnVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyBmaWxsPSclMjM0MDQ1NGInIHZlcnNpb249JzEuMScgaWQ9J0xheWVyXzEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHZpZXdCb3g9JzAgMCAyNCAyNCcgeG1sOnNwYWNlPSdwcmVzZXJ2ZSclM0UlM0NnIGlkPSdTVkdSZXBvX2JnQ2Fycmllcicgc3Ryb2tlLXdpZHRoPScwJyUzRSUzQy9nJTNFJTNDZyBpZD0nU1ZHUmVwb190cmFjZXJDYXJyaWVyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnJTNFJTNDL2clM0UlM0NnIGlkPSdTVkdSZXBvX2ljb25DYXJyaWVyJyUzRSUzQ3N0eWxlIHR5cGU9J3RleHQvY3NzJyUzRSAuc3QwJTdCZmlsbDpub25lJTNCJTdEICUzQy9zdHlsZSUzRSUzQ3BhdGggZD0nTTE1IDZsLTcgNmw3IDZWNnonJTNFJTNDL3BhdGglM0UlM0NyZWN0IGNsYXNzPSdzdDAnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCclM0UlM0MvcmVjdCUzRSUzQy9nJTNFJTNDL3N2ZyUzRSIpO3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0zcHg7bGVmdDotMjRweH1kaXYjY29udGVudCBhLmxpbmstaW50ZXJuYWwubWFjcm8tbGlua3tiYWNrZ3JvdW5kLWNvbG9yOiMxNTY2YWM7Y29sb3I6I2ZmZiFpbXBvcnRhbnR9ZGl2Lm1lbnNhamVfY2Fwc3VsZS5wYWRkaW5nLW1lc3NhZ2UuaXpxdWllcmRhOjphZnRlcntjb250ZW50OnVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyBmaWxsPSclMjMxNTY2YWMnIHZlcnNpb249JzEuMScgaWQ9J0xheWVyXzEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHZpZXdCb3g9JzAgMCAyNCAyNCcgeG1sOnNwYWNlPSdwcmVzZXJ2ZScgdHJhbnNmb3JtPSdyb3RhdGUoMTgwKSclM0UlM0NnIGlkPSdTVkdSZXBvX2JnQ2Fycmllcicgc3Ryb2tlLXdpZHRoPScwJyUzRSUzQy9nJTNFJTNDZyBpZD0nU1ZHUmVwb190cmFjZXJDYXJyaWVyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnJTNFJTNDL2clM0UlM0NnIGlkPSdTVkdSZXBvX2ljb25DYXJyaWVyJyUzRSUzQ3N0eWxlIHR5cGU9J3RleHQvY3NzJyUzRSAuc3QwJTdCZmlsbDpub25lJTNCJTdEICUzQy9zdHlsZSUzRSUzQ3BhdGggZD0nTTE1IDZsLTcgNmw3IDZWNnonJTNFJTNDL3BhdGglM0UlM0NyZWN0IGNsYXNzPSdzdDAnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCclM0UlM0MvcmVjdCUzRSUzQy9nJTNFJTNDL3N2ZyUzRSIpO3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0zcHg7cmlnaHQ6LTIzcHh9LnR5cGluZ3std2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O2hlaWdodDoxN3B4fS50eXBpbmcgLmRvdHstd2Via2l0LWFuaW1hdGlvbjptZXJjdXJ5VHlwaW5nQW5pbWF0aW9uIDEuOHMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7LW8tYW5pbWF0aW9uOm1lcmN1cnlUeXBpbmdBbmltYXRpb24gMS44cyBpbmZpbml0ZSBlYXNlLWluLW91dDthbmltYXRpb246bWVyY3VyeVR5cGluZ0FuaW1hdGlvbiAxLjhzIGluZmluaXRlIGVhc2UtaW4tb3V0O2JhY2tncm91bmQtY29sb3I6IzZjYWQ5Njtib3JkZXItcmFkaXVzOjUwJTtoZWlnaHQ6N3B4O21hcmdpbi1yaWdodDo0cHg7dmVydGljYWwtYWxpZ246bWlkZGxlO3dpZHRoOjdweDtkaXNwbGF5OmlubGluZS1ibG9ja30udHlwaW5nIC5kb3Q6Zmlyc3QtY2hpbGR7LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6LjJzOy1vLWFuaW1hdGlvbi1kZWxheTouMnM7YW5pbWF0aW9uLWRlbGF5Oi4yc30udHlwaW5nIC5kb3Q6bnRoLWNoaWxkKDIpey13ZWJraXQtYW5pbWF0aW9uLWRlbGF5Oi4zczstby1hbmltYXRpb24tZGVsYXk6LjNzO2FuaW1hdGlvbi1kZWxheTouM3N9LnR5cGluZyAuZG90Om50aC1jaGlsZCgzKXstd2Via2l0LWFuaW1hdGlvbi1kZWxheTouNHM7LW8tYW5pbWF0aW9uLWRlbGF5Oi40czthbmltYXRpb24tZGVsYXk6LjRzfS50eXBpbmcgLmRvdDpsYXN0LWNoaWxke21hcmdpbi1yaWdodDowfUAtd2Via2l0LWtleWZyYW1lcyBtZXJjdXJ5VHlwaW5nQW5pbWF0aW9uezAley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7YmFja2dyb3VuZC1jb2xvcjojNmNhZDk2fTI4JXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC03cHgpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC03cHgpO2JhY2tncm91bmQtY29sb3I6IzllY2FiOX00NCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTtiYWNrZ3JvdW5kLWNvbG9yOiNiNWQ5Y2J9fUAtby1rZXlmcmFtZXMgbWVyY3VyeVR5cGluZ0FuaW1hdGlvbnswJXstby10cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTtiYWNrZ3JvdW5kLWNvbG9yOiM2Y2FkOTZ9Mjgley1vLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC03cHgpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC03cHgpO2JhY2tncm91bmQtY29sb3I6IzllY2FiOX00NCV7LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7YmFja2dyb3VuZC1jb2xvcjojYjVkOWNifX1Aa2V5ZnJhbWVzIG1lcmN1cnlUeXBpbmdBbmltYXRpb257MCV7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTstby10cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTtiYWNrZ3JvdW5kLWNvbG9yOiM2Y2FkOTZ9Mjgley13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTdweCk7LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTdweCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTdweCk7YmFja2dyb3VuZC1jb2xvcjojOWVjYWI5fTQ0JXstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApOy1vLXRyYW5zZm9ybTp0cmFuc2xhdGVZKDApO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApO2JhY2tncm91bmQtY29sb3I6I2I1ZDljYn19I21lc3NhZ2VfY29udGFpbmVye2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtYm94O2Rpc3BsYXk6LXdlYmtpdC1pbmxpbmUtZmxleDtkaXNwbGF5Oi1tcy1pbmxpbmUtZmxleGJveDtkaXNwbGF5OmlubGluZS1mbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo2cHg7d2lkdGg6MTAwJTtvcGFjaXR5OjB9I21lc3NhZ2VfY29udGFpbmVyIC5hdmF0YXIgaW1ne2hlaWdodDo2MHB4O3dpZHRoOjYwcHg7bWF4LWhlaWdodDo2MHB4O21heC13aWR0aDo2MHB4O21hcmdpbi10b3A6LTE2cHg7bWFyZ2luLXJpZ2h0Oi0xNnB4O3otaW5kZXg6MTtwb3NpdGlvbjpyZWxhdGl2ZX0uZmxleHtnYXA6NnB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246c3RhcnQ7LXdlYmtpdC1hbGlnbi1pdGVtczpmbGV4LXN0YXJ0Oy1tcy1mbGV4LWFsaWduOnN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LnBhZGRpbmctbWVzc2FnZXttYXJnaW4tbGVmdDotMnB4fS5tZW5zYWplX2NhcHN1bGUtZmlyc3QuZGVyZWNoYXttYXJnaW4tcmlnaHQ6MzBweH0ubWVuc2FqZV9jYXBzdWxlLWZpcnN0Lml6cXVpZXJkYXttYXJnaW4tbGVmdDozMHB4fS5tZW5zYWplX2NhcHN1bGUuZGVyZWNoYXttYXJnaW4tcmlnaHQ6NzVweH0ubWVuc2FqZV9jYXBzdWxlLml6cXVpZXJkYXttYXJnaW4tbGVmdDo5MHB4O21hcmdpbi1yaWdodDotNnB4O2JhY2tncm91bmQtY29sb3I6IzE1NjZhY30jcGFkZGluZy1ib3h7bWluLWhlaWdodDozMHB4fS5jaGF0X2Jhcntwb3NpdGlvbjpmaXhlZDttaW4taGVpZ2h0OjUwcHg7Ym90dG9tOjA7bWFyZ2luOjAgYXV0bztsZWZ0OjEwcHg7cmlnaHQ6MTBweDttYXgtd2lkdGg6NDQ4cHg7YmFja2dyb3VuZC1jb2xvcjojMGIxNDFhfS5jaGF0X2JhciBhe21hcmdpbi1ib3R0b206MTJweH0ucGxheWVyX21lc3NhZ2V7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmVuZDstd2Via2l0LWp1c3RpZnktY29udGVudDpmbGV4LWVuZDstbXMtZmxleC1wYWNrOmVuZDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7d2lkdGg6MTAwJX0ub2ZmbGluZS10ZXh0e2NvbG9yOiM3MzgyOGI7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLXRvcDozNHB4fS5mYWRlLWlue29wYWNpdHk6MDstd2Via2l0LWFuaW1hdGlvbjpmYWRlSW4gMXMgZm9yd2FyZHM7LW8tYW5pbWF0aW9uOmZhZGVJbiAxcyBmb3J3YXJkczthbmltYXRpb246ZmFkZUluIDFzIGZvcndhcmRzfUAtd2Via2l0LWtleWZyYW1lcyBmYWRlSW57ZnJvbXtvcGFjaXR5OjB9dG97b3BhY2l0eToxfX1ALW8ta2V5ZnJhbWVzIGZhZGVJbntmcm9te29wYWNpdHk6MH10b3tvcGFjaXR5OjF9fUBrZXlmcmFtZXMgZmFkZUlue2Zyb217b3BhY2l0eTowfXRve29wYWNpdHk6MX19QC13ZWJraXQta2V5ZnJhbWVzIGZhZGVPdXR7ZnJvbXtvcGFjaXR5OjF9dG97b3BhY2l0eTowfX1ALW8ta2V5ZnJhbWVzIGZhZGVPdXR7ZnJvbXtvcGFjaXR5OjF9dG97b3BhY2l0eTowfX1Aa2V5ZnJhbWVzIGZhZGVPdXR7ZnJvbXtvcGFjaXR5OjF9dG97b3BhY2l0eTowfX0ud2lue2JhY2tncm91bmQ6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sY29sb3Itc3RvcCg1JSwjMjFhZDI2KSx0bygjMzQ4NTM3KSk7YmFja2dyb3VuZDotby1saW5lYXItZ3JhZGllbnQodG9wLCMyMWFkMjYgNSUsIzM0ODUzNyAxMDAlKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sIzIxYWQyNiA1JSwjMzQ4NTM3IDEwMCUpO2JvcmRlci1yYWRpdXM6OHB4O2NvbG9yOiNmZmY7Zm9udC1zaXplOjE1cHg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7dGV4dC1zaGFkb3c6MCAxcHggMCAjM2Q3NjhhO3BhZGRpbmc6MTBweCAxMHB4O21heC13aWR0aDozMDBweDttYXJnaW46MCBhdXRvO21hcmdpbi10b3A6MTBweDttYXJnaW4tYm90dG9tOjEwcHg7ZGlzcGxheTpibG9jazstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7d2lkdGg6MzAwcHg7dGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTt0ZXh0LWFsaWduOmNlbnRlcn0ud2luLWNhcHN1bGV7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsMCwwLC41KTtwYWRkaW5nOjVweDtib3JkZXItcmFkaXVzOjVweDtkaXNwbGF5OmlubGluZS1ibG9ja30ud2luLXNpbWJvbHtmb250LXdlaWdodDo3MDA7b3BhY2l0eTowOy13ZWJraXQtYW5pbWF0aW9uOmZhZGVJbiAxcyBmb3J3YXJkczstby1hbmltYXRpb246ZmFkZUluIDFzIGZvcndhcmRzO2FuaW1hdGlvbjpmYWRlSW4gMXMgZm9yd2FyZHM7LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6LjRzOy1vLWFuaW1hdGlvbi1kZWxheTouNHM7YW5pbWF0aW9uLWRlbGF5Oi40c30uY2VudGVye2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9I3RvYXN0LWZ1bGx7cG9zaXRpb246Zml4ZWQ7dG9wOjQ1cHg7bGVmdDowO3JpZ2h0OjA7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7LW1zLWZsZXgtcGFjazpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjt6LWluZGV4Ojk5Oy13ZWJraXQtYW5pbWF0aW9uOmZhZGVPdXQgLjhzOy1vLWFuaW1hdGlvbjpmYWRlT3V0IC44czthbmltYXRpb246ZmFkZU91dCAuOHM7LXdlYmtpdC1hbmltYXRpb24tZGVsYXk6MS41czstby1hbmltYXRpb24tZGVsYXk6MS41czthbmltYXRpb24tZGVsYXk6MS41c30udG9hc3QtY29udGFpbmVye21heC13aWR0aDozMDBweDt3aWR0aDozMDBweDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O2JhY2tncm91bmQ6IzI0MjQyNDtsaW5lLWhlaWdodDoxO2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjZweDtib3JkZXItcmFkaXVzOjEwcHg7Z2FwOjlweDt6LWluZGV4Ojk5fS50b2FzdC10ZXh0e2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7Z2FwOjEycHg7LXdlYmtpdC1ib3gtcGFjazpqdXN0aWZ5Oy13ZWJraXQtanVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47LW1zLWZsZXgtcGFjazpqdXN0aWZ5O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3dpZHRoOjEwMCV9ZGl2LnRvYXN0LWNvbnRhaW5lciBkaXYudG9hc3QtYXZhdGFyIGltZ3ttYXgtd2lkdGg6NDBweDttYXgtaGVpZ2h0OjQwcHg7aGVpZ2h0OjQwcHg7d2lkdGg6NDBweDttYXJnaW4tdG9wOjZweH1ib2R5Lm5vdGhvdXIgLnRvcC1ob3Vye29wYWNpdHk6MH1ib2R5Lm5vdGVzICNoZWFkZXJfYXBwe2JhY2tncm91bmQtY29sb3I6I2ZmZiFpbXBvcnRhbnQ7Y29sb3I6IzAwMCFpbXBvcnRhbnR9Ym9keS5ub3RlcyAjbmF2YmFyey13ZWJraXQtZmlsdGVyOmludmVydCgxMDAlKTtmaWx0ZXI6aW52ZXJ0KDEwMCUpfWJvZHkubm90ZXMgI3RvcGJhcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDAhaW1wb3J0YW50fWJvZHkubm90ZXMgI3N0b3J5e2JhY2tncm91bmQtY29sb3I6I2UzZTNlMyFpbXBvcnRhbnR9Ym9keS50b2RvICNoZWFkZXJfYXBwe2JhY2tncm91bmQtY29sb3I6IzFmMmIzMyFpbXBvcnRhbnR9Ym9keS50b2RvICN0b3BiYXJ7YmFja2dyb3VuZC1jb2xvcjojMDAwIWltcG9ydGFudH1ib2R5LnRvZG8gI3N0b3J5e2JhY2tncm91bmQtY29sb3I6IzBiMTMxOSFpbXBvcnRhbnR9YXstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7b3V0bGluZTowfWE6YWN0aXZlLGE6Zm9jdXN7b3V0bGluZTowfSNwYWRkaW5nLWNvbnRhaW5lcnttYXJnaW4tdG9wOjEwMHB4fWJvZHksaHRtbHtzY3JvbGxiYXItd2lkdGg6bm9uZX0jY29udGVudHtwYWRkaW5nOjEycHg7cGFkZGluZy1ib3R0b206MzBweH0jbWVzc2FnZV9pbWcgaW1ne3dpZHRoOjMwMHB4O2hlaWdodDozMDBweDstby1vYmplY3QtZml0OmNvdmVyO29iamVjdC1maXQ6Y292ZXJ9ZGl2I21lc3NhZ2VfaW1nIGJ1dHRvbi5saW5rLWludGVybmFsLm1hY3JvLWJ1dHRvbnt3aWR0aDozMDBweDtoZWlnaHQ6MzAwcHg7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtvdXRsaW5lOjA7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7Ym9yZGVyLXJhZGl1czoxMHB4fWRpdiNtZXNzYWdlX2ltZyBidXR0b24ubGluay1pbnRlcm5hbC5tYWNyby1idXR0b246aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojMDAwMDAwOGZ9I21lc3NhZ2VfaW1ne3Bvc2l0aW9uOnJlbGF0aXZlO21hcmdpbi1ib3R0b206MTJweDttYXJnaW4tdG9wOjEycHh9I3VpLWRpYWxvZ3t3aWR0aDoxMDAlIWltcG9ydGFudDttYXJnaW46MCBhdXRvIWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50O2xlZnQ6MCFpbXBvcnRhbnQ7Ym90dG9tOjAhaW1wb3J0YW50O3RvcDowIWltcG9ydGFudDtyaWdodDowIWltcG9ydGFudDttYXgtd2lkdGg6NDQ4cHh9I3VpLWRpYWxvZy10aXRsZXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDB9I3VpLWRpYWxvZy10aXRsZWJhcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7Y29sb3I6I2ZmZjtib3JkZXI6bm9uZX0jdWktZGlhbG9nLWJvZHl7cGFkZGluZzowIWltcG9ydGFudDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAhaW1wb3J0YW50O2JvcmRlcjpub25lIWltcG9ydGFudH1kaXYjdWktZGlhbG9nLWJvZHkgZGl2I2ltZ19iaWcgaW1ne2hlaWdodDo5MHZoO3dpZHRoOjEwMCU7LW8tb2JqZWN0LWZpdDpjb250YWluO29iamVjdC1maXQ6Y29udGFpbn0jaW1nX2JpZ3twb3NpdGlvbjpyZWxhdGl2ZX0uc2V0X3dhbGxwYXBlcl9jYXBzdWxlIGltZ3toZWlnaHQ6MzBweCFpbXBvcnRhbnQ7d2lkdGg6MzBweCFpbXBvcnRhbnQ7LW8tb2JqZWN0LWZpdDpjb250YWluIWltcG9ydGFudDtvYmplY3QtZml0OmNvbnRhaW4haW1wb3J0YW50O21hcmdpbjowIWltcG9ydGFudH0uc2V0X3dhbGxwYXBlcl9jYXBzdWxlIHB7bWFyZ2luOjA7cGFkZGluZzowO2NvbG9yOiNmZmY7Zm9udC1zaXplOjEuMmVtO21hcmdpbi1sZWZ0OjEycHh9ZGl2I3VpLWRpYWxvZy1ib2R5IGRpdiNpbWdfYmlnIGRpdi5zZXRfd2FsbHBhcGVyX2NhcHN1bGUgYnV0dG9uLmxpbmstaW50ZXJuYWwubWFjcm8tYnV0dG9uOjpiZWZvcmV7YmFja2dyb3VuZC1pbWFnZTp1cmwoJ2Fzc2V0cy9pbWcvaW1nLndlYnAnKTtiYWNrZ3JvdW5kLXNpemU6MjBweCAyMHB4O2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7bWFyZ2luLXJpZ2h0OjdweDtjb250ZW50OiIifWRpdiN1aS1kaWFsb2ctYm9keSBkaXYjaW1nX2JpZyBkaXYuc2V0X3dhbGxwYXBlcl9jYXBzdWxlIGJ1dHRvbi5saW5rLWludGVybmFsLm1hY3JvLWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOiM0YTRhNGE7bWF4LWhlaWdodDo0MHB4O21heC13aWR0aDoyMzVweDtib3JkZXItcmFkaXVzOjI2cHg7cGFkZGluZzo3cHggMThweDtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O21hcmdpbjowIGF1dG87Y29sb3I6I2ZmZiFpbXBvcnRhbnQ7Zm9udC1zaXplOjEuMmVtOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy13ZWJraXQtYm94LWFsaWduOmNlbnRlcjstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstbXMtZmxleC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfUBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDo2MDBweCl7I21lc3NhZ2Vfb3V0c2lkZSAubWVuc2FqZXttYXgtd2lkdGg6NTB2d30jaGVhZGVyX2FwcHttYXgtd2lkdGg6MTAwJX0jdG9wYmFye21heC13aWR0aDoxMDAlfWRpdi5idXR0b24tYXBwIGltZ3ttaW4td2lkdGg6NzBweCFpbXBvcnRhbnQ7bWF4LXdpZHRoOjcwcHghaW1wb3J0YW50fX1kaXYjaW1nX2JpZyB2aWRlb3toZWlnaHQ6OTB2aH1ib2R5LndoaXRlICNoZWFkZXJfYXBwe2JhY2tncm91bmQtY29sb3I6I2ZmZiFpbXBvcnRhbnQ7Y29sb3I6IzAwMCFpbXBvcnRhbnR9Ym9keS53aGl0ZSAjdG9wYmFye2JhY2tncm91bmQtY29sb3I6I2I5YjliOSFpbXBvcnRhbnR9Ym9keS53aGl0ZSAjc3Rvcnl7YmFja2dyb3VuZC1jb2xvcjojZmZmIWltcG9ydGFudDtjb2xvcjojMDAwIWltcG9ydGFudH1ib2R5LndoaXRlICNuYXZiYXJ7LXdlYmtpdC1maWx0ZXI6aW52ZXJ0KDEwMCUpO2ZpbHRlcjppbnZlcnQoMTAwJSl9Lmluc3RhdmliZS10b3AtY29udGVudHttYXgtd2lkdGg6ODBweDttYXgtaGVpZ2h0OjEwMHB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lmluc3RhdmliZS10b3AtY29udGVudCBpbWd7bWF4LXdpZHRoOjcwcHg7bWF4LWhlaWdodDo3MHB4fS5pbnN0YXZpYmUtdG9we292ZXJmbG93LXg6c2Nyb2xsO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7Z2FwOjZweDtwYWRkaW5nLWJvdHRvbToxMnB4O3Njcm9sbGJhci13aWR0aDpub25lfWRpdi5pbnN0YXZpYmUtcG9zdCBkaXYuYXZhdGFye3dpZHRoOjYwcHg7aGVpZ2h0OjYwcHh9Lmluc3RhdmliZS1wb3N0e2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXh9ZGl2Lmluc3RhdmliZS1wb3N0IGRpdi50ZXh0IGRpdi50b3B7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmp1c3RpZnk7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjstbXMtZmxleC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7Zm9udC1zaXplOjEuMXJlbTtmb250LXdlaWdodDo3MDB9ZGl2Lmluc3RhdmliZS1wb3N0IGRpdi50ZXh0IGRpdi5ib3R0b217ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmp1c3RpZnk7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjstbXMtZmxleC1wYWNrOmp1c3RpZnk7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9ZGl2Lmluc3RhdmliZS1wb3N0IGRpdi50ZXh0e3dpZHRoOjEwMCU7bWFyZ2luLWxlZnQ6MTJweDtsaW5lLWhlaWdodDoxO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7LXdlYmtpdC1mbGV4LWRpcmVjdGlvbjpjb2x1bW47LW1zLWZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZy1ib3R0b206MTJweH1kaXYuaW5zdGF2aWJlLXBvc3QgZGl2LnRleHQgZGl2LmJvdHRvbSBkaXYuYnV0dG9ucyBpbWd7bWF4LXdpZHRoOjI1cHg7bWF4LWhlaWdodDoyNXB4O21hcmdpbjowIWltcG9ydGFudDtjdXJzb3I6cG9pbnRlcjstby1vYmplY3QtZml0OmNvbnRhaW47b2JqZWN0LWZpdDpjb250YWluO2JvcmRlci1yYWRpdXM6MDtwYWRkaW5nLXRvcDoxMHB4fWRpdiNwYWRkaW5nLWNvbnRhaW5lciBkaXYuaW1nLXBvc3R7cG9zaXRpb246cmVsYXRpdmV9ZGl2LmltZy1wb3N0IGJ1dHRvbi5saW5rLWludGVybmFsLm1hY3JvLWJ1dHRvbntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO291dGxpbmU6MDtjdXJzb3I6cG9pbnRlcn0ubWFnaWNfYnV0dG9ue3Bvc2l0aW9uOnJlbGF0aXZlO21heC13aWR0aDoyNXB4O21heC1oZWlnaHQ6MjVweDt3aWR0aDoyNXB4O2hlaWdodDoyNXB4fS5tYWdpY19idXR0b24gaW1ne21heC13aWR0aDoyNXB4IWltcG9ydGFudDttYXgtaGVpZ2h0OjI1cHghaW1wb3J0YW50O21hcmdpbjowIWltcG9ydGFudDtjdXJzb3I6cG9pbnRlciFpbXBvcnRhbnQ7LW8tb2JqZWN0LWZpdDpjb250YWluIWltcG9ydGFudDtvYmplY3QtZml0OmNvbnRhaW4haW1wb3J0YW50O2JvcmRlci1yYWRpdXM6MCFpbXBvcnRhbnQ7cGFkZGluZy10b3A6MTBweCFpbXBvcnRhbnR9Lm1hZ2ljX2J1dHRvbiBidXR0b24ubGluay1pbnRlcm5hbC5tYWNyby1idXR0b257cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtvdXRsaW5lOjA7Y3Vyc29yOnBvaW50ZXI7bWluLXdpZHRoOjAhaW1wb3J0YW50fWRpdi50ZXh0IGRpdi5ib3R0b20gZGl2LmJ1dHRvbnN7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH1kaXYuaW5zdGF2aWJlLXRvcCBkaXYuaW5zdGF2aWJlLXRvcC1jb250ZW50e3Bvc2l0aW9uOnJlbGF0aXZlfWRpdi5pbnN0YXZpYmUtdG9wIGRpdi5pbnN0YXZpYmUtdG9wLWNvbnRlbnQgYnV0dG9uLmxpbmstaW50ZXJuYWwubWFjcm8tYnV0dG9ue3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7b3V0bGluZTowO2N1cnNvcjpwb2ludGVyO21pbi13aWR0aDowIWltcG9ydGFudH0jdGVzdGJ1dHRvbnt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfWRpdiNwYWRkaW5nLWNvbnRhaW5lciBkaXYuZGVzY3JpcHRpb257bWF4LXdpZHRoOjkwJTttYXJnaW4tdG9wOi0ycHg7bWFyZ2luLWxlZnQ6N3B4O2xpbmUtaGVpZ2h0OjEuM30ucHJvZmlsZS1jYXJke2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7Z2FwOjEycHg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luLWJvdHRvbToyMHB4fS5wcm9maWxlLWNhcmQgaW1ne21pbi13aWR0aDo4NXB4IWltcG9ydGFudDttaW4taGVpZ2h0Ojg1cHghaW1wb3J0YW50O3dpZHRoOjg1cHghaW1wb3J0YW50O2hlaWdodDo4NXB4IWltcG9ydGFudDttYXgtd2lkdGg6ODVweCFpbXBvcnRhbnQ7bWF4LWhlaWdodDo4NXB4IWltcG9ydGFudH0uc3RhdHN7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDt0ZXh0LWFsaWduOmNlbnRlcjtsaW5lLWhlaWdodDoxOy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOy1tcy1mbGV4LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjttYXJnaW4tdG9wOjEycHh9ZGl2LnByb2ZpbGUtY2FyZCBkaXYucHJvZmlsZS1pbmZvIGRpdi5uYW1le2ZvbnQtc2l6ZToxLjJyZW07Zm9udC13ZWlnaHQ6NzAwfS5pY29uLWNvbnRhaW5lcntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O2dhcDoyMHB4Oy13ZWJraXQtZmxleC13cmFwOndyYXA7LW1zLWZsZXgtd3JhcDp3cmFwO2ZsZXgtd3JhcDp3cmFwOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbjoyMHB4fWRpdi5idXR0b24tYXBwIGltZ3ttaW4td2lkdGg6OTBweDttYXgtd2lkdGg6OTBweH0jYXZhdGFyX21lc3NhZ2V7bWFyZ2luLWxlZnQ6OHB4O2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXh9LmVtb2ppe21heC13aWR0aDo2MHB4IWltcG9ydGFudDttYXgtaGVpZ2h0OjYwcHghaW1wb3J0YW50Oy1vLW9iamVjdC1maXQ6Y29udGFpbiFpbXBvcnRhbnQ7b2JqZWN0LWZpdDpjb250YWluIWltcG9ydGFudDttaW4td2lkdGg6NjBweCFpbXBvcnRhbnQ7bWluLWhlaWdodDo2MHB4IWltcG9ydGFudH0jbWVzc2FnZV9pbWd7bWluLWhlaWdodDo2MHB4fS5lbW9qaV91c2Vye3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjAhaW1wb3J0YW50fS5tZXNzYWdlLXRhZ3t3aWR0aDoxMDAlO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy1tcy1mbGV4LXBhY2s6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9Lm1lc3NhZ2UtdGFnLWNhcHN1bGV7YmFja2dyb3VuZC1jb2xvcjojNDA0NTRiO3BhZGRpbmc6OHB4IDE2cHg7Ym9yZGVyLXJhZGl1czo0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXRvcDo5cHh9Ym9keS5kYXJrICNoZWFkZXJfYXBwe2JhY2tncm91bmQtY29sb3I6IzFmMmIzMyFpbXBvcnRhbnQ7Y29sb3I6I2ZmZiFpbXBvcnRhbnR9Ym9keS5kYXJrICN0b3BiYXJ7YmFja2dyb3VuZC1jb2xvcjojMGMwYzBkIWltcG9ydGFudH1ib2R5LmRhcmsgI3N0b3J5e2JhY2tncm91bmQtY29sb3I6IzBiMTMxOSFpbXBvcnRhbnQ7Y29sb3I6I2ZmZiFpbXBvcnRhbnR9LnNldHRpbmdfY29udGFpbmVye2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7cG9zaXRpb246cmVsYXRpdmU7YmFja2dyb3VuZC1jb2xvcjojMjAyYzMzO2JvcmRlci1yYWRpdXM6MTBweDstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjZweCAxMnB4Oy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOy1tcy1mbGV4LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MjBweDttYXJnaW4tYm90dG9tOjE2cHh9LnNldHRpbmdfY29udGFpbmVyIC5saW5rLWludGVybmFse3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7dG9wOjA7cmlnaHQ6MDtsZWZ0OjA7Ym90dG9tOjA7cGFkZGluZzowO21pbi13aWR0aDowIWltcG9ydGFudDtib3JkZXItcmFkaXVzOjIwcHg7LXdlYmtpdC10cmFuc2Zvcm06bm9uZSFpbXBvcnRhbnQ7LW1zLXRyYW5zZm9ybTpub25lIWltcG9ydGFudDstby10cmFuc2Zvcm06bm9uZSFpbXBvcnRhbnQ7dHJhbnNmb3JtOm5vbmUhaW1wb3J0YW50fS50ZXh0X3NldHRpbmd7d2lkdGg6MTAwJX0uaWNvbl9zZXR0aW5ne2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWluLXdpZHRoOjQ1cHg7bWF4LXdpZHRoOjQ1cHh9LnNldHRpbmdfYnV0dG9ue3Bvc2l0aW9uOnJlbGF0aXZlfS5zZXR0aW5nX2J1dHRvbiBpbWd7bWFyZ2luOjAhaW1wb3J0YW50O2N1cnNvcjpwb2ludGVyIWltcG9ydGFudDstby1vYmplY3QtZml0OmNvbnRhaW4haW1wb3J0YW50O29iamVjdC1maXQ6Y29udGFpbiFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czowIWltcG9ydGFudDtwYWRkaW5nLXRvcDoxMHB4IWltcG9ydGFudH0uc2V0dGluZ19idXR0b24gYnV0dG9uLmxpbmstaW50ZXJuYWwubWFjcm8tYnV0dG9ue3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7b3V0bGluZTowO2N1cnNvcjpwb2ludGVyO21pbi13aWR0aDowIWltcG9ydGFudH0ucHJlbWl1bV9jb250YWluZXJ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6OHB4O3RleHQtYWxpZ246Y2VudGVyfS5waG90b3NfY29udGFpbmVye2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1mbGV4LXdyYXA6d3JhcDstbXMtZmxleC13cmFwOndyYXA7ZmxleC13cmFwOndyYXA7cG9zaXRpb246cmVsYXRpdmU7Z2FwOjEycHh9ZGl2LnBob3Rvc19jb250YWluZXIgZGl2I21lc3NhZ2VfaW1ne21heC13aWR0aDoxMjVweCFpbXBvcnRhbnQ7bWF4LWhlaWdodDoxMjVweCFpbXBvcnRhbnQ7d2lkdGg6MTI1cHghaW1wb3J0YW50O2hlaWdodDoxMjVweCFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVufWRpdi5waG90b3NfY29udGFpbmVyIGRpdiNtZXNzYWdlX2ltZyBpbWd7bWF4LXdpZHRoOjEyNXB4IWltcG9ydGFudDttYXgtaGVpZ2h0OjEyNXB4IWltcG9ydGFudDt3aWR0aDoxMjVweCFpbXBvcnRhbnQ7aGVpZ2h0OjEyNXB4IWltcG9ydGFudH1kaXYucGhvdG9zX2NvbnRhaW5lciBkaXYjbWVzc2FnZV9pbWcgYnV0dG9uLmxpbmstaW50ZXJuYWwubWFjcm8tYnV0dG9ue21heC13aWR0aDoxMjVweCFpbXBvcnRhbnQ7bWF4LWhlaWdodDoxMjVweCFpbXBvcnRhbnQ7d2lkdGg6MTI1cHghaW1wb3J0YW50O2hlaWdodDoxMjVweCFpbXBvcnRhbnQ7bWFyZ2luOjAhaW1wb3J0YW50O3BhZGRpbmc6MCFpbXBvcnRhbnR9Ym9keS5ob3Jvc2NvcGUgI2hlYWRlcl9hcHB7YmFja2dyb3VuZC1jb2xvcjojMGMwMzMyIWltcG9ydGFudDtjb2xvcjojZmZmIWltcG9ydGFudH1ib2R5Lmhvcm9zY29wZSAjdG9wYmFye2JhY2tncm91bmQtY29sb3I6IzBjMDMzMiFpbXBvcnRhbnR9Ym9keS5ob3Jvc2NvcGUgI3N0b3J5e2JhY2tncm91bmQtY29sb3I6IzBjMDMzMiFpbXBvcnRhbnQ7Y29sb3I6I2ZmZiFpbXBvcnRhbnR9Lmhvcm9zY29wZV9jb250YWluZXJ7YmFja2dyb3VuZC1jb2xvcjojMzEyOTUwO2JvcmRlci1yYWRpdXM6MjBweDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uO3BhZGRpbmc6MjBweDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MS40cmVtO2xpbmUtaGVpZ2h0OjF9Ym9keS5ub3RoaW5nICNoZWFkZXJfYXBwe2JhY2tncm91bmQtY29sb3I6IzAwMCFpbXBvcnRhbnQ7Y29sb3I6I2ZmZiFpbXBvcnRhbnR9Ym9keS5ub3RoaW5nICN0b3BiYXJ7YmFja2dyb3VuZC1jb2xvcjojMDAwIWltcG9ydGFudDtkaXNwbGF5Om5vbmV9Ym9keS5ub3RoaW5nICNzdG9yeXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDAhaW1wb3J0YW50O2NvbG9yOiNmZmYhaW1wb3J0YW50fS5wYW5lbF9iYWNre2JhY2tncm91bmQtY29sb3I6IzIwMmMzMztwYWRkaW5nOjE0cHg7bGluZS1oZWlnaHQ6MTtib3JkZXItcmFkaXVzOjEwcHh9LnBhbmVsX2JhY2sgaDJ7bWFyZ2luOjA7cGFkZGluZzowfS5jbG9ja19wYW5lbHtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOy1tcy1mbGV4LXBhY2s6anVzdGlmeTtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LW1zLWZsZXgtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiMyMDJjMzM7Ym9yZGVyLXJhZGl1czoxMnB4O2dhcDoxMnB4O3BhZGRpbmc6OHB4O21hcmdpbi1ib3R0b206MjBweDtwb3NpdGlvbjpyZWxhdGl2ZX0uY2xvY2tfaW1nIGltZ3ttYXgtd2lkdGg6NjBweDttYXgtaGVpZ2h0OjYwcHg7d2lkdGg6NjBweDtoZWlnaHQ6NjBweDstby1vYmplY3QtZml0OmNvbnRhaW47b2JqZWN0LWZpdDpjb250YWlufS5jbG9ja19pY29uIGltZ3ttYXgtd2lkdGg6MzVweDttYXgtaGVpZ2h0OjM1cHg7d2lkdGg6MzVweDtoZWlnaHQ6MzVweDstby1vYmplY3QtZml0OmNvbnRhaW47b2JqZWN0LWZpdDpjb250YWlufS5jbG9ja190ZXh0e3dpZHRoOjEwMCU7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1vcmllbnQ6dmVydGljYWw7LXdlYmtpdC1ib3gtZGlyZWN0aW9uOm5vcm1hbDstd2Via2l0LWZsZXgtZGlyZWN0aW9uOmNvbHVtbjstbXMtZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtsaW5lLWhlaWdodDoxfS5jbG9ja190ZXh0IGgze21hcmdpbjowO2xpbmUtaGVpZ2h0OjE7cGFkZGluZzowfS5vcmFuZ2V7Y29sb3I6I2VkNDUyZX1kaXYuY2xvY2tfcGFuZWwgYS5saW5rLWludGVybmFsLm1hY3JvLWxpbmt7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOjA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtvdXRsaW5lOjA7Y3Vyc29yOnBvaW50ZXI7bWluLXdpZHRoOjAhaW1wb3J0YW50fS5ub3Rlc19idXR0b257YmFja2dyb3VuZC1jb2xvcjojZmZmO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7cGFkZGluZzo4cHggMTJweDtwb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXItcmFkaXVzOjZweDttYXJnaW4tYm90dG9tOjEycHh9Lm5vdGVzX2J1dHRvbiBhLmxpbmstaW50ZXJuYWwubWFjcm8tbGlua3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO291dGxpbmU6MDtjdXJzb3I6cG9pbnRlcjttaW4td2lkdGg6MCFpbXBvcnRhbnR9Lm5vdGVzX3RleHR7Y29sb3I6IzAwMDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LW9yaWVudDp2ZXJ0aWNhbDstd2Via2l0LWJveC1kaXJlY3Rpb246bm9ybWFsOy13ZWJraXQtZmxleC1kaXJlY3Rpb246Y29sdW1uOy1tcy1mbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZvbnQtc2l6ZToxLjRlbTtmb250LXdlaWdodDo3MDA7bGluZS1oZWlnaHQ6MTt3aWR0aDoxMDAlOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5ub3Rlc190ZXh0IGltZ3ttYXJnaW46MCFpbXBvcnRhbnQ7d2lkdGg6NjlweCFpbXBvcnRhbnR9Lm5vdGVzX2ljb257ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH0udGV4dF9ibGFja3tjb2xvcjojMDAwO2xpbmUtaGVpZ2h0OjEuMzt0ZXh0LWFsaWduOmp1c3RpZnk7Zm9udC1zaXplOjEuMWVtfWJvZHkubm90ZXNpbiAjaGVhZGVyX2FwcHtiYWNrZ3JvdW5kLWNvbG9yOiNlM2UzZTMhaW1wb3J0YW50O2NvbG9yOiMwMDAhaW1wb3J0YW50fWJvZHkubm90ZXNpbiAjdG9wYmFye2JhY2tncm91bmQtY29sb3I6IzAwMCFpbXBvcnRhbnR9Ym9keS5ub3Rlc2luICNzdG9yeXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmYhaW1wb3J0YW50O2NvbG9yOiMwMDAhaW1wb3J0YW50fWJvZHkubm90ZXNpbiAjbmF2YmFyey13ZWJraXQtZmlsdGVyOmludmVydCgxMDAlKTtmaWx0ZXI6aW52ZXJ0KDEwMCUpfWRpdiNwYXNzYWdlLXN5c3RlbS5wYXNzYWdlLmRhcmsubm90aG91ciBkaXYuc2V0dGluZ19jb250YWluZXIgZGl2Lmljb25fc2V0dGluZyBpbWd7bWF4LWhlaWdodDo0MHB4IWltcG9ydGFudDttYXJnaW46NnB4IDRweH1kaXYjcGFzc2FnZS1zeXN0ZW0ucGFzc2FnZS5kYXJrLm5vdGhvdXIgZGl2I3BhZGRpbmctY29udGFpbmVyIGRpdi5zZXR0aW5nX2NvbnRhaW5lcntiYWNrZ3JvdW5kLWNvbG9yOiNmODY3NTQhaW1wb3J0YW50O2xpbmUtaGVpZ2h0OjE7Zm9udC13ZWlnaHQ6NzAwO3BhZGRpbmc6MTZweH0uY2xvY2tfaWNvbntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4fS5jbG9ja19pbWd7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH0uZ3JleXtjb2xvcjojOTU5NTk1fS5hY2hpZXZlbWVudHNfdGlsZXtjb2xvcjojZGUwMjg1O3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjEuMmVtO21hcmdpbi1ib3R0b206MTJweH0udG9kb19idXR0b257ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDtiYWNrZ3JvdW5kLWNvbG9yOiMyMDJjMzM7Ym9yZGVyLXJhZGl1czoxMnB4O2ZvbnQtc2l6ZToxLjNyZW07Z2FwOjEycHg7bWFyZ2luLWJvdHRvbToxMnB4fS50b2RvX2ljb257ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleH0udG9kb190ZXh0e2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXJ9PC9zdHlsZT48c2NyaXB0IHJvbGU9InNjcmlwdCIgaWQ9InR3aW5lLXVzZXItc2NyaXB0IiB0eXBlPSJ0ZXh0L3R3aW5lLWphdmFzY3JpcHQiPiJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiB2YWxpZGF0ZUtleShlKXt2YXIgYT1bMzExLDM1NiwzNTksMjk2LDM0NywzNDcsMzY4LDE2NCwxNzMsMTc2LDE2N107aWYoZS5sZW5ndGghPT1hLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyl7dmFyIHM9U3RyaW5nLmZyb21DaGFyQ29kZSgoYVt0XS01KS8zKTtpZihlW3RdIT09cylyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiByZXNldFBhdHJvbigpe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7U3RhdGUudGVtcG9yYXJ5LnBhdHJlb25DaGVjaz0hMSxTdGF0ZS52YXJpYWJsZXMucG1kbHA9ITEsU3RhdGUudmFyaWFibGVzLmFmcWxvcD0iIixTdGF0ZS52YXJpYWJsZXMuTWF4Q2FwPTUsU3RhdGUudmFyaWFibGVzLmZyZWVDYXA9NH0pLDFlMyl9Q29uZmlnLnNhdmVzLnNsb3RzPTE1LENvbmZpZy5zYXZlcy52ZXJzaW9uPTQsU3RhdGUudmFyaWFibGVzLmVuZE9mQ29udGVudD0hMSxTdGF0ZS52YXJpYWJsZXMuZW5kT2ZGcmVlQ29udGVudD0hMSxTdGF0ZS52YXJpYWJsZXMuY2FwPTEsU3RhdGUudmFyaWFibGVzLk1heENhcD01LFN0YXRlLnZhcmlhYmxlcy5mcmVlQ2FwPTQsU3RhdGUudmFyaWFibGVzLmJhY2s9ImhvbWUiLFN0YXRlLnZhcmlhYmxlcy50cmFuc2l0aW9uVGV4dD0idGVzdCIsU3RhdGUudmFyaWFibGVzLnRyYW5zaXRpb249ITEsU3RhdGUudmFyaWFibGVzLmRvbXN1Yj0wLFN0YXRlLnZhcmlhYmxlcy5uYW9taV9vZmZlcj0hMSxTdGF0ZS52YXJpYWJsZXMudmFuZXNzYV9yZWw9MCxTdGF0ZS52YXJpYWJsZXMuYW5uaWVfcm9tYW5jZT0wLFN0YXRlLnZhcmlhYmxlcy5uYW9taV9lbmVteT0hMSxTdGF0ZS52YXJpYWJsZXMua2lzc2luZz0hMSxTdGF0ZS52YXJpYWJsZXMuZ2FuZ2Jhbmc9ITEsU3RhdGUudmFyaWFibGVzLmhhaWxleV9kcmVzcz0xLFN0YXRlLnZhcmlhYmxlcy5qZW5uYT0wLFN0YXRlLnZhcmlhYmxlcy5qZW5uYV9tYWluPSEwLFN0YXRlLnZhcmlhYmxlcy5lcDE9ITEsU3RhdGUudmFyaWFibGVzLmVwMj0hMSxTdGF0ZS52YXJpYWJsZXMuSmVubmFBY2hpdmVtZW50PSExLFN0YXRlLnZhcmlhYmxlcy5oYWlsZXlfcmVsPTAsU3RhdGUudmFyaWFibGVzLmhhaWxleV90YWxrXzAxPSEwLFN0YXRlLnZhcmlhYmxlcy5oYWlsZXlfdWI9ITEsU3RhdGUudmFyaWFibGVzLmhhaWxleV91Yl9uZXh0PSEwLFN0YXRlLnZhcmlhYmxlcy5waGlsbGlwc19yZWw9MCxTdGF0ZS52YXJpYWJsZXMuZXAzPSExLFN0YXRlLnZhcmlhYmxlcy5oYWlsZXlfcmVsPTAsU3RhdGUudmFyaWFibGVzLmhhaWxleV90YWxrXzAxPSEwLFN0YXRlLnZhcmlhYmxlcy5oYWlsZXlfdWI9ITAsU3RhdGUudmFyaWFibGVzLmhhaWxleV91Yl9uZXh0PSEwLFN0YXRlLnZhcmlhYmxlcy5waGlsbGlwc19yZWw9MCxTdGF0ZS52YXJpYWJsZXMuZXAzPSExLFN0YXRlLnZhcmlhYmxlcy5hZnFsb3A9IiIsU3RhdGUudmFyaWFibGVzLnBtZGxwPSExLFN0YXRlLnZhcmlhYmxlcy5Ub2FzdEFubmllMj0hMSxTdGF0ZS52YXJpYWJsZXMuaG9yb3Njb3BlPVsiVG9kYXkgaXMgcGVyZmVjdCBmb3IgbGV0dGluZyBvdGhlcnMgdGFrZSB0aGUgc3BvdGxpZ2h0LiBZb3VyIGpveSBjb21lcyBmcm9tIHNlZWluZyB0aGVtIHNoaW5lIGJyaWdodGVyLCBlc3BlY2lhbGx5IHdoZW4gaXQncyB5b3VyIGNhbmRsZSB0aGV5J3JlIGhvbGRpbmcuIiwiU2hhcmluZyBpcyBjYXJpbmcsIGFuZCB0b2RheSwgeW91J3JlIHRoZSB1bHRpbWF0ZSBnaXZlci4gU2l0IGJhY2sgYW5kIGVuam95IHRoZSB1bmlxdWUgcGxlYXN1cmUgb2YgZ2VuZXJvc2l0eSBpbiBhbGwgaXRzIGZvcm1zLiIsIllvdXIgZHVhbCBuYXR1cmUgdGhyaXZlcyB3aGVuIHNvbWVvbmUgZWxzZSB0YWtlcyBjb250cm9sLiBMZXQgb3RoZXJzIHN0ZWVyIHRoZSBzaGlwIHdoaWxlIHlvdSBhZG1pcmUgdGhlIHZpZXcgZnJvbSBhIGRpc3RhbmNlLiIsIllvdXIgbnVydHVyaW5nIHNpZGUgd2lsbCByZWFjaCBpdHMgcGVhayB0b2RheS4gR2l2aW5nIHNvbWVvbmUgZWxzZSB0aGUga2V5cyB0byB5b3VyIHRyZWFzdXJlIGNoZXN0IGZlZWxzIHN0cmFuZ2VseSBzYXRpc2Z5aW5nLiIsIllvdSBsb3ZlIGF0dGVudGlvbiwgYnV0IHRvZGF5LCB5b3UnbGwgZmluZCBqb3kgaW4gc3RlcHBpbmcgYXNpZGUgYW5kIHdhdGNoaW5nIHNvbWVvbmUgZWxzZSBiYXNrIGluIHlvdXIgZ2xvdy4gVGhlaXIgaGFwcGluZXNzIGlzIHlvdXIgY3Jvd24uIiwiRGV0YWlscyBtYXR0ZXIsIGVzcGVjaWFsbHkgd2hlbiB0aGV5IGludm9sdmUgb3RoZXJzIGVuam95aW5nIHdoYXQgeW91IHZhbHVlIG1vc3QuIExlYW4gaW50byB0aGF0IHVyZ2UgdG8gb3JjaGVzdHJhdGUgdGhlaXIgZGVsaWdodCBwZXJmZWN0bHkuIiwiQmFsYW5jZSBpcyBrZXksIGJ1dCB0b2RheSwgaXQgdGlwcyB0b3dhcmRzIGxldHRpbmcgb3RoZXJzIGluZHVsZ2Ugd2hpbGUgeW91IGNoZWVyIHRoZW0gb24uIEhhcm1vbnkgaXMgc3dlZXRlciB3aGVuIHNoYXJlZC4iLCJUaGUgaW50ZW5zaXR5IHlvdSBjcmF2ZSBjb21lcyBmcm9tIHdhdGNoaW5nIG90aGVycyBzYXZvciB3aGF0IHlvdSBvZmZlci4gTGV0dGluZyBnbyBmZWVscyByaXNreSBidXQgb2gtc28tdGhyaWxsaW5nLiIsIkFkdmVudHVyZSBhd2FpdHMsIG5vdCBmb3IgeW91LCBidXQgZm9yIHRob3NlIHlvdSBpbnZpdGUgaW50byB5b3VyIHdvcmxkLiBTaGFyZSB0aGUgZXhjaXRlbWVudCBhbmQgcmV2ZWwgaW4gdGhlaXIgam91cm5leS4iLCJBbWJpdGlvbiB0YWtlcyBhIGJhY2tzZWF0IHRvZGF5IGFzIHlvdSBsZXQgc29tZW9uZSBlbHNlIGNsaW1iIHlvdXIgbGFkZGVyLiBUaGVpciBzdWNjZXNzIGZlZWxzIGxpa2UgeW91ciBncmVhdGVzdCBhY2NvbXBsaXNobWVudC4iLCJZb3VyIGlubm92YXRpdmUgc3Bpcml0IHNoaW5lcyB3aGVuIHlvdSBjcmVhdGUgb3Bwb3J0dW5pdGllcyBmb3Igb3RoZXJzIHRvIGVuam95IHdoYXQgeW91IGNoZXJpc2guIEZ1bGZpbGxtZW50IGNvbWVzIHRocm91Z2ggc2hhcmVkIGV4cGVyaWVuY2VzLiIsIllvdXIgZHJlYW15IG5hdHVyZSBhbGlnbnMgd2l0aCBhIHNlbGZsZXNzIGFjdCBvZiBnZW5lcm9zaXR5LiBHaXZpbmcgZnJlZWx5IHRvIG90aGVycyBtYWtlcyB5b3UgZmVlbCBsaWtlIHRoZSBzdGFyIG9mIHRoZWlyIHN0b3J5LiIsIllvdXIgZmlyZSBidXJucyBicmlnaHRlciB3aGVuIG90aGVycyBnZXQgdG8gZmVlbCBpdHMgd2FybXRoLiBMZXQgc29tZW9uZSBlbHNlIHRvYXN0IHRoZWlyIG1hcnNobWFsbG93cyB0b2RheS4iLCJXaGF04oCZcyB5b3VycyBpcyB0aGVpcnMsIGF0IGxlYXN0IGZvciB0b2RheS4gV2F0Y2hpbmcgdGhlbSBlbmpveSB5b3VyIHRyZWFzdXJlcyB3aWxsIGZlZWwgb2RkbHkgZnVsZmlsbGluZy4iLCJUd28gaGVhZHMgYXJlIGJldHRlciB0aGFuIG9uZSwgZXNwZWNpYWxseSB3aGVuIHRoZSBvdGhlciBvbmUgZ2V0cyB0byBlbmpveSBhbGwgdGhlIGZ1bi4gRG91YmxlIHRoZSBwbGVhc3VyZSwgZG91YmxlIHRoZSBwZXJzcGVjdGl2ZS4iLCJZb3VyIGVtb3Rpb25hbCBnZW5lcm9zaXR5IGlzIHVuc3RvcHBhYmxlLiBIYW5kIG92ZXIgdGhlIHJlaW5zIGFuZCBiYXNrIGluIHRoZSBjb3p5IGdsb3cgb2YgdGhlaXIgaGFwcGluZXNzLiIsIk5vcm1hbGx5LCB5b3XigJlkIGRlbWFuZCB0aGUgc3BvdGxpZ2h0LCBidXQgdG9kYXksIHRoZXJl4oCZcyBhIHVuaXF1ZSBqb3kgaW4gd2F0Y2hpbmcgc29tZW9uZSBlbHNlIHN0ZWFsIHlvdXIgdGh1bmRlci4gSXTigJlzIGZsYXR0ZXJpbmcsIHJlYWxseS4iLCJMZXQgZ28gb2YgcGVyZmVjdGlvbiBhbmQgZW1icmFjZSB0aGUgYmVhdXR5IG9mIHNvbWVvbmUgZWxzZSBlbmpveWluZyB3aGF0IHlvdSB3b3JrZWQgc28gaGFyZCB0byBwZXJmZWN0LiBTYXRpc2ZhY3Rpb24gZ3VhcmFudGVlZCEiLCJTaGFyaW5nIGlzbuKAmXQganVzdCBjYXJpbmcsIHRoYXTigJlzIHlvdXIgdmliZSB0b2RheS4gV2F0Y2hpbmcgdGhlIHNjYWxlcyB0aXAgaW4gdGhlaXIgZmF2b3Igd2lsbCBmZWVsIHN1cnByaXNpbmdseSBiYWxhbmNlZC4iLCJNeXN0ZXJ5IHN1aXRzIHlvdSwgYnV0IHNvIGRvZXMgaGFuZGluZyBvdmVyIHRoZSBrZXkgdG8gc29tZW9uZSBlbHNlLiBUaGUgdGhyaWxsIG9mIHRoZWlyIGRpc2NvdmVyeSB3aWxsIGJlIHdvcnRoIGl0LiIsIllvdXIgYWR2ZW50dXJvdXMgc3Bpcml0IGxvdmVzIHRvIGV4cGxvcmUsIGJ1dCB0b2RheSwgbGV0IG90aGVycyBlbmpveSB0aGUgcmlkZSB3aGlsZSB5b3UgcGxheSB0aGUgd2lzZSB0b3VyIGd1aWRlLiIsIkhhcmQgd29yayBwYXlzIG9mZiwgZXNwZWNpYWxseSB3aGVuIHNvbWVvbmUgZWxzZSByZWFwcyB0aGUgYmVuZWZpdHMuIFRoZWlyIHN1Y2Nlc3MgaXMgeW91ciBzaWxlbnQgdHJpdW1waC4iLCJZb3VyIHF1aXJreSBpZGVhcyBzaGluZSBicmlnaHRlciB3aGVuIHNoYXJlZC4gTGV0IG90aGVycyBib3Jyb3cgeW91ciBicmlsbGlhbmNlIGFuZCB3YXRjaCB0aGUgbWFnaWMgdW5mb2xkLiIsIllvdXIgc2Vuc2l0aXZpdHkgaXMgeW91ciBzdXBlcnBvd2VyLiBUb2RheSwgbGV0dGluZyBvdGhlcnMgZW5qb3kgdGhlIGRyZWFtIHlvdeKAmXZlIGJ1aWx0IGlzIHRoZSBzd2VldGVzdCBraW5kIG9mIGVzY2FwaXNtLiJdLFN0YXRlLnZhcmlhYmxlcy5jYXAyQW5uaWU9W3t0eXBlOjEsc2VuZGVyOiJZb3UiLG1lc3NhZ2U6IkRvbuKAmXQgd29ycnkgYWJvdXQgaXQifSx7dHlwZToxLHNlbmRlcjoiWW91IixtZXNzYWdlOiJJ4oCZbSBnb2luZyB0byBnZXQgaXQgZG9uZSBieSBGcmlkYXksIG5vIG1hdHRlciB3aGF0In0se3R5cGU6MSxzZW5kZXI6IkFubmllIixtZXNzYWdlOiJJ4oCZbSBnbGFkIHRvIGhlYXIgdGhhdCJ9LHt0eXBlOjEsc2VuZGVyOiJBbm5pZSIsbWVzc2FnZToiWW91IGtub3cgSSBiZWxpZXZlIGluIHlvdSJ9LHt0eXBlOjQsc2VuZGVyOiJBbm5pZSIsbWVzc2FnZToiYXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAifSx7dHlwZToxLHNlbmRlcjoiWW91IixtZXNzYWdlOiJJIGxvdmUgeW91In0se3R5cGU6MSxzZW5kZXI6IkFubmllIixtZXNzYWdlOiJJIGxvdmUgeW91IG1vcmUifV0sU3RhdGUudmFyaWFibGVzLmNhcDJQaGlsbGlwcz1be3R5cGU6MSxzZW5kZXI6IllvdSIsbWVzc2FnZToiVW5kZXJzdG9vZCwgc2lyLiBJ4oCZbGwgaGF2ZSBhbGwgdGhlIHJlcG9ydHMgcmVhZHkgYnkgRnJpZGF5In0se3R5cGU6MSxzZW5kZXI6IlBoaWxsaXBzIixtZXNzYWdlOiJUaGF04oCZcyBtb3JlIGxpa2UgaXQuIn0se3R5cGU6MSxzZW5kZXI6IlBoaWxsaXBzIixtZXNzYWdlOiJIYWlsZXkgd2lsbCBicmllZiB5b3Ugb24gd2hhdCB3ZSBuZWVkLiJ9LHt0eXBlOjEsc2VuZGVyOiJQaGlsbGlwcyIsbWVzc2FnZToiSeKAmWxsIHRlbGwgaGVyIHRvIGVtYWlsIHlvdSBhcyBzb29uIGFzIHNoZSBnZXRzIHRvIHRoZSBvZmZpY2UuIn0se3R5cGU6MSxzZW5kZXI6IllvdSIsbWVzc2FnZToiVW5kZXJzdG9vZCJ9XSxTdGF0ZS52YXJpYWJsZXMuY2FwMkhhaWxleT1be3R5cGU6MSxzZW5kZXI6IllvdSIsbWVzc2FnZToiVGhhbmsgeW91IHNvIG11Y2gsIEhhaWxleSJ9LHt0eXBlOjEsc2VuZGVyOiJZb3UiLG1lc3NhZ2U6IkkgZG9u4oCZdCBrbm93IHdoYXQgSeKAmWQgZG8gd2l0aG91dCB5b3UifSx7dHlwZToyLHNlbmRlcjoiSGFpbGV5IixtZXNzYWdlOiJhc3NldHMvaW1nL2VwMS9oYWlsZXlfcGhvdG9fMS53ZWJwIn0se3R5cGU6MSxzZW5kZXI6IkhhaWxleSIsbWVzc2FnZToiWW91IGdvdCB0aGlzICRuYW1lISJ9XSxTdGF0ZS52YXJpYWJsZXMuY2FwMk5hb21pPVt7dHlwZToxLHNlbmRlcjoiTmFvbWkiLG1lc3NhZ2U6Ik9oLCBJIGRpc2FncmVlIn0se3R5cGU6MSxzZW5kZXI6Ik5hb21pIixtZXNzYWdlOiJBbnl0aGluZyBpbnZvbHZpbmcgbXkgYmVzdCBmcmllbmQgaGFzIGV2ZXJ5dGhpbmcgdG8gZG8gd2l0aCBtZSJ9LHt0eXBlOjEsc2VuZGVyOiJOYW9taSIsbWVzc2FnZToiSeKAmXZlIGtub3duIGhlciBmYXIgbG9uZ2VyIHRoYW4geW91IGhhdmUifSx7dHlwZToxLHNlbmRlcjoiTmFvbWkiLG1lc3NhZ2U6IkJ1dCBoZXksIHlvdeKAmWxsIHRoYW5rIG1lIGV2ZW50dWFsbHkifSx7dHlwZToxLHNlbmRlcjoiTmFvbWkiLG1lc3NhZ2U6IlRoYW5rcyB0byBtZSwgeW91ciBkYXJrZXN0IGZhbnRhc2llcyB3aWxsIGNvbWUgdHJ1ZSJ9LHt0eXBlOjEsc2VuZGVyOiJZb3UiLG1lc3NhZ2U6IknigJltIGRvbmUgdGFsa2luZyB0byB5b3UifSx7dHlwZTo0LHNlbmRlcjoiTmFvbWkiLG1lc3NhZ2U6ImFzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X3dpbmsud2VicCJ9XSxTdGF0ZS52YXJpYWJsZXMuY2FwMlZhbmVzc2E9W3t0eXBlOjEsc2VuZGVyOiJZb3UiLG1lc3NhZ2U6IlRoYW5rcywgeW914oCZdmUgYWx3YXlzIGJlZW4gYSBnb29kIGZyaWVuZCJ9LHt0eXBlOjEsc2VuZGVyOiJZb3UiLG1lc3NhZ2U6IldlIGp1c3Qgd2FudCB0byB0cnkgc29tZXRoaW5nIG5ldywgdGhhdOKAmXMgYWxsIn0se3R5cGU6MSxzZW5kZXI6IlZhbmVzc2EiLG1lc3NhZ2U6IkkgdG90YWxseSBnZXQgaXQifSx7dHlwZToxLHNlbmRlcjoiVmFuZXNzYSIsbWVzc2FnZToiTGlrZSBJIHNhaWQsIGp1c3QgdGV4dCBtZSBpZiB5b3UgbmVlZCBhbnl0aGluZyJ9LHt0eXBlOjEsc2VuZGVyOiJZb3UiLG1lc3NhZ2U6Ikkgd2lsbCJ9LHt0eXBlOjEsc2VuZGVyOiJZb3UiLG1lc3NhZ2U6IlRha2UgY2FyZSwgVmFuZXNzYSJ9LHt0eXBlOjEsc2VuZGVyOiJWYW5lc3NhIixtZXNzYWdlOiJZb3UgdG9vLCAkbmFtZSJ9LHt0eXBlOjQsc2VuZGVyOiJOYW9taSIsbWVzc2FnZToiYXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfc21pbGUud2VicCJ9XSxTdGF0ZS52YXJpYWJsZXMuY2FwM0FubmllPVt7dHlwZToxLHNlbmRlcjoiQW5uaWUiLG1lc3NhZ2U6IkRvbuKAmXQgc3RheSB1cCB0b28gbGF0ZSJ9LHt0eXBlOjEsc2VuZGVyOiJBbm5pZSIsbWVzc2FnZToiTWFrZSBzdXJlIHRvIGdldCBlbm91Z2ggc2xlZXAifSx7dHlwZToxLHNlbmRlcjoiWW91IixtZXNzYWdlOiJJIHdpbGwifSx7dHlwZToxLHNlbmRlcjoiWW91IixtZXNzYWdlOiJHb29kIG5pZ2h0LCBiYWJlIn0se3R5cGU6MSxzZW5kZXI6IkFubmllIixtZXNzYWdlOiJHb29kIG5pZ2h0LCBob25leSJ9XSxTdGF0ZS52YXJpYWJsZXMuY2FwM0hhaWxleT1be3R5cGU6MSxzZW5kZXI6IllvdSIsbWVzc2FnZToiUHJvYmFibHkgcHVsbGluZyBhbiBhbGwtbmlnaHRlciJ9LHt0eXBlOjEsc2VuZGVyOiJZb3UiLG1lc3NhZ2U6Ikl0IHdpbGwgYmUgYSBnb29kIGRpc3RyYWN0aW9uIGZvciBtZSJ9LHt0eXBlOjEsc2VuZGVyOiJIYWlsZXkiLG1lc3NhZ2U6IkFscmlnaHQgdGhlbiJ9LHt0eXBlOjEsc2VuZGVyOiJIYWlsZXkiLG1lc3NhZ2U6IknigJlsbCB0ZXh0IHlvdSB3aGVuIEkgZ2V0IHRoZXJlIn1dLFN0YXRlLnZhcmlhYmxlcy5jYXA0QW5uaWU9W3t0eXBlOjEsc2VuZGVyOiJZb3UiLG1lc3NhZ2U6Ikp1c3QgdGFrZSB0aGUgd2hvbGUgZm9sZGVyIn0se3R5cGU6MSxzZW5kZXI6IkFubmllIixtZXNzYWdlOiJQZXJmZWN0LCBJ4oCZbGwgc3RvcCBieSBhcm91bmQgbm9vbiJ9LHt0eXBlOjEsc2VuZGVyOiJZb3UiLG1lc3NhZ2U6IlRoYW5rcyBiYWJlLCBJIGxvdmUgeW91In0se3R5cGU6MSxzZW5kZXI6IkFubmllIixtZXNzYWdlOiJJIGxvdmUgeW91IG1vcmUifV0sU3RhdGUudmFyaWFibGVzLmNhcDRIYWlsZXk9W3t0eXBlOjEsc2VuZGVyOiJZb3UiLG1lc3NhZ2U6IkFueXdheSwgSSBzaG91bGQgZ2V0IGJhY2sgdG8gd29yayJ9LHt0eXBlOjEsc2VuZGVyOiJZb3UiLG1lc3NhZ2U6IkxldOKAmXMgdGFsayBsYXRlciJ9LHt0eXBlOjEsc2VuZGVyOiJIYWlsZXkiLG1lc3NhZ2U6IlNvdW5kcyBnb29kICRuYW1lLCB0aGFua3MgYWdhaW4ifV0sU3RhdGUudmFyaWFibGVzLmNhcDRQaGlsbGlwcz1be3R5cGU6MSxzZW5kZXI6IlBoaWxsaXBzIixtZXNzYWdlOiJMZXQgbWUgYmUgY2xlYXIuIn0se3R5cGU6MSxzZW5kZXI6IlBoaWxsaXBzIixtZXNzYWdlOiJUaGUgZmlsZSBuZWVkcyB0byBiZSBpbiB0aGUgb2ZmaWNlIHdoZXJlIGl0IGJlbG9uZ3MgYmVmb3JlIGNsb3NpbmcgdGltZSwgb3IgbWF5YmUgeW91IHdvbuKAmXQgbmVlZCB0byBmaW5pc2ggdGhhdCByZXBvcnQuIn0se3R5cGU6MSxzZW5kZXI6IllvdSIsbWVzc2FnZToiVW5kZXJzdG9vZC4gSeKAmWxsIHNlZSB3aGF0IEkgY2FuIGRvIn1dLFN0YXRlLnZhcmlhYmxlcy5waG90b3M9WyJhc3NldHMvaW1nL2JnMS53ZWJwIl0sU3RhdGUudmFyaWFibGVzLkFubmllX25vdGlmaWNhdGlvbl8xPSExLFN0YXRlLnZhcmlhYmxlcy5zb3VuZD0hMCxTdGF0ZS52YXJpYWJsZXMubmFtZT0iSm9zaCIsU3RhdGUudmFyaWFibGVzLmhvdXI9IjA3OjQzIixTdGF0ZS52YXJpYWJsZXMuYnV0dG9uQWN0aXZlPSExLFN0YXRlLnZhcmlhYmxlcy5pbWc9IiIsU3RhdGUudmFyaWFibGVzLndhbGxwYXBlcj0iYXNzZXRzL2ltZy9iZzEud2VicCIsU3RhdGUudmFyaWFibGVzLnN1cHBvcnRJZD0iYWR3bG8wIixTdGF0ZS52YXJpYWJsZXMudGVzdHZhcj0hMSxTdGF0ZS52YXJpYWJsZXMuZGV2X3Zpc2libGU9ITEsU3RhdGUudmFyaWFibGVzLmRldl9sYXN0PSJIZXkhIixTdGF0ZS52YXJpYWJsZXMuQW5uaWVfY2hhdExvZz1bXSxTdGF0ZS52YXJpYWJsZXMuQW5uaWVfY2hhdFN0YXRlPSJBbm5pZVN0YXJ0MSIsU3RhdGUudmFyaWFibGVzLkFubmllX2NoYXQ9ITAsU3RhdGUudmFyaWFibGVzLkFubmllX2xhc3RJZD0iI2FzZCIsU3RhdGUudmFyaWFibGVzLkFubmllX3BhdXNlZD0hMSxTdGF0ZS52YXJpYWJsZXMuQW5uaWVfbGFzdD0iSGV5IGhvbmV5LCBnb29kIG1vcm5pbmciLFN0YXRlLnZhcmlhYmxlcy5Bbm5pZV9sYXN0X2hvdXI9Ijc6NDMiLFN0YXRlLnZhcmlhYmxlcy5Bbm5pZV9vcHRpb25zPVtdLFN0YXRlLnZhcmlhYmxlcy5Bbm5pZV9ub3Rlcz1bXSxTdGF0ZS52YXJpYWJsZXMuUGhpbGxpcHNfdmlzaWJsZT0hMSxTdGF0ZS52YXJpYWJsZXMuUGhpbGxpcHNfY2hhdExvZz1bXSxTdGF0ZS52YXJpYWJsZXMuUGhpbGxpcHNfY2hhdFN0YXRlPSJQaGlsbGlwc1N0YXJ0MSIsU3RhdGUudmFyaWFibGVzLlBoaWxsaXBzX2NoYXQ9ITAsU3RhdGUudmFyaWFibGVzLlBoaWxsaXBzX2xhc3RJZD0iI2FzZCIsU3RhdGUudmFyaWFibGVzLlBoaWxsaXBzX3BhdXNlZD0hMSxTdGF0ZS52YXJpYWJsZXMuUGhpbGxpcHNfbGFzdD0iSSdtIGdvaW5nIHRvIG5lZWQgdGhlIHJldmVudWUgcmVwb3J0cyBieSBGcmlkYXkuIFlvdSBoYXZlIGZpdmUgZGF5cy4iLFN0YXRlLnZhcmlhYmxlcy5QaGlsbGlwc19sYXN0X2hvdXI9Ijg6MzciLFN0YXRlLnZhcmlhYmxlcy5QaGlsbGlwc19vcHRpb25zPVtdLFN0YXRlLnZhcmlhYmxlcy5QaGlsbGlwc19ub3Rlcz1bXSxTdGF0ZS52YXJpYWJsZXMuSGFpbGV5X3Zpc2libGU9ITEsU3RhdGUudmFyaWFibGVzLkhhaWxleV9jaGF0TG9nPVtdLFN0YXRlLnZhcmlhYmxlcy5IYWlsZXlfY2hhdFN0YXRlPSJIYWlsZXlTdGFydDEiLFN0YXRlLnZhcmlhYmxlcy5IYWlsZXlfY2hhdD0hMCxTdGF0ZS52YXJpYWJsZXMuSGFpbGV5X2xhc3RJZD0iI2FzZCIsU3RhdGUudmFyaWFibGVzLkhhaWxleV9wYXVzZWQ9ITEsU3RhdGUudmFyaWFibGVzLkhhaWxleV9sYXN0PSJIZXksIGhvdyBhcmUgeW91PyIsU3RhdGUudmFyaWFibGVzLkhhaWxleV9sYXN0X2hvdXI9Ijk6MDAiLFN0YXRlLnZhcmlhYmxlcy5IYWlsZXlfb3B0aW9ucz1bXSxTdGF0ZS52YXJpYWJsZXMuSGFpbGV5X25vdGVzPVtdLFN0YXRlLnZhcmlhYmxlcy5KZW5uYV92aXNpYmxlPSExLFN0YXRlLnZhcmlhYmxlcy5KZW5uYV9jaGF0TG9nPVtdLFN0YXRlLnZhcmlhYmxlcy5KZW5uYV9jaGF0U3RhdGU9Ikplbm5hMV8xIixTdGF0ZS52YXJpYWJsZXMuSmVubmFfY2hhdD0hMCxTdGF0ZS52YXJpYWJsZXMuSmVubmFfbGFzdElkPSIjYXNkIixTdGF0ZS52YXJpYWJsZXMuSmVubmFfcGF1c2VkPSExLFN0YXRlLnZhcmlhYmxlcy5KZW5uYV9sYXN0PSJIaSAkbmFtZSwgaXMgdGhpcyB5b3VyIG51bWJlcj8iLFN0YXRlLnZhcmlhYmxlcy5KZW5uYV9sYXN0X2hvdXI9Ijk6MDAiLFN0YXRlLnZhcmlhYmxlcy5KZW5uYV9vcHRpb25zPVtdLFN0YXRlLnZhcmlhYmxlcy5KZW5uYV9ub3Rlcz1bXSxTdGF0ZS52YXJpYWJsZXMuTmFvbWlfdmlzaWJsZT0hMSxTdGF0ZS52YXJpYWJsZXMuTmFvbWlfY2hhdExvZz1bXSxTdGF0ZS52YXJpYWJsZXMuTmFvbWlfY2hhdFN0YXRlPSJOYW9taVN0YXJ0MSIsU3RhdGUudmFyaWFibGVzLk5hb21pX2NoYXQ9ITAsU3RhdGUudmFyaWFibGVzLk5hb21pX2xhc3RJZD0iI2FzZCIsU3RhdGUudmFyaWFibGVzLk5hb21pX3BhdXNlZD0hMSxTdGF0ZS52YXJpYWJsZXMuTmFvbWlfbGFzdD0iSG9uZXN0bHksIEkgaGF2ZSB0byBjb25ncmF0dWxhdGUgeW91IixTdGF0ZS52YXJpYWJsZXMuTmFvbWlfbGFzdF9ob3VyPSIxMDowMCIsU3RhdGUudmFyaWFibGVzLk5hb21pX29wdGlvbnM9W10sU3RhdGUudmFyaWFibGVzLk5hb21pX25vdGVzPVtdLFN0YXRlLnZhcmlhYmxlcy5WYW5lc3NhX3Zpc2libGU9ITEsU3RhdGUudmFyaWFibGVzLlZhbmVzc2FfY2hhdExvZz1bXSxTdGF0ZS52YXJpYWJsZXMuVmFuZXNzYV9jaGF0U3RhdGU9IlZhbmVzc2FJbnRybzEiLFN0YXRlLnZhcmlhYmxlcy5WYW5lc3NhX2NoYXQ9ITAsU3RhdGUudmFyaWFibGVzLlZhbmVzc2FfbGFzdElkPSIjYXNkIixTdGF0ZS52YXJpYWJsZXMuVmFuZXNzYV9wYXVzZWQ9ITEsU3RhdGUudmFyaWFibGVzLlZhbmVzc2FfbGFzdD0iSGV5ICRuYW1lLCBob3figJlzIGV2ZXJ5dGhpbmc/IixTdGF0ZS52YXJpYWJsZXMuVmFuZXNzYV9sYXN0X2hvdXI9IjExOjU4IixTdGF0ZS52YXJpYWJsZXMuVmFuZXNzYV9vcHRpb25zPVtdLFN0YXRlLnZhcmlhYmxlcy5WYW5lc3NhX25vdGVzPVtdLHNldHVwLnNpZ25hbF9kaWFuYV92aXNpYmxlPWZ1bmN0aW9uKCl7U3RhdGUudmFyaWFibGVzLkRpYW5hX3Zpc2libGU9ITB9LHNldHVwLmlkPWZ1bmN0aW9uKCl7cmV0dXJuIm1lc3NhZ2UtMSIuY29uY2F0KE1hdGguZmxvb3IoNDI5NDk2NzI5NipNYXRoLnJhbmRvbSgpKS50b1N0cmluZygxNikpfSxzZXR1cC50b2dnbGVGdWxsU2NyZWVuPWZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOmRvY3VtZW50LmJvZHk7ZG9jdW1lbnQuZnVsbHNjcmVlbkVsZW1lbnQ/ZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4/ZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4oKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkVycm9yIGFsIHNhbGlyIGRlIHBhbnRhbGxhIGNvbXBsZXRhOiAiLmNvbmNhdChlLm1lc3NhZ2UpKX0pKTpkb2N1bWVudC53ZWJraXRFeGl0RnVsbHNjcmVlbj9kb2N1bWVudC53ZWJraXRFeGl0RnVsbHNjcmVlbigpOmRvY3VtZW50Lm1zRXhpdEZ1bGxzY3JlZW4mJmRvY3VtZW50Lm1zRXhpdEZ1bGxzY3JlZW4oKTplLnJlcXVlc3RGdWxsc2NyZWVuP2UucmVxdWVzdEZ1bGxzY3JlZW4oKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkVycm9yIGVuIHBhbnRhbGxhIGNvbXBsZXRhOiAiLmNvbmNhdChlLm1lc3NhZ2UpKX0pKTplLndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuP2Uud2Via2l0UmVxdWVzdEZ1bGxzY3JlZW4oKS5jYXRjaCgoZnVuY3Rpb24oZSl7cmV0dXJuIGNvbnNvbGUuZXJyb3IoIkVycm9yIGVuIHBhbnRhbGxhIGNvbXBsZXRhOiAiLmNvbmNhdChlLm1lc3NhZ2UpKX0pKTplLm1zUmVxdWVzdEZ1bGxzY3JlZW4mJmUubXNSZXF1ZXN0RnVsbHNjcmVlbigpfSxzZXR1cC50b2FzdD1mdW5jdGlvbihlLGEsdCl7dGhpcy5oaWRlVGltZW91dD1udWxsLHRoaXMuaGlkZVRpbWVvdXQ9c2V0VGltZW91dCgoZnVuY3Rpb24oKXsxPT1TdGF0ZS52YXJpYWJsZXMuc291bmQmJlNpbXBsZUF1ZGlvLnNlbGVjdCgidG9hc3QiKS52b2x1bWUoLjc1KS5wbGF5KCk7dmFyIHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cy5pZD0idG9hc3QtZnVsbCI7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aS5jbGFzc05hbWU9InRvYXN0LWNvbnRhaW5lciI7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bi5jbGFzc05hbWU9InRvYXN0LWF2YXRhciI7dmFyIG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7by5zcmM9ImFzc2V0cy9pbWcvIi5jb25jYXQoZSwiX2F2YXRhci53ZWJwIiksbi5hcHBlbmRDaGlsZChvKSxpLmFwcGVuZENoaWxkKG4pO3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3IuY2xhc3NOYW1lPSJ0b2FzdC10ZXh0Ijt2YXIgbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtsLnRleHRDb250ZW50PWEsci5hcHBlbmRDaGlsZChsKTt2YXIgaD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtoLnRleHRDb250ZW50PXQsci5hcHBlbmRDaGlsZChoKSxpLmFwcGVuZENoaWxkKHIpLHMuYXBwZW5kQ2hpbGQoaSksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzKSxzZXR1cC5jbGVhclNjcmVlbihzLmlkKX0pLDMwMCl9LHNldHVwLmNsZWFyU2NyZWVuPWZ1bmN0aW9uKGUpe3RoaXMuaGlkZVRpbWVvdXQ9bnVsbCx0aGlzLmhpZGVUaW1lb3V0PXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dHJ5e2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKGUpLnJlbW92ZSgpfWNhdGNoKGUpe2NvbnNvbGUuZXJyb3IoZSl9fSksMmUzKX0sJChkb2N1bWVudCkub24oImNsaWNrIiwiI3NraXBUb2dnbGVCdXR0b24iLChmdW5jdGlvbigpe1N0YXRlLnZhcmlhYmxlcy5idXR0b25BY3RpdmU9IVN0YXRlLnZhcmlhYmxlcy5idXR0b25BY3RpdmUsY29uc29sZS5sb2coU3RhdGUudmFyaWFibGVzLmJ1dHRvbkFjdGl2ZSl9KSksc2V0dXAuc2Nyb2xsSW5zdGE9ZnVuY3Rpb24oKXskKCJodG1sLCBib2R5Iikuc2Nyb2xsVG9wKCQoIiNlbmQiKS5vZmZzZXQoKS50b3ApLCQoIiNtZXNzYWdlX2NvbnRhaW5lciIpLnN0b3AoITApLmFuaW1hdGUoe29wYWNpdHk6MX0sNTAwKX0sc2V0dXAuc2Nyb2xsPWZ1bmN0aW9uKCl7JCgiaHRtbCwgYm9keSIpLnN0b3AoITAsITEpLmFuaW1hdGUoe3Njcm9sbFRvcDokKGRvY3VtZW50KS5oZWlnaHQoKX0sMWUzKX0sc2V0dXAuc2V0Qmc9ZnVuY3Rpb24oZSl7dmFyIGE9InVybCgiK2UrIikiO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIjpyb290Iikuc3R5bGUuc2V0UHJvcGVydHkoIi0tYmciLGEpfSxzZXR1cC5wYXRyb249ZnVuY3Rpb24oZSl7dmFsaWRhdGVLZXkoZSk/KFN0YXRlLnRlbXBvcmFyeS5wYXRyZW9uQ2hlY2s9ITAsU3RhdGUudmFyaWFibGVzLnBtZGxwPSEwKTooU3RhdGUudGVtcG9yYXJ5LnBhdHJlb25DaGVjaz0hMSxTdGF0ZS52YXJpYWJsZXMucG1kbHA9ITEpfSxTYXZlLm9uTG9hZC5hZGQoKGZ1bmN0aW9uKGUpe0NvbmZpZy5zYXZlcy52ZXJzaW9uPTQsZS52ZXJzaW9uPDImJihTdGF0ZS52YXJpYWJsZXMuaGFpbGV5X3JlbD0wLFN0YXRlLnZhcmlhYmxlcy5oYWlsZXlfdGFsa18wMT0hMCxTdGF0ZS52YXJpYWJsZXMuaGFpbGV5X3ViPSEwLFN0YXRlLnZhcmlhYmxlcy5oYWlsZXlfdWJfbmV4dD0hMCxTdGF0ZS52YXJpYWJsZXMucGhpbGxpcHNfcmVsPTAsU3RhdGUudmFyaWFibGVzLmVwMz0hMSxyZXNldFBhdHJvbigpLFN0YXRlLnZhcmlhYmxlcy5jYXAzQW5uaWU9W3t0eXBlOjEsc2VuZGVyOiJBbm5pZSIsbWVzc2FnZToiRG9u4oCZdCBzdGF5IHVwIHRvbyBsYXRlIn0se3R5cGU6MSxzZW5kZXI6IkFubmllIixtZXNzYWdlOiJNYWtlIHN1cmUgdG8gZ2V0IGVub3VnaCBzbGVlcCJ9LHt0eXBlOjEsc2VuZGVyOiJZb3UiLG1lc3NhZ2U6Ikkgd2lsbCJ9LHt0eXBlOjEsc2VuZGVyOiJZb3UiLG1lc3NhZ2U6Ikdvb2QgbmlnaHQsIGJhYmUifSx7dHlwZToxLHNlbmRlcjoiQW5uaWUiLG1lc3NhZ2U6Ikdvb2QgbmlnaHQsIGhvbmV5In1dLFN0YXRlLnZhcmlhYmxlcy5jYXAzSGFpbGV5PVt7dHlwZToxLHNlbmRlcjoiWW91IixtZXNzYWdlOiJQcm9iYWJseSBwdWxsaW5nIGFuIGFsbC1uaWdodGVyIn0se3R5cGU6MSxzZW5kZXI6IllvdSIsbWVzc2FnZToiSXQgd2lsbCBiZSBhIGdvb2QgZGlzdHJhY3Rpb24gZm9yIG1lIn0se3R5cGU6MSxzZW5kZXI6IkhhaWxleSIsbWVzc2FnZToiQWxyaWdodCB0aGVuIn0se3R5cGU6MSxzZW5kZXI6IkhhaWxleSIsbWVzc2FnZToiSeKAmWxsIHRleHQgeW91IHdoZW4gSSBnZXQgdGhlcmUifV0pLGUudmVyc2lvbjwzJiYocmVzZXRQYXRyb24oKSxTdGF0ZS52YXJpYWJsZXMuaGFpbGV5X2FubmllPSEwLFN0YXRlLnZhcmlhYmxlcy5hbm5pZV9sZXdkPTAsU3RhdGUudmFyaWFibGVzLnBoaWxsaXBzX3Rhc3RlPSExLFN0YXRlLnZhcmlhYmxlcy5lcDQ9ITEsU3RhdGUudmFyaWFibGVzLmNhcDRBbm5pZT1be3R5cGU6MSxzZW5kZXI6IllvdSIsbWVzc2FnZToiSnVzdCB0YWtlIHRoZSB3aG9sZSBmb2xkZXIifSx7dHlwZToxLHNlbmRlcjoiQW5uaWUiLG1lc3NhZ2U6IlBlcmZlY3QsIEnigJlsbCBzdG9wIGJ5IGFyb3VuZCBub29uIn0se3R5cGU6MSxzZW5kZXI6IllvdSIsbWVzc2FnZToiVGhhbmtzIGJhYmUsIEkgbG92ZSB5b3UifSx7dHlwZToxLHNlbmRlcjoiQW5uaWUiLG1lc3NhZ2U6IkkgbG92ZSB5b3UgbW9yZSJ9XSxTdGF0ZS52YXJpYWJsZXMuY2FwNEhhaWxleT1be3R5cGU6MSxzZW5kZXI6IllvdSIsbWVzc2FnZToiQW55d2F5LCBJIHNob3VsZCBnZXQgYmFjayB0byB3b3JrIn0se3R5cGU6MSxzZW5kZXI6IllvdSIsbWVzc2FnZToiTGV04oCZcyB0YWxrIGxhdGVyIn0se3R5cGU6MSxzZW5kZXI6IkhhaWxleSIsbWVzc2FnZToiU291bmRzIGdvb2QgJG5hbWUsIHRoYW5rcyBhZ2FpbiJ9XSxTdGF0ZS52YXJpYWJsZXMuY2FwNFBoaWxsaXBzPVt7dHlwZToxLHNlbmRlcjoiUGhpbGxpcHMiLG1lc3NhZ2U6IkxldCBtZSBiZSBjbGVhci4ifSx7dHlwZToxLHNlbmRlcjoiUGhpbGxpcHMiLG1lc3NhZ2U6IlRoZSBmaWxlIG5lZWRzIHRvIGJlIGluIHRoZSBvZmZpY2Ugd2hlcmUgaXQgYmVsb25ncyBiZWZvcmUgY2xvc2luZyB0aW1lLCBvciBtYXliZSB5b3Ugd29u4oCZdCBuZWVkIHRvIGZpbmlzaCB0aGF0IHJlcG9ydC4ifSx7dHlwZToxLHNlbmRlcjoiWW91IixtZXNzYWdlOiJVbmRlcnN0b29kLiBJ4oCZbGwgc2VlIHdoYXQgSSBjYW4gZG8ifV0pLGUudmVyc2lvbjw0JiZyZXNldFBhdHJvbigpfSkpOzwvc2NyaXB0Pjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEiIG5hbWU9Im1lc3NhZ2UiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCwxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7Jmx0OyZsdDt3aWRnZXQgJnF1b3Q7bWVzc2FnZSZxdW90OyZndDsmZ3Q7CiZsdDshLS1yZWdpb24gbWVzc2FnZSAtLSZndDsKJmx0OyZsdDtpZiAkYXJnc1sxXSAhPSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0O2RpdiBAaWQ9JnF1b3Q7JGFyZ3NbM10mcXVvdDsgY2xhc3M9JnF1b3Q7ZmxleCZxdW90OyZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O21lbnNhamVfY2Fwc3VsZSBwYWRkaW5nLW1lc3NhZ2UmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7dHlwaW5nJnF1b3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtkb3QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2RvdCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICAgICAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7ZG90JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogICAgICAgICAgICAmbHQ7L2RpdiZndDsKICAgICZsdDsvZGl2Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICZsdDtkaXYgQGlkPSZxdW90OyRhcmdzWzNdJnF1b3Q7IGNsYXNzPSZxdW90O3BsYXllcl9tZXNzYWdlJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O21lbnNhamVfY2Fwc3VsZSBwYWRkaW5nLW1lc3NhZ2UgaXpxdWllcmRhJnF1b3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDt0eXBpbmcmcXVvdDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtkb3QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtkb3QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtkb3QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7ICAgICAgCiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDt0aW1lZCAkYXJnc1swXSZndDsmZ3Q7CiZsdDsmbHQ7c2V0IF96ID0gJnF1b3Q7IyZxdW90OyskYXJnc1szXSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSBfeiB0OG4mZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkYXJnc1sxXSAhPSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7bWVuc2FqZV9jYXBzdWxlIHBhZGRpbmctbWVzc2FnZSBkZXJlY2hhJnF1b3Q7Jmd0OwogICAgICAgICAgICAkYXJnc1syXQogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7bWVuc2FqZV9jYXBzdWxlIHBhZGRpbmctbWVzc2FnZSBpenF1aWVyZGEmcXVvdDsmZ3Q7CiAgICAgICAgICAgICAgICAkYXJnc1syXQogICAgICAgICAgICAmbHQ7L2RpdiZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkYXJnc1sxXSAhPSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7YXVkaW8gJnF1b3Q7bWVzc2FnZSZxdW90OyBwbGF5IHZvbHVtZSAwLjc1Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2F1ZGlvICZxdW90O215bWVzc2FnZSZxdW90OyBwbGF5IHZvbHVtZSAwLjc1Jmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3dpZGdldCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMiIgbmFtZT0ibWVzc2FnZV9lbW9qaSIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDt3aWRnZXQgJnF1b3Q7bWVzc2FnZV9lbW9qaSZxdW90OyZndDsmZ3Q7Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDttZXNzYWdlX2ltZyZxdW90OyZndDsKCiZsdDsmbHQ7aWYgJGFyZ3NbMV0gPT0gdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgU3RhdGUudmFyaWFibGVzLnN1cHBvcnRJZCA9IHNldHVwLmlkKCk7CiAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aWYgJGFyZ3NbMl0gIT0gJnF1b3Q7WW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7ZGl2IEBpZD0mcXVvdDskc3VwcG9ydElkJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O21lbnNhamVfY2Fwc3VsZSBwYWRkaW5nLW1lc3NhZ2UmcXVvdDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDt0eXBpbmcmcXVvdDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtkb3QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtkb3QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtkb3QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIC41cyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJHN1cHBvcnRJZCA9ICZxdW90OyMmcXVvdDsrJHN1cHBvcnRJZCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtyZXBsYWNlICRzdXBwb3J0SWQmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2lmICRhcmdzWzJdICE9ICZxdW90O1lvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7aW1nIEBzcmM9JnF1b3Q7JGFyZ3NbMF0mcXVvdDsgY2xhc3M9JnF1b3Q7ZW1vamkmcXVvdDsvJmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7aW1nIEBzcmM9JnF1b3Q7JGFyZ3NbMF0mcXVvdDsgY2xhc3M9JnF1b3Q7ZW1vamkgZW1vamlfdXNlciZxdW90Oy8mZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDthdWRpbyAmcXVvdDtteW1lc3NhZ2UmcXVvdDsgcGxheSB2b2x1bWUgMC43NSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAgJmx0O2ltZyBAc3JjPSZxdW90OyRhcmdzWzBdJnF1b3Q7IGNsYXNzPSZxdW90O2Vtb2ppIGVtb2ppX3VzZXImcXVvdDsvJmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2lmICRhcmdzWzJdICE9ICZxdW90O1lvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDtpbWcgQHNyYz0mcXVvdDskYXJnc1swXSZxdW90OyBjbGFzcz0mcXVvdDtlbW9qaSZxdW90Oy8mZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7aW1nIEBzcmM9JnF1b3Q7JGFyZ3NbMF0mcXVvdDsgY2xhc3M9JnF1b3Q7ZW1vamkgZW1vamlfdXNlciZxdW90Oy8mZ3Q7CiAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDsmbHQ7Jmx0Oy93aWRnZXQmZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMyIgbmFtZT0ibWVzc2FnZV9pbWciIHRhZ3M9IiIgcG9zaXRpb249IjM1MCwxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7d2lkZ2V0ICZxdW90O21lc3NhZ2VfaW1nJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O21lc3NhZ2VfaW1nJnF1b3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkYXJnc1sxXSA9PSB0cnVlJmd0OyZndDsKICAgICAgICAmbHQ7ZGl2IEBpZD0mcXVvdDskYXJnc1syXSZxdW90OyZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtzZXQgJGFyZ3NbMl0gPSAmcXVvdDsjJnF1b3Q7KyRhcmdzWzJdJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtyZXBsYWNlICRhcmdzWzJdJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0IF90aHVtYm5haWwgPSAkYXJnc1swXS5zcGxpdCgmcXVvdDsuJnF1b3Q7KVswXSArICZxdW90O190aHVtYm5haWwud2VicCZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7aW1nIEBzcmM9JnF1b3Q7X3RodW1ibmFpbCZxdW90Oy8mZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtidXR0b24gJnF1b3Q7JnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkaW1nID0gJGFyZ3NbMF0mZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAgICAgRGlhbG9nLnNldHVwKCZxdW90OyZxdW90Oyk7CiAgICAgICAgICAgICAgICAgICAgICAgIERpYWxvZy53aWtpKCYjMzk7Jmx0OyZsdDtpbmNsdWRlICZxdW90O2ltZ19iaWcmcXVvdDsmZ3Q7Jmd0OyYjMzk7KTsKICAgICAgICAgICAgICAgICAgICAgICAgRGlhbG9nLm9wZW4oKTsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDsvYnV0dG9uJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDthdWRpbyAmcXVvdDtteW1lc3NhZ2UmcXVvdDsgcGxheSB2b2x1bWUgMC43NSZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtzZXQgX3RodW1ibmFpbCA9ICRhcmdzWzBdLnNwbGl0KCZxdW90Oy4mcXVvdDspWzBdICsgJnF1b3Q7X3RodW1ibmFpbC53ZWJwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0O2ltZyBAc3JjPSZxdW90O190aHVtYm5haWwmcXVvdDsvJmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2J1dHRvbiAmcXVvdDsmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJGltZyA9ICRhcmdzWzBdJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICBEaWFsb2cuc2V0dXAoJnF1b3Q7JnF1b3Q7KTsKICAgICAgICAgICAgICAgICAgICBEaWFsb2cud2lraSgmIzM5OyZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtpbWdfYmlnJnF1b3Q7Jmd0OyZndDsmIzM5Oyk7CiAgICAgICAgICAgICAgICAgICAgRGlhbG9nLm9wZW4oKTsKICAgICAgICAgICAgICAgICZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L2J1dHRvbiZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDsmbHQ7Jmx0Oy93aWRnZXQmZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNCIgbmFtZT0iaW1nX2JpZyIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDtpbWdfYmlnJnF1b3Q7Jmd0OwogICAgJmx0O2ltZyBAc3JjPSZxdW90OyRpbWcmcXVvdDsvJmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtzZXRfd2FsbHBhcGVyX2NhcHN1bGUmcXVvdDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtidXR0b24gJnF1b3Q7U2V0IGFzIHdhbGxwYXBlciZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7c2V0ICR3YWxscGFwZXIgPSAkaW1nJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9idXR0b24mZ3Q7Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjUiIG5hbWU9Im1lc3NhZ2Vfb2xkIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OyZsdDsmbHQ7d2lkZ2V0ICZxdW90O21lc3NhZ2VvbGQmcXVvdDsmZ3Q7Jmd0OwombHQ7IS0tcmVnaW9uIG1lc3NhZ2Ugb2xkIC0tJmd0OwombHQ7Jmx0O3NldCBfc2VuZGVyID0gJGFyZ3NbMF0mZ3Q7Jmd0OwombHQ7c3BhbiBjbGFzcz0mcXVvdDttYWNyby10aW1lZCZxdW90OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtmbGV4JnF1b3Q7Jmd0OwombHQ7Jmx0O2lmIF9zZW5kZXIgIT0gJnF1b3Q7WW91JnF1b3Q7Jmd0OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7bWVuc2FqZV9jYXBzdWxlIHBhZGRpbmctbWVzc2FnZSBkZXJlY2hhJnF1b3Q7Jmd0OwogICAgICAgICRhcmdzWzFdCiAgICAmbHQ7L2RpdiZndDsKICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtwbGF5ZXJfbWVzc2FnZSZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDttZW5zYWplX2NhcHN1bGUgcGFkZGluZy1tZXNzYWdlIGl6cXVpZXJkYSZxdW90OyZndDsKICAgICAgICAgICAgICAgICRhcmdzWzFdCiAgICAgICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7L3NwYW4mZ3Q7CiZsdDsmbHQ7L3dpZGdldCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNiIgbmFtZT0ibWVzc2FnZV9vdXRzaWRlIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OyZsdDsmbHQ7d2lkZ2V0ICZxdW90O21lc3NhZ2VvJnF1b3Q7Jmd0OyZndDsKJmx0OyEtLXJlZ2lvbiBtZXNzYWdlIG91dHNpZGUgLS0mZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7bWVzc2FnZV9vdXRzaWRlJnF1b3Q7Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDthdmF0YXImcXVvdDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpZiAkYXJnc1swXSA9PSAmcXVvdDtFbWlseSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lbWlseV9hdmF0YXIud2VicCZxdW90Oy8mZ3Q7CiAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aWYgJGFyZ3NbMF0gPT0gJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvQW5uaWVfYXZhdGFyLndlYnAmcXVvdDsvJmd0OwogICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2lmICRhcmdzWzBdID09ICZxdW90O1BoaWxsaXBzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL1BoaWxsaXBzX2F2YXRhci53ZWJwJnF1b3Q7LyZndDsKICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpZiAkYXJnc1swXSA9PSAmcXVvdDtOYW9taSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9OYW9taV9hdmF0YXIud2VicCZxdW90Oy8mZ3Q7CiAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aWYgJGFyZ3NbMF0gPT0gJnF1b3Q7VmFuZXNzYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9WYW5lc3NhX2F2YXRhci53ZWJwJnF1b3Q7LyZndDsKICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpZiAkYXJnc1swXSA9PSAmcXVvdDtIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvSGFpbGV5X2F2YXRhci53ZWJwJnF1b3Q7LyZndDsKICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpZiAkYXJnc1swXSA9PSAmcXVvdDtKZW5uYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9KZW5uYV9hdmF0YXIud2VicCZxdW90Oy8mZ3Q7CiAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aWYgJGFyZ3NbMF0gPT0gJnF1b3Q7ZGV2JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2Rldl9hdmF0YXIud2VicCZxdW90Oy8mZ3Q7CiAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3RleHRvJnF1b3Q7Jmd0OwogICAgICAgICZsdDtkaXYmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7bm9tYnJlJnF1b3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtpZiAkYXJnc1swXSA9PSAmcXVvdDtQaGlsbGlwcyZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgTXIuIFBoaWxsaXBzCiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtlbHNlaWYgJGFyZ3NbMF0gPT0gJnF1b3Q7ZGV2JnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAgICAgVGhlUGhvbmVHdXkgKGRldikKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICAgICAkYXJnc1swXQogICAgICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDttZW5zYWplJnF1b3Q7Jmd0OyRhcmdzWzFdJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0O2RpdiZndDsKICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtob3JhJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2lmICRhcmdzWzBdID09ICZxdW90O0VtaWx5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7aWYgJEVtaWx5X2NoYXQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtoYXNfbWVzc2FnZSZxdW90OyZndDshJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CgogICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aWYgJGFyZ3NbMF0gPT0gJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtpZiAkQW5uaWVfY2hhdCA9PSB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2hhc19tZXNzYWdlJnF1b3Q7Jmd0OyEmbHQ7L2RpdiZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2lmICRhcmdzWzBdID09ICZxdW90O1BoaWxsaXBzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7aWYgJFBoaWxsaXBzX2NoYXQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtoYXNfbWVzc2FnZSZxdW90OyZndDshJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpZiAkYXJnc1swXSA9PSAmcXVvdDtOYW9taSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O2lmICROYW9taV9jaGF0ID09IHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7aGFzX21lc3NhZ2UmcXVvdDsmZ3Q7ISZsdDsvZGl2Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CgogICAgICAgICAgICAmbHQ7Jmx0O2lmICRhcmdzWzBdID09ICZxdW90O1ZhbmVzc2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtpZiAkVmFuZXNzYV9jaGF0ID09IHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7aGFzX21lc3NhZ2UmcXVvdDsmZ3Q7ISZsdDsvZGl2Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CgogICAgICAgICAgICAmbHQ7Jmx0O2lmICRhcmdzWzBdID09ICZxdW90O0hhaWxleSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O2lmICRIYWlsZXlfY2hhdCA9PSB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2hhc19tZXNzYWdlJnF1b3Q7Jmd0OyEmbHQ7L2RpdiZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2lmICRhcmdzWzBdID09ICZxdW90O0RpYW5hJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7aWYgJERpYW5hX2NoYXQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtoYXNfbWVzc2FnZSZxdW90OyZndDshJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpZiAkYXJnc1swXSA9PSAmcXVvdDtKZW5uYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O2lmICRKZW5uYV9jaGF0ID09IHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7aGFzX21lc3NhZ2UmcXVvdDsmZ3Q7ISZsdDsvZGl2Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aWYgJGFyZ3NbMF0gPT0gJnF1b3Q7ZGV2JnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2hhc19tZXNzYWdlJnF1b3Q7Jmd0OyEmbHQ7L2RpdiZndDsKICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICZsdDsvZGl2Jmd0OwogICAgJmx0OyZsdDtsaW5rICZxdW90OyZxdW90OyAkYXJnc1swXSsmcXVvdDtfY2hhdCZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy93aWRnZXQmZ3Q7Jmd0OyZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNyIgbmFtZT0ibWVzc2FnZV90YWciIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCwxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7Jmx0OyZsdDt3aWRnZXQgJnF1b3Q7bWVzc2FnZV90YWcmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDttZXNzYWdlLXRhZyZxdW90OyZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O21lc3NhZ2UtdGFnLWNhcHN1bGUmcXVvdDsmZ3Q7Jmx0OyZsdDtwcmludCAkYXJnc1swXSZndDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKJmx0OyZsdDsvd2lkZ2V0Jmd0OyZndDsmbHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjgiIG5hbWU9Im1lc3NhZ2VfdG9hc3QiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSwxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7Jmx0OyZsdDt3aWRnZXQgJnF1b3Q7bWVzc2FnZV90b2FzdCZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7dG9hc3QtZnVsbCZxdW90OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDt0b2FzdC1jb250YWluZXImcXVvdDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7dG9hc3QtYXZhdGFyJnF1b3Q7Jmd0OwombHQ7Jmx0Oz0mIzM5OyZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvJiMzOTsrJGFyZ3NbMF0rJiMzOTtfYXZhdGFyLnBuZyZxdW90Oy8mZ3Q7JiMzOTsmZ3Q7Jmd0OwombHQ7L2RpdiZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDt0b2FzdC10ZXh0JnF1b3Q7Jmd0OwombHQ7ZGl2Jmd0O2hvbGEmbHQ7L2RpdiZndDsKJmx0O2RpdiZndDs5OjMwJmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7L2RpdiZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L3dpZGdldCZndDsmZ3Q7Jmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI5IiBuYW1lPSJtZXNzYWdlX3ZpZGVvIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDt3aWRnZXQgJnF1b3Q7bWVzc2FnZV92aWRlbyZxdW90OyZndDsmZ3Q7Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDttZXNzYWdlX2ltZyZxdW90OyZndDsKICAgICZsdDsmbHQ7aWYgJGFyZ3NbMl0gPT0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgICAgICBTdGF0ZS52YXJpYWJsZXMuc3VwcG9ydElkID0gc2V0dXAuaWQoKTsKICAgICAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDtkaXYgQGlkPSZxdW90OyRzdXBwb3J0SWQmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7bWVuc2FqZV9jYXBzdWxlIHBhZGRpbmctbWVzc2FnZSZxdW90OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3R5cGluZyZxdW90OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2RvdCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2RvdCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2RvdCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICAgICAgICAgICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7Jmx0O3RpbWVkIDFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtzZXQgJHN1cHBvcnRJZCA9ICZxdW90OyMmcXVvdDsrJHN1cHBvcnRJZCZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7cmVwbGFjZSAkc3VwcG9ydElkJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDtpbWcgQHNyYz0mcXVvdDskYXJnc1sxXSZxdW90Oy8mZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O2J1dHRvbiAmcXVvdDsmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRpbWcgPSAkYXJnc1swXSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICAgICBEaWFsb2cuc2V0dXAoJnF1b3Q7JnF1b3Q7KTsKICAgICAgICAgICAgICAgICAgICAgICAgRGlhbG9nLndpa2koJiMzOTsmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7dmlkZW9fYmlnJnF1b3Q7Jmd0OyZndDsmIzM5Oyk7CiAgICAgICAgICAgICAgICAgICAgICAgIERpYWxvZy5vcGVuKCk7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7L2J1dHRvbiZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDthdWRpbyAmcXVvdDtteW1lc3NhZ2UmcXVvdDsgcGxheSB2b2x1bWUgMC43NSZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiAgICAgICAgICAgICZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgICAgICZsdDtpbWcgQHNyYz0mcXVvdDskYXJnc1sxXSZxdW90Oy8mZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7YnV0dG9uICZxdW90OyZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkaW1nID0gJGFyZ3NbMF0mZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgIERpYWxvZy5zZXR1cCgmcXVvdDsmcXVvdDspOwogICAgICAgICAgICAgICAgICAgIERpYWxvZy53aWtpKCYjMzk7Jmx0OyZsdDtpbmNsdWRlICZxdW90O3ZpZGVvX2JpZyZxdW90OyZndDsmZ3Q7JiMzOTspOwogICAgICAgICAgICAgICAgICAgIERpYWxvZy5vcGVuKCk7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9idXR0b24mZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7Jmx0OyZsdDsvd2lkZ2V0Jmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEwIiBuYW1lPSJ2aWRlb19iaWciIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O2ltZ19iaWcmcXVvdDsmZ3Q7CiAgICAmbHQ7dmlkZW8gQHNyYz0mcXVvdDskaW1nJnF1b3Q7IGF1dG9wbGF5IGxvb3AmZ3Q7Jmx0Oy92aWRlbyZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTEiIG5hbWU9IkFubmllX2NoYXQiIHRhZ3M9Im1hcHAgbm90aG91ciIgcG9zaXRpb249IjEwMCwyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7Ci8qcmVnaW9uIEVtaWx5IGNoYXQqLwombHQ7Jmx0O2lmICRBbm5pZV9jaGF0ID09IHRydWUmZ3Q7Jmd0OwogICAgJmx0OyZsdDtoZWFkZXIgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsgJEFubmllX3BhdXNlZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aGVhZGVyICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0FubmllJnF1b3Q7ICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7bWVzc2FnZV9jb250YWluZXImcXVvdDsmZ3Q7CiZsdDsmbHQ7Zm9yIF9saW5lIHJhbmdlICRBbm5pZV9jaGF0TG9nJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgX2xpbmUudHlwZSA9PSAxJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgX2xpbmUuc2VuZGVyIF9saW5lLm1lc3NhZ2UgX2xpbmUuYXZhdGFyJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZWlmIF9saW5lLnR5cGUgPT0gMiZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDttZXNzYWdlX2ltZyBfbGluZS5tZXNzYWdlJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZWlmIF9saW5lLnR5cGUgPT0gMyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDttZXNzYWdlX3ZpZGVvIF9saW5lLm1lc3NhZ2VbMF0gX2xpbmUubWVzc2FnZVsxXSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2VpZiBfbGluZS50eXBlID09IDQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bWVzc2FnZV9lbW9qaSBfbGluZS5tZXNzYWdlIGZhbHNlIF9saW5lLnNlbmRlciZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7L2ZvciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJEFubmllX3BhdXNlZCA9PSBmYWxzZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRBbm5pZV9jaGF0ID09IHRydWUmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkQW5uaWVfY2hhdFN0YXRlJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBAaWQ9JnF1b3Q7JEFubmllX2xhc3RJZC5zbGljZSgxKSZxdW90OyZndDsmbHQ7L2RpdiZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O2VuZCZxdW90OyZndDsmbHQ7L2RpdiZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7Y2hhdF9iYXImcXVvdDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7Y29udGVudCZxdW90OyZndDsKJmx0OyZsdDtpZiAkQW5uaWVfcGF1c2VkID09IHRydWUmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkQW5uaWVfb3B0aW9uc1swXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICRBbm5pZV9vcHRpb25zWzBdLnRleHQmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJEFubmllX29wdGlvbnNbMF0ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRBbm5pZV9vcHRpb25zWzFdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJEFubmllX29wdGlvbnNbMV0udGV4dCZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkQW5uaWVfb3B0aW9uc1sxXS5wYXNzYWdlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJEFubmllX29wdGlvbnNbMl0mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bGluayAkQW5uaWVfb3B0aW9uc1syXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpbmNsdWRlICRBbm5pZV9vcHRpb25zWzJdLnBhc3NhZ2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkQW5uaWVfb3B0aW9uc1szXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICRBbm5pZV9vcHRpb25zWzNdLnRleHQmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJEFubmllX29wdGlvbnNbM10ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0O3RpbWVkIDAuMnMmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbEluc3RhKCk7CiAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTIiIG5hbWU9IkFubmllU3RhcnQxIiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0hleSBob25leSwgZ29vZCBtb3JuaW5nJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZXkgaG9uZXksIGdvb2QgbW9ybmluZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SGV5IGhvbmV5LCBnb29kIG1vcm5pbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtBcmUgeW91IG9rYXk/IERpZCB5b3UgYXJyaXZlIGFscmVhZHk/JnF1b3Q7ICZxdW90O1VvbGtrcm9sa2t5b2xra3dvbGtrdW9sa2tWb2xra2NvbGtrRG9sa2t5b2xra0lvbGtram9sa2tpb2xra2JvbGtrS29sa2t1b2xra1cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QXJlIHlvdSBva2F5PyBEaWQgeW91IGFycml2ZSBhbHJlYWR5PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QXJlIHlvdSBva2F5PyBEaWQgeW91IGFycml2ZSBhbHJlYWR5PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O0FvbGtrT29sa2tMb2xra3hvbGtrVG9sa2tlb2xra0NvbGtrciZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS45cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjQW9sa2tPb2xra0xvbGtreG9sa2tUb2xra2VvbGtrQ29sa2tyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SGkgaG9uZXksIHllcywganVzdCBnb3QgaGVyZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVTdGFydDFfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0hpIGhvbmV5LCB5ZXMsIGp1c3QgZ290IGhlcmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV8yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTMiIG5hbWU9IkFubmllU3RhcnQxXzIiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCwyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllU3RhcnQxXzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SGkgaG9uZXksIHllcywganVzdCBnb3QgaGVyZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hpIGhvbmV5LCB5ZXMsIGp1c3QgZ290IGhlcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hpIGhvbmV5LCB5ZXMsIGp1c3QgZ290IGhlcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Ym9sa2tMb2xra2ZvbGtrQm9sa2tib2xra2FvbGtra29sa2txJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNib2xra0xvbGtrZm9sa2tCb2xra2JvbGtrYW9sa2trb2xra3EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJdCYjMzk7cyBhbGwgZ29vZCBoZXJlLCBzbyBnbGFkIHRvIGZpbmFsbHkgc3RyZXRjaCBteSBsZWdzIGFmdGVyIHRoYXQgbG9uZyB0cmlwJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV8zJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SXQmIzM5O3MgYWxsIGdvb2QgaGVyZSwgc28gZ2xhZCB0byBmaW5hbGx5IHN0cmV0Y2ggbXkgbGVncyBhZnRlciB0aGF0IGxvbmcgdHJpcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTQiIG5hbWU9IkFubmllU3RhcnQxXzE0YSIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVTdGFydDFfMTRhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0FuZCB3aGF0IGFib3V0IG9uZSBmcm9tIHRoZSBiYWNrPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FuZCB3aGF0IGFib3V0IG9uZSBmcm9tIHRoZSBiYWNrPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QW5kIHdoYXQgYWJvdXQgb25lIGZyb20gdGhlIGJhY2s/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1lvdeKAmXJlIHN1Y2ggYSBuYXVnaHR5IGJveSZxdW90OyAmcXVvdDtZb2xra2dvbGtrVm9sa2tCb2xra2dvbGtreG9sa2tFb2xra3hvbGtrcW9sa2tub2xra0VvbGtrSG9sa2t0b2xra2lvbGtrcm9sa2thJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdeKAmXJlIHN1Y2ggYSBuYXVnaHR5IGJveSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW914oCZcmUgc3VjaCBhIG5hdWdodHkgYm95JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfeGQud2VicCZxdW90OyB0cnVlICZxdW90O0FubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX3hkLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDIuOXMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfaW1nICZxdW90O2Fzc2V0cy9pbWcvZXAxL2FubmllX3Bob3RvXzIud2VicCZxdW90OyB0cnVlICZxdW90O3RvbGtraG9sa2tub2xra0JvbGtrdm9sa2tWb2xra2pvbGtra29sa2tNb2xra3lvbGtrd29sa2tPb2xra0lvbGtrR29sa2tib2xra3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMiwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lcDEvYW5uaWVfcGhvdG9fMi53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkcGhvdG9zLnB1c2goJnF1b3Q7YXNzZXRzL2ltZy9lcDEvYW5uaWVfcGhvdG9fMi53ZWJwJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O09vbGtrUG9sa2tVb2xra3hvbGtrZ29sa2tob2xra3NvbGtrayZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy45cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjT29sa2tQb2xra1VvbGtreG9sa2tnb2xra2hvbGtrc29sa2trJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WW91IGFyZSBzbyBzZXh5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV8xNWFfMSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdSBhcmUgc28gc2V4eSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzE1YV8xJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I09vbGtrUG9sa2tVb2xra3hvbGtrZ29sa2tob2xra3NvbGtrayZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O/CfpbUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzE1NGFfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O/CfpbUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV8xNTRhXzImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTUiIG5hbWU9IkFubmllU3RhcnQxXzE1YV8xIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZVN0YXJ0MV8xNWFfMSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZb3UgYXJlIHNvIHNleHkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3UgYXJlIHNvIHNleHkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdSBhcmUgc28gc2V4eSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJ4oCZbSBnbGFkIHlvdSBsaWtlIHRoZW0mcXVvdDsgJnF1b3Q7bG9sa2tXb2xra3VvbGtrQ29sa2tGb2xra01vbGtrTG9sa2tOb2xra2ZvbGtrR29sa2t0b2xra1FvbGtrYW9sa2tCb2xra1pvbGtrcCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBnbGFkIHlvdSBsaWtlIHRoZW0mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJltIGdsYWQgeW91IGxpa2UgdGhlbSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjRzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7Tm93IEkgcmVhbGx5IGhhdmUgdG8gdGFrZSB0aGF0IHNob3dlciZxdW90OyAmcXVvdDtMb2xra2tvbGtrSm9sa2thb2xra2VvbGtrWG9sa2tJb2xra3BvbGtra29sa2tPb2xra0VvbGtrR29sa2tLb2xra0lvbGtrRG9sa2tJJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O05vdyBJIHJlYWxseSBoYXZlIHRvIHRha2UgdGhhdCBzaG93ZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O05vdyBJIHJlYWxseSBoYXZlIHRvIHRha2UgdGhhdCBzaG93ZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0J1dCBwbGVhc2Uga2VlcCBtZSB1cGRhdGVkIGFib3V0IHlvdXIgZGF5JnF1b3Q7ICZxdW90O0RvbGtrVG9sa2tyb2xra1pvbGtram9sa2tpb2xra0JvbGtrRG9sa2tTb2xra2JvbGtrcm9sa2tvb2xra25vbGtrUW9sa2tTb2xra1EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IHBsZWFzZSBrZWVwIG1lIHVwZGF0ZWQgYWJvdXQgeW91ciBkYXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0J1dCBwbGVhc2Uga2VlcCBtZSB1cGRhdGVkIGFib3V0IHlvdXIgZGF5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4ycyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtMb3ZlIHlvdSZxdW90OyAmcXVvdDtvb2xra1VvbGtrbm9sa2t0b2xra09vbGtrT29sa2tFb2xra2pvbGtrTm9sa2twb2xra2FvbGtrcW9sa2tFb2xra2RvbGtrcm9sa2tuJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0xvdmUgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtMb3ZlIHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7dG9sa2tyb2xra0JvbGtrRm9sa2tPb2xra1RvbGtrUW9sa2t6JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA2LjBzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN0b2xra3JvbGtrQm9sa2tGb2xra09vbGtrVG9sa2tRb2xra3omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGxvdmUgeW91IHRvbyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVTdGFydDFfMTZhXzEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGxvdmUgeW91IHRvbyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzE2YV8xJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3RvbGtrcm9sa2tCb2xra0ZvbGtrT29sa2tUb2xra1FvbGtreiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O/CfpbAmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzE2YV8yJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q78J+lsCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzE2YV8yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE2IiBuYW1lPSJBbm5pZVN0YXJ0MV8xNTRhXzIiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllU3RhcnQxXzE1NGFfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xld2RfZmFjZS53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7WW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9sZXdkX2ZhY2Uud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgIAogICAgJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SeKAmW0gZ2xhZCB5b3UgbGlrZSB0aGVtJnF1b3Q7ICZxdW90O0xvbGtrcm9sa2tsb2xra2hvbGtrbW9sa2tOb2xra0FvbGtrRm9sa2tIb2xra3lvbGtrUW9sa2txb2xra3JvbGtrVm9sa2tWb2xra2EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gZ2xhZCB5b3UgbGlrZSB0aGVtJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJ4oCZbSBnbGFkIHlvdSBsaWtlIHRoZW0mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O05vdyBJIHJlYWxseSBoYXZlIHRvIHRha2UgdGhhdCBzaG93ZXImcXVvdDsgJnF1b3Q7Wm9sa2tKb2xra2hvbGtrSW9sa2t0b2xra3lvbGtrc29sa2tvb2xra2NvbGtrY29sa2tpb2xra1FvbGtrQW9sa2tkb2xra1BvbGtrTCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtOb3cgSSByZWFsbHkgaGF2ZSB0byB0YWtlIHRoYXQgc2hvd2VyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtOb3cgSSByZWFsbHkgaGF2ZSB0byB0YWtlIHRoYXQgc2hvd2VyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuNXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtCdXQgcGxlYXNlIGtlZXAgbWUgdXBkYXRlZCBhYm91dCB5b3VyIGRheSZxdW90OyAmcXVvdDtUb2xra1FvbGtrVm9sa2tub2xra0lvbGtrTG9sa2t1b2xra3hvbGtrbW9sa2tqb2xra01vbGtrUG9sa2tOb2xra0JvbGtrRG9sa2tXJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCBwbGVhc2Uga2VlcCBtZSB1cGRhdGVkIGFib3V0IHlvdXIgZGF5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCdXQgcGxlYXNlIGtlZXAgbWUgdXBkYXRlZCBhYm91dCB5b3VyIGRheSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuMnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7TG92ZSB5b3UmcXVvdDsgJnF1b3Q7QW9sa2tWb2xra2ZvbGtrY29sa2tXb2xra25vbGtraG9sa2tSb2xra3NvbGtrZG9sa2tzb2xra3hvbGtrbG9sa2tZb2xra2FvbGtrdyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtMb3ZlIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7TG92ZSB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNS43cyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90OyB0cnVlICZxdW90O0FubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgCgombHQ7ZGl2IGlkPSZxdW90O2ZvbGtreG9sa2tMb2xra0tvbGtrZW9sa2tsb2xra0hvbGtrSyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNi43cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjZm9sa2t4b2xra0xvbGtrS29sa2tlb2xra2xvbGtrSG9sa2tLJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBsb3ZlIHlvdSB0b28mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzE2YV8xJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBsb3ZlIHlvdSB0b28mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV8xNmFfMSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNmb2xra3hvbGtrTG9sa2tLb2xra2VvbGtrbG9sa2tIb2xra0smcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDvwn6WwJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV8xNmFfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O/CfpbAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV8xNmFfMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNyIgbmFtZT0iQW5uaWVTdGFydDFfMTZhXzEiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCwyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllU3RhcnQxXzE2YV8xJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgbG92ZSB5b3UgdG9vJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBsb3ZlIHlvdSB0b28mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgbG92ZSB5b3UgdG9vJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2RvbGtrR29sa2tLb2xra0RvbGtrRW9sa2thb2xra2tvbGtreSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjZG9sa2tHb2xra0tvbGtrRG9sa2tFb2xra2FvbGtra29sa2t5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QnllJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV8xN2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtCeWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV8xN2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTgiIG5hbWU9IkFubmllU3RhcnQxXzE2YV8yIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZVN0YXJ0MV8xNmFfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7WW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7bm9sa2t3b2xra2xvbGtrTG9sa2t3b2xra1lvbGtrWW9sa2t4JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNub2xra3dvbGtrbG9sa2tMb2xra3dvbGtrWW9sa2tZb2xra3gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtCeWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzE3YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0J5ZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzE3YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxOSIgbmFtZT0iQW5uaWVTdGFydDFfMyIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllU3RhcnQxXzMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SXTigJlzIGFsbCBnb29kIGhlcmUsIHNvIGdsYWQgdG8gZmluYWxseSBzdHJldGNoIG15IGxlZ3MgYWZ0ZXIgdGhhdCBsb25nIHRyaXAmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdOKAmXMgYWxsIGdvb2QgaGVyZSwgc28gZ2xhZCB0byBmaW5hbGx5IHN0cmV0Y2ggbXkgbGVncyBhZnRlciB0aGF0IGxvbmcgdHJpcCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SXTigJlzIGFsbCBnb29kIGhlcmUsIHNvIGdsYWQgdG8gZmluYWxseSBzdHJldGNoIG15IGxlZ3MgYWZ0ZXIgdGhhdCBsb25nIHRyaXAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7RW9sa2t6b2xra2JvbGtrUG9sa2t4b2xra1RvbGtrRG9sa2tBJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNFb2xra3pvbGtrYm9sa2tQb2xra3hvbGtrVG9sa2tEb2xra0EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDvwn5iBJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV80JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q78J+YgSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjAiIG5hbWU9IkFubmllU3RhcnQxXzQiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZVN0YXJ0MV80JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfYmlnX3NtaWxlLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2JpZ19zbWlsZS53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIHN0aWxsIGNhbuKAmXQgYmVsaWV2ZSB0aGUgY29tcGFueSBzZW50IHlvdSBzbyBmYXImcXVvdDsgJnF1b3Q7YW9sa2tab2xra2hvbGtrQm9sa2tFb2xra3RvbGtrdW9sa2tSb2xra3pvbGtrdW9sa2tjb2xra3hvbGtrVG9sa2tOb2xra1dvbGtrdyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHN0aWxsIGNhbuKAmXQgYmVsaWV2ZSB0aGUgY29tcGFueSBzZW50IHlvdSBzbyBmYXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgc3RpbGwgY2Fu4oCZdCBiZWxpZXZlIHRoZSBjb21wYW55IHNlbnQgeW91IHNvIGZhciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SeKAmW0gc3RpbGwgcHJvY2Vzc2luZyB0aGUgZmFjdCB0aGF0IHlvdeKAmWxsIGJlIGF3YXkgZm9yIG1vbnRocyZxdW90OyAmcXVvdDtlb2xra1FvbGtrRm9sa2tZb2xra2RvbGtrZm9sa2t6b2xra3JvbGtrTW9sa2tXb2xra25vbGtrVG9sa2t1b2xra0dvbGtrTm9sa2tkJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJltIHN0aWxsIHByb2Nlc3NpbmcgdGhlIGZhY3QgdGhhdCB5b3XigJlsbCBiZSBhd2F5IGZvciBtb250aHMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJltIHN0aWxsIHByb2Nlc3NpbmcgdGhlIGZhY3QgdGhhdCB5b3XigJlsbCBiZSBhd2F5IGZvciBtb250aHMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9jcnlpbmcud2VicCZxdW90OyB0cnVlICZxdW90O0FubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2NyeWluZy53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgCgombHQ7ZGl2IGlkPSZxdW90O2FvbGtrdG9sa2tNb2xra0VvbGtrVm9sa2tXb2xra05vbGtrZiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNS4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjYW9sa2t0b2xra01vbGtrRW9sa2tWb2xra1dvbGtrTm9sa2tmJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WWVhaCwgSSBrbm93IGJhYmUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzUmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZZWFoLCBJIGtub3cgYmFiZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjEiIG5hbWU9IkFubmllU3RhcnQxXzUiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCwzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllU3RhcnQxXzUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WWVhaCwgSSBrbm93IGJhYmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFoLCBJIGtub3cgYmFiZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WWVhaCwgSSBrbm93IGJhYmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7TG9sa2tkb2xra0FvbGtrVm9sa2t2b2xra2RvbGtrbG9sa2t6JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNMb2xra2RvbGtrQW9sa2tWb2xra3ZvbGtrZG9sa2tsb2xra3omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtCdXQgeW91IGtub3cgSSBuZWVkIHRvIHNjb3JlIHBvaW50cyB3aXRoIG15IGJvc3MuIEkgcmVhbGx5IHdhbnQgdGhhdCBwcm9tb3Rpb24mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzYmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtCdXQgeW91IGtub3cgSSBuZWVkIHRvIHNjb3JlIHBvaW50cyB3aXRoIG15IGJvc3MuIEkgcmVhbGx5IHdhbnQgdGhhdCBwcm9tb3Rpb24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV82JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIyIiBuYW1lPSJBbm5pZVN0YXJ0MV82IiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZVN0YXJ0MV82JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0J1dCB5b3Uga25vdyBJIG5lZWQgdG8gc2NvcmUgcG9pbnRzIHdpdGggbXkgYm9zcy4gSSByZWFsbHkgd2FudCB0aGF0IHByb21vdGlvbiZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCB5b3Uga25vdyBJIG5lZWQgdG8gc2NvcmUgcG9pbnRzIHdpdGggbXkgYm9zcy4gSSByZWFsbHkgd2FudCB0aGF0IHByb21vdGlvbiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QnV0IHlvdSBrbm93IEkgbmVlZCB0byBzY29yZSBwb2ludHMgd2l0aCBteSBib3NzLiBJIHJlYWxseSB3YW50IHRoYXQgcHJvbW90aW9uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0xvbGtrTG9sa2tGb2xra1hvbGtrWG9sa2tGb2xra0RvbGtrQyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjTG9sa2tMb2xra0ZvbGtrWG9sa2tYb2xra0ZvbGtrRG9sa2tDJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SGUgZG9lc24mIzM5O3QgbGlrZSBtZSBtdWNoLCBidXQgSSYjMzk7bSBzdXJlIHRoaXMgd2lsbCBjaGFuZ2UgaG93IGhlIHNlZXMgbWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzcmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtIZSBkb2VzbiYjMzk7dCBsaWtlIG1lIG11Y2gsIGJ1dCBJJiMzOTttIHN1cmUgdGhpcyB3aWxsIGNoYW5nZSBob3cgaGUgc2VlcyBtZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjMiIG5hbWU9IkFubmllU3RhcnQxXzciIHRhZ3M9IiIgcG9zaXRpb249IjM1MCwzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllU3RhcnQxXzcmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SGUgZG9lc27igJl0IGxpa2UgbWUgbXVjaCwgYnV0IEnigJltIHN1cmUgdGhpcyB3aWxsIGNoYW5nZSBob3cgaGUgc2VlcyBtZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hlIGRvZXNu4oCZdCBsaWtlIG1lIG11Y2gsIGJ1dCBJ4oCZbSBzdXJlIHRoaXMgd2lsbCBjaGFuZ2UgaG93IGhlIHNlZXMgbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hlIGRvZXNu4oCZdCBsaWtlIG1lIG11Y2gsIGJ1dCBJ4oCZbSBzdXJlIHRoaXMgd2lsbCBjaGFuZ2UgaG93IGhlIHNlZXMgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBob3BlIHlvdeKAmXJlIHJpZ2h0JnF1b3Q7ICZxdW90O2dvbGtrT29sa2trb2xra1NvbGtrZm9sa2tEb2xra1NvbGtrVW9sa2tMb2xra2FvbGtrRm9sa2tMb2xra3RvbGtrVW9sa2tZb2xra3YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBob3BlIHlvdeKAmXJlIHJpZ2h0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGhvcGUgeW914oCZcmUgcmlnaHQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjVzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0J1dCBob25lc3RseSwgaGXigJlzIHN1Y2ggYW4gaWRpb3QgaWYgaGUgY2Fu4oCZdCBzZWUgaG93IGNyYXp5IGhhcmR3b3JraW5nIHlvdSBhcmUmcXVvdDsgJnF1b3Q7Q29sa2tQb2xra2pvbGtrZG9sa2tSb2xra2RvbGtrUm9sa2tPb2xra2hvbGtrQm9sa2t4b2xra1FvbGtrR29sa2tGb2xra3lvbGtrUiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgaG9uZXN0bHksIGhl4oCZcyBzdWNoIGFuIGlkaW90IGlmIGhlIGNhbuKAmXQgc2VlIGhvdyBjcmF6eSBoYXJkd29ya2luZyB5b3UgYXJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCdXQgaG9uZXN0bHksIGhl4oCZcyBzdWNoIGFuIGlkaW90IGlmIGhlIGNhbuKAmXQgc2VlIGhvdyBjcmF6eSBoYXJkd29ya2luZyB5b3UgYXJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtMaWtlIEkgc2FpZCBsYXN0IG5pZ2h0LCB5b3Uga25vdyBJIGhhdmUgeW91ciBiYWNrLCBhbHdheXMhJnF1b3Q7ICZxdW90O3NvbGtrRG9sa2tKb2xra0tvbGtrdW9sa2tvb2xra0xvbGtrcG9sa2tnb2xra0JvbGtra29sa2tPb2xra3ZvbGtrWG9sa2tpb2xra0ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGlrZSBJIHNhaWQgbGFzdCBuaWdodCwgeW91IGtub3cgSSBoYXZlIHlvdXIgYmFjaywgYWx3YXlzISZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7TGlrZSBJIHNhaWQgbGFzdCBuaWdodCwgeW91IGtub3cgSSBoYXZlIHlvdXIgYmFjaywgYWx3YXlzISZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjJzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X3Rvbmd1ZS53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfdG9uZ3VlLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7ZW9sa2tab2xra0hvbGtrVm9sa2tVb2xra25vbGtrd29sa2tKJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA2LjJzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNlb2xra1pvbGtrSG9sa2tWb2xra1VvbGtrbm9sa2t3b2xra0omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGtub3csIGFuZCBpdCBtZWFucyBzbyBtdWNoIHRvIGhhdmUgc29tZW9uZSBsaWtlIHlvdSB0aGVyZSBmb3IgbWUgbm8gbWF0dGVyIHdoYXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzgmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGtub3csIGFuZCBpdCBtZWFucyBzbyBtdWNoIHRvIGhhdmUgc29tZW9uZSBsaWtlIHlvdSB0aGVyZSBmb3IgbWUgbm8gbWF0dGVyIHdoYXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV84JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI0IiBuYW1lPSJBbm5pZVN0YXJ0MV84IiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZVN0YXJ0MV84JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kga25vdywgYW5kIGl0IG1lYW5zIHNvIG11Y2ggdG8gaGF2ZSBzb21lb25lIGxpa2UgeW91IHRoZXJlIGZvciBtZSBubyBtYXR0ZXIgd2hhdCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kga25vdywgYW5kIGl0IG1lYW5zIHNvIG11Y2ggdG8gaGF2ZSBzb21lb25lIGxpa2UgeW91IHRoZXJlIGZvciBtZSBubyBtYXR0ZXIgd2hhdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBrbm93LCBhbmQgaXQgbWVhbnMgc28gbXVjaCB0byBoYXZlIHNvbWVvbmUgbGlrZSB5b3UgdGhlcmUgZm9yIG1lIG5vIG1hdHRlciB3aGF0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1RoYXTigJlzIGJlY2F1c2UgSSBsb3ZlIHlvdSZxdW90OyAmcXVvdDtHb2xra3FvbGtra29sa2tOb2xra2tvbGtraW9sa2tYb2xra0FvbGtrQ29sa2twb2xra2lvbGtrUm9sa2tSb2xra1JvbGtrRG9sa2tLJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYXTigJlzIGJlY2F1c2UgSSBsb3ZlIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhhdOKAmXMgYmVjYXVzZSBJIGxvdmUgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJ4oCZbGwgYWx3YXlzIGJlIHRoZXJlIGZvciB5b3UmcXVvdDsgJnF1b3Q7Ym9sa2tyb2xra2VvbGtrdm9sa2tQb2xra1VvbGtrZG9sa2tmb2xra09vbGtrRG9sa2tWb2xra3NvbGtrV29sa2tsb2xra2ZvbGtrRiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbGwgYWx3YXlzIGJlIHRoZXJlIGZvciB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJlsbCBhbHdheXMgYmUgdGhlcmUgZm9yIHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O25vbGtrZG9sa2tpb2xra3BvbGtrdW9sa2tBb2xra2RvbGtrZSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjbm9sa2tkb2xra2lvbGtrcG9sa2t1b2xra0FvbGtrZG9sa2tlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q78J+lsCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVTdGFydDFfMTBhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q78J+lsCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzEwYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNub2xra2RvbGtraW9sa2twb2xra3VvbGtrQW9sa2tkb2xra2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGxvdmUgeW91IHRvby4gWW91IHdpbGwgYWx3YXlzIGhhdmUgbWUgYnkgeW91ciBzaWRlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV8xMGImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGxvdmUgeW91IHRvby4gWW91IHdpbGwgYWx3YXlzIGhhdmUgbWUgYnkgeW91ciBzaWRlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVTdGFydDFfMTBiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI1IiBuYW1lPSJBbm5pZVN0YXJ0MV8xMGEiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCwzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllU3RhcnQxXzEwYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7WW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgIAogICAgJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtIb25leSwgSSBuZWVkIHRvIGhvcCBpbiB0aGUgc2hvd2VyIGluIGEgZmV3IG1pbnV0ZXMmcXVvdDsgJnF1b3Q7bm9sa2tpb2xra09vbGtrVm9sa2tnb2xra1lvbGtrUG9sa2tsb2xra0FvbGtrZW9sa2tRb2xra2tvbGtrTm9sa2tYb2xra2RvbGtrcyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIb25leSwgSSBuZWVkIHRvIGhvcCBpbiB0aGUgc2hvd2VyIGluIGEgZmV3IG1pbnV0ZXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hvbmV5LCBJIG5lZWQgdG8gaG9wIGluIHRoZSBzaG93ZXIgaW4gYSBmZXcgbWludXRlcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjhzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7WW91IGtub3csIGdvdHRhIGdldCByZWFkeSBmb3Igd29yayZxdW90OyAmcXVvdDtWb2xra0xvbGtrQ29sa2tmb2xra0VvbGtrRm9sa2t0b2xra1ZvbGtrYW9sa2tkb2xra1BvbGtrWm9sa2t6b2xra0ZvbGtreG9sa2t4JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBrbm93LCBnb3R0YSBnZXQgcmVhZHkgZm9yIHdvcmsmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdSBrbm93LCBnb3R0YSBnZXQgcmVhZHkgZm9yIHdvcmsmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtqb2xra1ZvbGtrTm9sa2tBb2xra0VvbGtrZ29sa2tmb2xra00mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDUuMXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2pvbGtrVm9sa2tOb2xra0FvbGtrRW9sa2tnb2xra2ZvbGtrTSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0NvdWxkIHlvdSBzZW5kIG1lIGEgcGljIHRoZW4/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV8xMWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtDb3VsZCB5b3Ugc2VuZCBtZSBhIHBpYyB0aGVuPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzExYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNqb2xra1ZvbGtrTm9sa2tBb2xra0VvbGtrZ29sa2tmb2xra00mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtPaCwgb2YgY291cnNlLCBnbyBkbyB0aGF0IGJhYmUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzExYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O09oLCBvZiBjb3Vyc2UsIGdvIGRvIHRoYXQgYmFiZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzExYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNiIgbmFtZT0iQW5uaWVTdGFydDFfMTBiIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZVN0YXJ0MV8xMGImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBsb3ZlIHlvdSB0b28uIFlvdSB3aWxsIGFsd2F5cyBoYXZlIG1lIGJ5IHlvdXIgc2lkZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbG92ZSB5b3UgdG9vLiBZb3Ugd2lsbCBhbHdheXMgaGF2ZSBtZSBieSB5b3VyIHNpZGUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgbG92ZSB5b3UgdG9vLiBZb3Ugd2lsbCBhbHdheXMgaGF2ZSBtZSBieSB5b3VyIHNpZGUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtIb25leSwgSSBuZWVkIHRvIGhvcCBpbiB0aGUgc2hvd2VyIGluIGEgZmV3IG1pbnV0ZXMmcXVvdDsgJnF1b3Q7a29sa2tib2xra3JvbGtrVm9sa2tib2xra2hvbGtrbW9sa2txb2xra29vbGtrSG9sa2tHb2xra2xvbGtrdW9sa2t5b2xra0hvbGtrTSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIb25leSwgSSBuZWVkIHRvIGhvcCBpbiB0aGUgc2hvd2VyIGluIGEgZmV3IG1pbnV0ZXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hvbmV5LCBJIG5lZWQgdG8gaG9wIGluIHRoZSBzaG93ZXIgaW4gYSBmZXcgbWludXRlcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7WW91IGtub3csIGdvdHRhIGdldCByZWFkeSBmb3Igd29yayZxdW90OyAmcXVvdDtlb2xra0NvbGtrTG9sa2tYb2xra0FvbGtrQW9sa2t5b2xra1FvbGtrWm9sa2t5b2xra0RvbGtrT29sa2tab2xra1JvbGtra29sa2t6JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBrbm93LCBnb3R0YSBnZXQgcmVhZHkgZm9yIHdvcmsmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdSBrbm93LCBnb3R0YSBnZXQgcmVhZHkgZm9yIHdvcmsmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDt0b2xra05vbGtraG9sa2tib2xra2xvbGtrZ29sa2tZb2xra2gmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuNHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3RvbGtrTm9sa2tob2xra2JvbGtrbG9sa2tnb2xra1lvbGtraCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0NvdWxkIHlvdSBzZW5kIG1lIGEgcGljIHRoZW4/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV8xMWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtDb3VsZCB5b3Ugc2VuZCBtZSBhIHBpYyB0aGVuPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzExYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN0b2xra05vbGtraG9sa2tib2xra2xvbGtrZ29sa2tZb2xra2gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtPaCwgb2YgY291cnNlLCBnbyBkbyB0aGF0IGJhYmUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzExYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O09oLCBvZiBjb3Vyc2UsIGdvIGRvIHRoYXQgYmFiZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzExYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNyIgbmFtZT0iQW5uaWVTdGFydDFfMTFhIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZVN0YXJ0MV8xMWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7Q291bGQgeW91IHNlbmQgbWUgYSBwaWMgdGhlbj8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtDb3VsZCB5b3Ugc2VuZCBtZSBhIHBpYyB0aGVuPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7Q291bGQgeW91IHNlbmQgbWUgYSBwaWMgdGhlbj8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGRvbXN1YiA9ICRkb21zdWIrMSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtxb2xra3hvbGtrRG9sa2tNb2xra0dvbGtrUW9sa2t3b2xra3AmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3FvbGtreG9sa2tEb2xra01vbGtrR29sa2tRb2xra3dvbGtrcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O/CfpbUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzEyYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O/CfpbUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV8xMmEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjgiIG5hbWU9IkFubmllU3RhcnQxXzExYiIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVTdGFydDFfMTFiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O09oLCBvZiBjb3Vyc2UsIGdvIGRvIHRoYXQgYmFiZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09oLCBvZiBjb3Vyc2UsIGdvIGRvIHRoYXQgYmFiZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7T2gsIG9mIGNvdXJzZSwgZ28gZG8gdGhhdCBiYWJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRkb21zdWIgPSAkZG9tc3ViLTEmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuMnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7VGhhbmtzIGhvbmV5JnF1b3Q7ICZxdW90O3hvbGtrUG9sa2tjb2xra2JvbGtrc29sa2tCb2xra1BvbGtrc29sa2tJb2xra2NvbGtrem9sa2tlb2xra0pvbGtrTm9sa2tDb2xra24mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhbmtzIGhvbmV5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUaGFua3MgaG9uZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O09oLCBhbmQgb25lIG1vcmUgdGhpbmcmcXVvdDsgJnF1b3Q7bG9sa2tzb2xra2pvbGtrem9sa2tRb2xra3hvbGtrV29sa2twb2xra1JvbGtrWm9sa2t3b2xra2hvbGtrSm9sa2t4b2xra2dvbGtrYyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPaCwgYW5kIG9uZSBtb3JlIHRoaW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtPaCwgYW5kIG9uZSBtb3JlIHRoaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuN3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfaW1nICZxdW90O2Fzc2V0cy9pbWcvZXAxL2FubmllX3Bob3RvXzEud2VicCZxdW90OyB0cnVlICZxdW90O0VvbGtrUW9sa2tBb2xra2ZvbGtrY29sa2tNb2xra0tvbGtrRG9sa2t6b2xra2xvbGtrdW9sa2tZb2xra21vbGtrdW9sa2tKb2xra24mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMiwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lcDEvYW5uaWVfcGhvdG9fMS53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkcGhvdG9zLnB1c2goJnF1b3Q7YXNzZXRzL2ltZy9lcDEvYW5uaWVfcGhvdG9fMS53ZWJwJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7U28geW91IGRvbuKAmXQgZm9yZ2V0IG1lJnF1b3Q7ICZxdW90O1dvbGtrY29sa2thb2xra1hvbGtrVW9sa2twb2xra2RvbGtrT29sa2t1b2xra09vbGtrd29sa2twb2xra0tvbGtrem9sa2t4b2xra0ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U28geW91IGRvbuKAmXQgZm9yZ2V0IG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtTbyB5b3UgZG9u4oCZdCBmb3JnZXQgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC44cyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV93aW5rLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV93aW5rLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7b29sa2tnb2xra1ZvbGtrSG9sa2tmb2xra1hvbGtrY29sa2t5JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA1LjhzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNvb2xra2dvbGtrVm9sa2tIb2xra2ZvbGtrWG9sa2tjb2xra3kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGNvdWxkIG5ldmVyIGZvcmdldCB5b3UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzEyYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgY291bGQgbmV2ZXIgZm9yZ2V0IHlvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllU3RhcnQxXzEyYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyOSIgbmFtZT0iQW5uaWVTdGFydDFfMTJhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVTdGFydDFfMTJhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbGV3ZF9mYWNlLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xld2RfZmFjZS53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGtuZXcgeW91IHdlcmUgZ29pbmcgdG8gYXNrIGxvbCZxdW90OyAmcXVvdDtkb2xra21vbGtrbG9sa2t0b2xra25vbGtra29sa2tXb2xra2xvbGtrRG9sa2tXb2xra0FvbGtram9sa2tkb2xra0JvbGtrb29sa2tmJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kga25ldyB5b3Ugd2VyZSBnb2luZyB0byBhc2sgbG9sJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGtuZXcgeW91IHdlcmUgZ29pbmcgdG8gYXNrIGxvbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjRzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBrbm93IHlvdSB0b28gd2VsbCZxdW90OyAmcXVvdDtLb2xra3pvbGtrUW9sa2tub2xra0FvbGtrSW9sa2tQb2xra3RvbGtrVm9sa2tHb2xra05vbGtrWW9sa2tYb2xra1VvbGtrY29sa2t2JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kga25vdyB5b3UgdG9vIHdlbGwmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kga25vdyB5b3UgdG9vIHdlbGwmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtSb2xra1FvbGtrRW9sa2t6b2xra1FvbGtrdm9sa2trb2xra3gmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuNXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1JvbGtrUW9sa2tFb2xra3pvbGtrUW9sa2t2b2xra2tvbGtreCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O/CfpKMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzEzYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O/CfpKMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV8xM2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzAiIG5hbWU9IkFubmllU3RhcnQxXzEyYiIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSwzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllU3RhcnQxXzEyYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGNvdWxkIG5ldmVyIGZvcmdldCB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGNvdWxkIG5ldmVyIGZvcmdldCB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgY291bGQgbmV2ZXIgZm9yZ2V0IHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtrb2xra1dvbGtrT29sa2t3b2xra1VvbGtrWm9sa2tOb2xra3ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2tvbGtrV29sa2tPb2xra3dvbGtrVW9sa2tab2xra05vbGtrciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgbG92ZSB5b3UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzEzYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgbG92ZSB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV8xM2ImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzEiIG5hbWU9IkFubmllU3RhcnQxXzEzYSIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVTdGFydDFfMTNhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbG1hby53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7WW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9sbWFvLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0hlcmUgeW91IGdvJnF1b3Q7ICZxdW90O1lvbGtrdm9sa2tIb2xra21vbGtrcm9sa2tSb2xra2hvbGtrU29sa2tZb2xra1FvbGtrdW9sa2tNb2xra3BvbGtram9sa2tOb2xra0omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGVyZSB5b3UgZ28mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hlcmUgeW91IGdvJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuNHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfaW1nICZxdW90O2Fzc2V0cy9pbWcvZXAxL2FubmllX3Bob3RvXzEud2VicCZxdW90OyB0cnVlICZxdW90O1JvbGtrVm9sa2tpb2xra0JvbGtrd29sa2t5b2xra1lvbGtrcm9sa2tTb2xra0NvbGtrZW9sa2t1b2xra2FvbGtraW9sa2t5b2xra0omcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMiwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lcDEvYW5uaWVfcGhvdG9fMS53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkcGhvdG9zLnB1c2goJnF1b3Q7YXNzZXRzL2ltZy9lcDEvYW5uaWVfcGhvdG9fMS53ZWJwJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O01vbGtraW9sa2tCb2xra3BvbGtrU29sa2tnb2xra2tvbGtrYiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjTW9sa2tpb2xra0JvbGtrcG9sa2tTb2xra2dvbGtra29sa2tiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QW5kIHdoYXQgYWJvdXQgb25lIGZyb20gdGhlIGJhY2s/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZVN0YXJ0MV8xNGEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtBbmQgd2hhdCBhYm91dCBvbmUgZnJvbSB0aGUgYmFjaz8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV8xNGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzIiIG5hbWU9IkFubmllU3RhcnQxXzEzYiIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVTdGFydDFfMTNiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgbG92ZSB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGxvdmUgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGxvdmUgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgbG92ZSB5b3UgbW9yZSZxdW90OyAmcXVvdDtlb2xra1lvbGtrY29sa2tKb2xra1JvbGtrQW9sa2tLb2xra3lvbGtrVW9sa2tNb2xra09vbGtrQW9sa2tkb2xra3pvbGtreG9sa2tOJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbG92ZSB5b3UgbW9yZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBsb3ZlIHlvdSBtb3JlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMi4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0J1dCBub3cgSSByZWFsbHkgbmVlZCB0byB0YWtlIHRoYXQgc2hvd2VyJnF1b3Q7ICZxdW90O0lvbGtrRW9sa2tDb2xra0FvbGtrRG9sa2t0b2xra05vbGtrWG9sa2tZb2xra2xvbGtrVm9sa2txb2xra09vbGtrdW9sa2tub2xra2UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IG5vdyBJIHJlYWxseSBuZWVkIHRvIHRha2UgdGhhdCBzaG93ZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0J1dCBub3cgSSByZWFsbHkgbmVlZCB0byB0YWtlIHRoYXQgc2hvd2VyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuOHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtEb27igJl0IGZvcmdldCB0byB0ZXh0IG1lIGxhdGVyJnF1b3Q7ICZxdW90O2VvbGtrWW9sa2twb2xra3FvbGtraW9sa2tCb2xra2RvbGtraG9sa2tab2xra3ZvbGtrRW9sa2tob2xra3ZvbGtrS29sa2twb2xra2EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RG9u4oCZdCBmb3JnZXQgdG8gdGV4dCBtZSBsYXRlciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7RG9u4oCZdCBmb3JnZXQgdG8gdGV4dCBtZSBsYXRlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O0NvbGtrVm9sa2tMb2xra1FvbGtrUW9sa2tzb2xra3FvbGtrdyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNS4wcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjQ29sa2tWb2xra0xvbGtrUW9sa2tRb2xra3NvbGtrcW9sa2t3JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSB3b24mIzM5O3QmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzE0YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgd29uJiMzOTt0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVTdGFydDFfMTRiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMzIiBuYW1lPSJBbm5pZVN0YXJ0MV8xNGIiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCw0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllU3RhcnQxXzE0YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIHdvbuKAmXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHdvbuKAmXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgd29u4oCZdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt4b2xra2xvbGtrcm9sa2tsb2xra09vbGtrQm9sa2tIb2xra1cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3hvbGtrbG9sa2tyb2xra2xvbGtrT29sa2tCb2xra0hvbGtrVyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O/CfpbAmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllU3RhcnQxXzE1YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O/CfpbAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZVN0YXJ0MV8xNWImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzQiIG5hbWU9IkFubmllU3RhcnQxXzE1YiIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVTdGFydDFfMTViJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuMHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMi4wcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QnllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSA9ICZxdW90O0FubmllU3RhcnQ4YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0X2hvdXIgPSAmcXVvdDswODozNyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkaG91ciA9ICZxdW90OzA4OjM3JnF1b3Q7Jmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtvZmZsaW5lLXRleHQmcXVvdDsmZ3Q7QW5uaWUgaXMgb2ZmbGluZSZsdDsvZGl2Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjBzJmd0OyZndDsmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0nigJltIGdvaW5nIHRvIG5lZWQgdGhlIHJldmVudWUgcmVwb3J0cyBieSBGcmlkYXkuIFlvdSBoYXZlIGZpdmUgZGF5cy4mcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4wcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJFBoaWxsaXBzX3Zpc2libGUgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM1IiBuYW1lPSJBbm5pZVN0YXJ0MV8xN2EiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCw0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllU3RhcnQxXzE3YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtCeWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCeWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0J5ZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCeWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVTdGFydDEwYTEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfbGFzdF9ob3VyID0gJnF1b3Q7MDg6MzcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdCA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDswODozNyZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7b2ZmbGluZS10ZXh0JnF1b3Q7Jmd0O0FubmllIGlzIG9mZmxpbmUmbHQ7L2RpdiZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtJ4oCZbSBnb2luZyB0byBuZWVkIHRoZSByZXZlbnVlIHJlcG9ydHMgYnkgRnJpZGF5LiBZb3UgaGF2ZSBmaXZlIGRheXMuJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRQaGlsbGlwc192aXNpYmxlID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzNiIgbmFtZT0iQW5uaWVDaGF0Ml8xIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0hleSBob25leSwgaG934oCZcyBldmVyeXRoaW5nIGdvaW5nIG92ZXIgdGhlcmU/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZXkgaG9uZXksIGhvd+KAmXMgZXZlcnl0aGluZyBnb2luZyBvdmVyIHRoZXJlPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SGV5IGhvbmV5LCBob3figJlzIGV2ZXJ5dGhpbmcgZ29pbmcgb3ZlciB0aGVyZT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7YW9sa2tjb2xra0ZvbGtrcG9sa2trb2xra2RvbGtrR29sa2tPJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjZzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNhb2xra2NvbGtrRm9sa2twb2xra2tvbGtrZG9sa2tHb2xra08mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtNci4gUGhpbGxpcHMganVzdCB3b27igJl0IGdpdmUgbWUgYSBicmVhayZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0Ml8yJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7TXIuIFBoaWxsaXBzIGp1c3Qgd29u4oCZdCBnaXZlIG1lIGEgYnJlYWsmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzNyIgbmFtZT0iQW5uaWVDaGF0Ml8yIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TXIuIFBoaWxsaXBzIGp1c3Qgd29u4oCZdCBnaXZlIG1lIGEgYnJlYWsmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtNci4gUGhpbGxpcHMganVzdCB3b27igJl0IGdpdmUgbWUgYSBicmVhayZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7TXIuIFBoaWxsaXBzIGp1c3Qgd29u4oCZdCBnaXZlIG1lIGEgYnJlYWsmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7dm9sa2tGb2xra1NvbGtrWG9sa2tab2xra3dvbGtrcm9sa2tRJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN2b2xra0ZvbGtrU29sa2tYb2xra1pvbGtrd29sa2tyb2xra1EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGhhdmUgdW50aWwgRnJpZGF5IHRvIGZpbmlzaCBzZXZlcmFsIGltcG9ydGFudCByZXBvcnRzJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQyXzMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGhhdmUgdW50aWwgRnJpZGF5IHRvIGZpbmlzaCBzZXZlcmFsIGltcG9ydGFudCByZXBvcnRzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml8zJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM4IiBuYW1lPSJBbm5pZUNoYXQyXzMiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSw0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGhhdmUgdW50aWwgRnJpZGF5IHRvIGZpbmlzaCBzZXZlcmFsIGltcG9ydGFudCByZXBvcnRzJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBoYXZlIHVudGlsIEZyaWRheSB0byBmaW5pc2ggc2V2ZXJhbCBpbXBvcnRhbnQgcmVwb3J0cyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBoYXZlIHVudGlsIEZyaWRheSB0byBmaW5pc2ggc2V2ZXJhbCBpbXBvcnRhbnQgcmVwb3J0cyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDttb2xra2VvbGtrbG9sa2tVb2xra3lvbGtrSm9sa2tqb2xra2UmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I21vbGtrZW9sa2tsb2xra1VvbGtreW9sa2tKb2xra2pvbGtrZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgdGhpbmsgSeKAmW0gZ29pbmcgdG8gbG9zZSBteSBqb2IgaWYgSSBkb27igJl0IGdldCB0aGVtIGRvbmUgaW4gdGltZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0Ml80JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSB0aGluayBJ4oCZbSBnb2luZyB0byBsb3NlIG15IGpvYiBpZiBJIGRvbuKAmXQgZ2V0IHRoZW0gZG9uZSBpbiB0aW1lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml80JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM5IiBuYW1lPSJBbm5pZUNoYXQyXzQiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSB0aGluayBJ4oCZbSBnb2luZyB0byBsb3NlIG15IGpvYiBpZiBJIGRvbuKAmXQgZ2V0IHRoZW0gZG9uZSBpbiB0aW1lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB0aGluayBJ4oCZbSBnb2luZyB0byBsb3NlIG15IGpvYiBpZiBJIGRvbuKAmXQgZ2V0IHRoZW0gZG9uZSBpbiB0aW1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIHRoaW5rIEnigJltIGdvaW5nIHRvIGxvc2UgbXkgam9iIGlmIEkgZG9u4oCZdCBnZXQgdGhlbSBkb25lIGluIHRpbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgdGhhdCBpZGlvdCBpcyBwdXR0aW5nIHlvdSB0aHJvdWdoIHRoaXMmcXVvdDsgJnF1b3Q7UG9sa2tBb2xra3lvbGtrRm9sa2ttb2xra3NvbGtrWG9sa2tyb2xra3lvbGtrZm9sa2t0b2xra29vbGtrZm9sa2tHb2xra1JvbGtrRiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGNhbuKAmXQgYmVsaWV2ZSB0aGF0IGlkaW90IGlzIHB1dHRpbmcgeW91IHRocm91Z2ggdGhpcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgdGhhdCBpZGlvdCBpcyBwdXR0aW5nIHlvdSB0aHJvdWdoIHRoaXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjZzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0VzcGVjaWFsbHkgYWZ0ZXIgeW91IHZvbHVudGVlcmVkIHNpbmNlIG5vIG9uZSBlbHNlIHdhbnRlZCB0byBsZWF2ZSB0aGUgY2l0eSBmb3Igc28gbG9uZyZxdW90OyAmcXVvdDtJb2xra3BvbGtrRG9sa2tsb2xra2NvbGtreG9sa2tKb2xra0RvbGtrWW9sa2tQb2xra1VvbGtrUG9sa2tMb2xra05vbGtrUW9sa2tIJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0VzcGVjaWFsbHkgYWZ0ZXIgeW91IHZvbHVudGVlcmVkIHNpbmNlIG5vIG9uZSBlbHNlIHdhbnRlZCB0byBsZWF2ZSB0aGUgY2l0eSBmb3Igc28gbG9uZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7RXNwZWNpYWxseSBhZnRlciB5b3Ugdm9sdW50ZWVyZWQgc2luY2Ugbm8gb25lIGVsc2Ugd2FudGVkIHRvIGxlYXZlIHRoZSBjaXR5IGZvciBzbyBsb25nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7SG9sa2t2b2xra0xvbGtrVW9sa2tIb2xra3ZvbGtrQ29sa2tDJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjFzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNIb2xra3ZvbGtrTG9sa2tVb2xra0hvbGtrdm9sa2tDb2xra0MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIHJlYWxseSB0aGluayB0aGlzIG9sZCBtYW4gaGF0ZXMgbWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfNSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgcmVhbGx5IHRoaW5rIHRoaXMgb2xkIG1hbiBoYXRlcyBtZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfNSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0MCIgbmFtZT0iQW5uaWVDaGF0Ml81IiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0Ml81JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgcmVhbGx5IHRoaW5rIHRoYXQgb2xkIG1hbiBoYXRlcyBtZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgcmVhbGx5IHRoaW5rIHRoYXQgb2xkIG1hbiBoYXRlcyBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSByZWFsbHkgdGhpbmsgdGhhdCBvbGQgbWFuIGhhdGVzIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O05vbGtrdm9sa2t2b2xra09vbGtrUW9sa2t1b2xra2RvbGtrbiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjTm9sa2t2b2xra3ZvbGtrT29sa2tRb2xra3VvbGtrZG9sa2tuJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SG9uZXN0bHksIEnigJltIHNvIHN0cmVzc2VkIHJpZ2h0IG5vdyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0Ml82JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SG9uZXN0bHksIEnigJltIHNvIHN0cmVzc2VkIHJpZ2h0IG5vdyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfNiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0MSIgbmFtZT0iQW5uaWVDaGF0Ml82IiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SG9uZXN0bHksIEnigJltIHNvIHN0cmVzc2VkIHJpZ2h0IG5vdyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvbmVzdGx5LCBJ4oCZbSBzbyBzdHJlc3NlZCByaWdodCBub3cmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hvbmVzdGx5LCBJ4oCZbSBzbyBzdHJlc3NlZCByaWdodCBub3cmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7YW9sa2tkb2xra3BvbGtrbm9sa2t4b2xra1pvbGtrcG9sa2tuJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNhb2xra2RvbGtrcG9sa2tub2xra3hvbGtrWm9sa2twb2xra24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDvwn5ilJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQyXzcmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDvwn5ilJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml83JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQyIiBuYW1lPSJBbm5pZUNoYXQyXzciIHRhZ3M9IiIgcG9zaXRpb249IjIyNSw2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfNyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX3N0cmVzc2VkLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX3N0cmVzc2VkLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1NvbGtrQm9sa2tDb2xra1ZvbGtraG9sa2tYb2xra3hvbGtrSiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjU29sa2tCb2xra0NvbGtrVm9sa2tob2xra1hvbGtreG9sa2tKJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBmZWVsIGxpa2UgdGhpcyBqb2IgaXMgZHJpdmluZyBtZSBpbnNhbmUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfOCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgZmVlbCBsaWtlIHRoaXMgam9iIGlzIGRyaXZpbmcgbWUgaW5zYW5lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml84JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQzIiBuYW1lPSJBbm5pZUNoYXQyXzgiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCw2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfOCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGZlZWwgbGlrZSB0aGlzIGpvYiBpcyBkcml2aW5nIG1lIGluc2FuZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZmVlbCBsaWtlIHRoaXMgam9iIGlzIGRyaXZpbmcgbWUgaW5zYW5lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGZlZWwgbGlrZSB0aGlzIGpvYiBpcyBkcml2aW5nIG1lIGluc2FuZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtZb3Uga25vdywgaWYgeW91IHdhbnQgdG8gcXVpdCBhbmQgY29tZSBiYWNrIHRvIG1lLCB5b3UgaGF2ZSBteSBmdWxsIHN1cHBvcnQmcXVvdDsgJnF1b3Q7em9sa2tkb2xra0hvbGtrVW9sa2tpb2xra0VvbGtrd29sa2thb2xra3FvbGtrSG9sa2ttb2xra3lvbGtreG9sa2trb2xra2RvbGtrVyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3Uga25vdywgaWYgeW91IHdhbnQgdG8gcXVpdCBhbmQgY29tZSBiYWNrIHRvIG1lLCB5b3UgaGF2ZSBteSBmdWxsIHN1cHBvcnQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdSBrbm93LCBpZiB5b3Ugd2FudCB0byBxdWl0IGFuZCBjb21lIGJhY2sgdG8gbWUsIHlvdSBoYXZlIG15IGZ1bGwgc3VwcG9ydCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O0NvbGtrZW9sa2t3b2xra0JvbGtrcG9sa2txb2xra0VvbGtrUyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjQ29sa2tlb2xra3dvbGtrQm9sa2twb2xra3FvbGtrRW9sa2tTJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBrbm93IGJhYmUsIGJ1dCB3aXRoIHRoZSBob3VzZSBtb3J0Z2FnZSBhbmQgdGhpcyBtYXJrZXTigKYmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfOSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kga25vdyBiYWJlLCBidXQgd2l0aCB0aGUgaG91c2UgbW9ydGdhZ2UgYW5kIHRoaXMgbWFya2V04oCmJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml85JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ0IiBuYW1lPSJBbm5pZUNoYXQyXzkiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSw2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfOSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGtub3cgYmFiZSwgYnV0IHdpdGggdGhlIGhvdXNlIG1vcnRnYWdlIGFuZCB0aGlzIG1hcmtldOKApiZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kga25vdyBiYWJlLCBidXQgd2l0aCB0aGUgaG91c2UgbW9ydGdhZ2UgYW5kIHRoaXMgbWFya2V04oCmJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGtub3cgYmFiZSwgYnV0IHdpdGggdGhlIGhvdXNlIG1vcnRnYWdlIGFuZCB0aGlzIG1hcmtldOKApiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt2b2xra2dvbGtrU29sa2tYb2xra0dvbGtrWm9sa2tlb2xra2smcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3ZvbGtrZ29sa2tTb2xra1hvbGtrR29sa2tab2xra2VvbGtrayZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kganVzdCBjYW7igJl0IGRvIHRoYXQuJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQyXzEwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBqdXN0IGNhbuKAmXQgZG8gdGhhdC4mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzEwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ1IiBuYW1lPSJBbm5pZUNoYXQyXzEwIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzEwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kganVzdCBjYW7igJl0IGRvIHRoYXQuJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBqdXN0IGNhbuKAmXQgZG8gdGhhdC4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kganVzdCBjYW7igJl0IGRvIHRoYXQuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kga25vdyBob25leSwgSSBrbm93LiZxdW90OyAmcXVvdDtYb2xra1hvbGtrVm9sa2tvb2xra2hvbGtrR29sa2tqb2xra2pvbGtrWG9sa2tkb2xra2NvbGtrWm9sa2tKb2xra3pvbGtrTW9sa2tNJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kga25vdyBob25leSwgSSBrbm93LiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBrbm93IGhvbmV5LCBJIGtub3cuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtCdXQgSSBkb27igJl0IHdhbnQgeW91ciBsaWZlIHRvIHR1cm4gaW50byBoZWxsIGVpdGhlciZxdW90OyAmcXVvdDt6b2xra3BvbGtrcm9sa2tIb2xra2VvbGtram9sa2tjb2xra3ZvbGtrUG9sa2t4b2xra3dvbGtrc29sa2tMb2xra1RvbGtrUm9sa2tJJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCBJIGRvbuKAmXQgd2FudCB5b3VyIGxpZmUgdG8gdHVybiBpbnRvIGhlbGwgZWl0aGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCdXQgSSBkb27igJl0IHdhbnQgeW91ciBsaWZlIHRvIHR1cm4gaW50byBoZWxsIGVpdGhlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSB3aXNoIHlvdSB3ZXJlIGhlcmUgc28gSSBjb3VsZCBoZWxwIHlvdSBkZS1zdHJlc3MmcXVvdDsgJnF1b3Q7dm9sa2tHb2xra1NvbGtrV29sa2tub2xra3BvbGtrWm9sa2t5b2xra0NvbGtrS29sa2tJb2xra1lvbGtrRG9sa2thb2xra0RvbGtrTyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHdpc2ggeW91IHdlcmUgaGVyZSBzbyBJIGNvdWxkIGhlbHAgeW91IGRlLXN0cmVzcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSB3aXNoIHlvdSB3ZXJlIGhlcmUgc28gSSBjb3VsZCBoZWxwIHlvdSBkZS1zdHJlc3MmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDt3b2xra2pvbGtrSW9sa2twb2xra2pvbGtrQ29sa2tOb2xra3cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuOHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3dvbGtram9sa2tJb2xra3BvbGtram9sa2tDb2xra05vbGtrdyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O/CfpbUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMTEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDvwn6W1JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml8xMSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0NiIgbmFtZT0iQW5uaWVDaGF0Ml8xMSIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0Ml8xMSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xld2RfZmFjZS53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7WW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9sZXdkX2ZhY2Uud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7UW9sa2tQb2xra1FvbGtrVG9sa2tHb2xra2ZvbGtrTG9sa2t2JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNRb2xra1BvbGtrUW9sa2tUb2xra0dvbGtrZm9sa2tMb2xra3YmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3UgaGF2ZSBubyBpZGVhIGhvdyBtdWNoIEnigJlkIGdpdmUgdG8gYmUgdGhlcmXigKYmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMTImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3UgaGF2ZSBubyBpZGVhIGhvdyBtdWNoIEnigJlkIGdpdmUgdG8gYmUgdGhlcmXigKYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzEyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ3IiBuYW1lPSJBbm5pZUNoYXQyXzEyIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzEyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdSBoYXZlIG5vIGlkZWEgaG93IG11Y2ggSeKAmWQgZ2l2ZSB0byBiZSB0aGVyZeKApiZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBoYXZlIG5vIGlkZWEgaG93IG11Y2ggSeKAmWQgZ2l2ZSB0byBiZSB0aGVyZeKApiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW91IGhhdmUgbm8gaWRlYSBob3cgbXVjaCBJ4oCZZCBnaXZlIHRvIGJlIHRoZXJl4oCmJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O01vbGtram9sa2tub2xra1FvbGtrVG9sa2tnb2xra1BvbGtrWCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjTW9sa2tqb2xra25vbGtrUW9sa2tUb2xra2dvbGtrUG9sa2tYJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhyb3cgeW91IG9uIHRoZSBiZWQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMTMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaHJvdyB5b3Ugb24gdGhlIGJlZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMTMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDgiIG5hbWU9IkFubmllQ2hhdDJfMTMiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSw2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMTMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhyb3cgeW91IG9uIHRoZSBiZWQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaHJvdyB5b3Ugb24gdGhlIGJlZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhyb3cgeW91IG9uIHRoZSBiZWQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7SG9sa2tDb2xra0pvbGtrem9sa2t4b2xra0RvbGtrYm9sa2tnJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNIb2xra0NvbGtrSm9sa2t6b2xra3hvbGtrRG9sa2tib2xra2cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtLaXNzIHlvdXIgbmVjayZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0Ml8xNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0tpc3MgeW91ciBuZWNrJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml8xNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0OSIgbmFtZT0iQW5uaWVDaGF0Ml8xNCIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCw2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMTQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7S2lzcyB5b3VyIG5lY2smcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtLaXNzIHlvdXIgbmVjayZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7S2lzcyB5b3VyIG5lY2smcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7TW9sa2tyb2xra0tvbGtrVG9sa2tub2xra1BvbGtrSm9sa2t6JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNNb2xra3JvbGtrS29sa2tUb2xra25vbGtrUG9sa2tKb2xra3omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtCaXRlIHlvdXIgbmlwcGxlcyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0Ml8xNSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0JpdGUgeW91ciBuaXBwbGVzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml8xNSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1MCIgbmFtZT0iQW5uaWVDaGF0Ml8xNSIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSw2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMTUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7Qml0ZSB5b3VyIG5pcHBsZXMmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCaXRlIHlvdXIgbmlwcGxlcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7Qml0ZSB5b3VyIG5pcHBsZXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7VW9sa2ttb2xra0pvbGtrUW9sa2tGb2xra29vbGtrd29sa2tDJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNVb2xra21vbGtrSm9sa2tRb2xra0ZvbGtrb29sa2t3b2xra0MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtXYXRjaCBzb21lb25lIGVsc2UgcmlwIHRoYXQgcHVzc3kgYXBhcnQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMTYmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXYXRjaCBzb21lb25lIGVsc2UgcmlwIHRoYXQgcHVzc3kgYXBhcnQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzE2JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjUxIiBuYW1lPSJBbm5pZUNoYXQyXzE2IiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzE2JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1dhdGNoIHNvbWVvbmUgZWxzZSByaXAgdGhhdCBwdXNzeSBhcGFydCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dhdGNoIHNvbWVvbmUgZWxzZSByaXAgdGhhdCBwdXNzeSBhcGFydCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7V2F0Y2ggc29tZW9uZSBlbHNlIHJpcCB0aGF0IHB1c3N5IGFwYXJ0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9zdXJwcmlzZS53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfc3VycHJpc2Uud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1lvdSB3ZXJlIG1ha2luZyBtZSB3ZXQgdW50aWwgdGhhdCBsYXN0IHBhcnQmcXVvdDsgJnF1b3Q7Um9sa2tSb2xra3BvbGtrdm9sa2tIb2xra2RvbGtrbm9sa2tBb2xra0pvbGtreW9sa2tab2xra0hvbGtram9sa2tJb2xra1ZvbGtrUiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3Ugd2VyZSBtYWtpbmcgbWUgd2V0IHVudGlsIHRoYXQgbGFzdCBwYXJ0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtZb3Ugd2VyZSBtYWtpbmcgbWUgd2V0IHVudGlsIHRoYXQgbGFzdCBwYXJ0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuOHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtXaGF0IGRvIHlvdSBtZWFuIGJ5IHRoYXQ/JnF1b3Q7ICZxdW90O1FvbGtrQm9sa2tIb2xra0lvbGtrSm9sa2tkb2xra0pvbGtrdm9sa2tub2xra1VvbGtreG9sa2tzb2xra1RvbGtrTW9sa2tjb2xra3YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2hhdCBkbyB5b3UgbWVhbiBieSB0aGF0PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7V2hhdCBkbyB5b3UgbWVhbiBieSB0aGF0PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O3VvbGtrR29sa2tTb2xra2VvbGtrUW9sa2txb2xra2dvbGtrdSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC4wcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjdW9sa2tHb2xra1NvbGtrZW9sa2tRb2xra3FvbGtrZ29sa2t1JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7U29ycnksIGl0IHdhcyBqdXN0IGEgam9rZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0Ml8xNyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1NvcnJ5LCBpdCB3YXMganVzdCBhIGpva2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzE3JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjUyIiBuYW1lPSJBbm5pZUNoYXQyXzE3IiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzE3JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1NvcnJ5LCBpdCB3YXMganVzdCBhIGpva2UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTb3JyeSwgaXQgd2FzIGp1c3QgYSBqb2tlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtTb3JyeSwgaXQgd2FzIGp1c3QgYSBqb2tlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV93aGF0LndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV93aGF0LndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtZb3UgdXN1YWxseSBibHVydCBvdXQgdGhpbmdzIGxpa2UgdGhpcyB3aGVuIHlvdeKAmXJlIGFmcmFpZCB0byBzYXkgc29tZXRoaW5nIGRpcmVjdGx5JnF1b3Q7ICZxdW90O1FvbGtrSm9sa2tDb2xra0xvbGtrZW9sa2t3b2xra0tvbGtrbW9sa2t0b2xra1NvbGtrcG9sa2tlb2xra0ZvbGtrYW9sa2tEb2xra3omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IHVzdWFsbHkgYmx1cnQgb3V0IHRoaW5ncyBsaWtlIHRoaXMgd2hlbiB5b3XigJlyZSBhZnJhaWQgdG8gc2F5IHNvbWV0aGluZyBkaXJlY3RseSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW91IHVzdWFsbHkgYmx1cnQgb3V0IHRoaW5ncyBsaWtlIHRoaXMgd2hlbiB5b3XigJlyZSBhZnJhaWQgdG8gc2F5IHNvbWV0aGluZyBkaXJlY3RseSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7RG9u4oCZdCBmb3JnZXQgSSBrbm93IHlvdSB0b28gd2VsbCZxdW90OyAmcXVvdDtKb2xra2FvbGtrUm9sa2tzb2xra05vbGtrTm9sa2tXb2xra2RvbGtrVG9sa2tTb2xra0ZvbGtrYW9sa2tXb2xra2dvbGtram9sa2tFJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0RvbuKAmXQgZm9yZ2V0IEkga25vdyB5b3UgdG9vIHdlbGwmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0RvbuKAmXQgZm9yZ2V0IEkga25vdyB5b3UgdG9vIHdlbGwmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0FyZSB5b3Ugc2F5aW5n4oCmJnF1b3Q7ICZxdW90O1FvbGtrUm9sa2tDb2xra3NvbGtrSG9sa2tsb2xra1ZvbGtrbW9sa2tPb2xra09vbGtreG9sa2tIb2xra05vbGtrTG9sa2thb2xra2gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QXJlIHlvdSBzYXlpbmfigKYmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0FyZSB5b3Ugc2F5aW5n4oCmJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDUuNXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtBcmUgeW91IGludG8gdGhhdCBraW5kIG9mIHRoaW5nPyZxdW90OyAmcXVvdDtUb2xra0NvbGtrcW9sa2tMb2xra2hvbGtrd29sa2tab2xra2dvbGtrTG9sa2t5b2xra3JvbGtrZ29sa2tIb2xra2ZvbGtrZW9sa2tpJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FyZSB5b3UgaW50byB0aGF0IGtpbmQgb2YgdGhpbmc/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtBcmUgeW91IGludG8gdGhhdCBraW5kIG9mIHRoaW5nPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O29vbGtrd29sa2txb2xra1JvbGtrbW9sa2thb2xra3pvbGtrYSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNi44cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjb29sa2t3b2xra3FvbGtrUm9sa2ttb2xra2FvbGtrem9sa2thJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SeKAmW0gc29ycnkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMTgmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJ4oCZbSBzb3JyeSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMTgmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTMiIG5hbWU9IkFubmllQ2hhdDJfMTgiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCw3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMTgmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SeKAmW0gc29ycnkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBzb3JyeSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmW0gc29ycnkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7b29sa2tpb2xra1lvbGtram9sa2tWb2xra1ZvbGtrTm9sa2t6JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNvb2xra2lvbGtrWW9sa2tqb2xra1ZvbGtrVm9sa2tOb2xra3omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJdOKAmXMganVzdCB0aGF0IEnigJltIHNvIHN0cmVzc2VkIHdpdGggYWxsIHRoaXMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMTkmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJdOKAmXMganVzdCB0aGF0IEnigJltIHNvIHN0cmVzc2VkIHdpdGggYWxsIHRoaXMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzE5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjU0IiBuYW1lPSJBbm5pZUNoYXQyXzE5IiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzE5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0l04oCZcyBqdXN0IHRoYXQgSeKAmW0gc28gc3RyZXNzZWQgd2l0aCBhbGwgdGhpcyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0l04oCZcyBqdXN0IHRoYXQgSeKAmW0gc28gc3RyZXNzZWQgd2l0aCBhbGwgdGhpcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SXTigJlzIGp1c3QgdGhhdCBJ4oCZbSBzbyBzdHJlc3NlZCB3aXRoIGFsbCB0aGlzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3NvbGtrb29sa2t4b2xra3BvbGtrcm9sa2tDb2xra2NvbGtrcCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjc29sa2tvb2xra3hvbGtrcG9sa2tyb2xra0NvbGtrY29sa2twJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QW5kIHdpdGggdGhpcyBsb25nIHRyaXAgYW5kIG5vdCBiZWluZyBhYmxlIHRvIHNlZSB5b3XigKYmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMjAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtBbmQgd2l0aCB0aGlzIGxvbmcgdHJpcCBhbmQgbm90IGJlaW5nIGFibGUgdG8gc2VlIHlvdeKApiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMjAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTUiIG5hbWU9IkFubmllQ2hhdDJfMjAiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCw3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMjAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7QW5kIHdpdGggdGhpcyBsb25nIHRyaXAgYW5kIG5vdCBiZWluZyBhYmxlIHRvIHNlZSB5b3XigKYmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbmQgd2l0aCB0aGlzIGxvbmcgdHJpcCBhbmQgbm90IGJlaW5nIGFibGUgdG8gc2VlIHlvdeKApiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QW5kIHdpdGggdGhpcyBsb25nIHRyaXAgYW5kIG5vdCBiZWluZyBhYmxlIHRvIHNlZSB5b3XigKYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7TG9sa2trb2xra0lvbGtrT29sa2trb2xra0tvbGtrUG9sa2tFJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNMb2xra2tvbGtrSW9sa2tPb2xra2tvbGtrS29sa2tQb2xra0UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGd1ZXNzIGl0IG1hZGUgbWUgaG9ybmllciB0aGFuIHVzdWFsJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQyXzIxJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBndWVzcyBpdCBtYWRlIG1lIGhvcm5pZXIgdGhhbiB1c3VhbCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMjEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTYiIG5hbWU9IkFubmllQ2hhdDJfMjEiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSw3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMjEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBndWVzcyBpdCBtYWRlIG1lIGhvcm5pZXIgdGhhbiB1c3VhbCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZ3Vlc3MgaXQgbWFkZSBtZSBob3JuaWVyIHRoYW4gdXN1YWwmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgZ3Vlc3MgaXQgbWFkZSBtZSBob3JuaWVyIHRoYW4gdXN1YWwmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7T2theSwgSSBnZXQgdGhhdCZxdW90OyAmcXVvdDtvb2xra0pvbGtrR29sa2tlb2xra1ZvbGtrRW9sa2tnb2xra0RvbGtrYW9sa2tnb2xra0xvbGtrQW9sa2tob2xra3hvbGtrRW9sa2tJJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09rYXksIEkgZ2V0IHRoYXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O09rYXksIEkgZ2V0IHRoYXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0J1dCB0aGF0IG1lYW5zIHlvdSBoYXZlIHRoYXQgZGVzaXJlJnF1b3Q7ICZxdW90O3RvbGtrTm9sa2trb2xra05vbGtrcW9sa2t0b2xra3VvbGtrVG9sa2t3b2xra0JvbGtrcG9sa2tyb2xra1BvbGtrTW9sa2t0b2xra0cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IHRoYXQgbWVhbnMgeW91IGhhdmUgdGhhdCBkZXNpcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0J1dCB0aGF0IG1lYW5zIHlvdSBoYXZlIHRoYXQgZGVzaXJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtEbyB5b3Ugd2FudCB0byBzZWUgbWUsIGxpa2UsIGdldHRpbmcgZnVja2VkIGJ5IG90aGVyIGd1eXM/JnF1b3Q7ICZxdW90O3VvbGtrdW9sa2tkb2xra3BvbGtrU29sa2tKb2xra1FvbGtrVG9sa2txb2xra3FvbGtraG9sa2tHb2xra1hvbGtra29sa2tFb2xra1YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RG8geW91IHdhbnQgdG8gc2VlIG1lLCBsaWtlLCBnZXR0aW5nIGZ1Y2tlZCBieSBvdGhlciBndXlzPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7RG8geW91IHdhbnQgdG8gc2VlIG1lLCBsaWtlLCBnZXR0aW5nIGZ1Y2tlZCBieSBvdGhlciBndXlzPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1BvbGtrVG9sa2tab2xra1FvbGtrWG9sa2tNb2xra0ZvbGtrbiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjUG9sa2tUb2xra1pvbGtrUW9sa2tYb2xra01vbGtrRm9sa2tuJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WWVhaCwgSeKAmXZlIHRob3VnaHQgYWJvdXQgaXQgYSBmZXcgJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQyXzIyYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1llYWgsIEnigJl2ZSB0aG91Z2h0IGFib3V0IGl0IGEgZmV3ICZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMjJhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1BvbGtrVG9sa2tab2xra1FvbGtrWG9sa2tNb2xra0ZvbGtrbiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O01heWJlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQyXzIyYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O01heWJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml8yMmImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTciIG5hbWU9IkFubmllQ2hhdDJfMjJhIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzIyYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZZWFoLCBJ4oCZdmUgdGhvdWdodCBhYm91dCBpdCBhIGZldyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1llYWgsIEnigJl2ZSB0aG91Z2h0IGFib3V0IGl0IGEgZmV3JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtZZWFoLCBJ4oCZdmUgdGhvdWdodCBhYm91dCBpdCBhIGZldyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkZG9tc3ViID0gJGRvbXN1YisxJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2tvbGtrUm9sa2tab2xra0JvbGtrRW9sa2tnb2xra3RvbGtrSCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsja29sa2tSb2xra1pvbGtrQm9sa2tFb2xra2dvbGtrdG9sa2tIJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WW91IGtub3cgSSBsaWtlIHRyeWluZyBuZXcgdGhpbmdzJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQyXzIzYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdSBrbm93IEkgbGlrZSB0cnlpbmcgbmV3IHRoaW5ncyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMjNhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjU4IiBuYW1lPSJBbm5pZUNoYXQyXzIyYiIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0Ml8yMmImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TWF5YmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtNYXliZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7TWF5YmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7dW9sa2tyb2xra09vbGtrTm9sa2tob2xra1FvbGtrb29sa2tDJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN1b2xra3JvbGtrT29sa2tOb2xra2hvbGtrUW9sa2tvb2xra0MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGZlZWwgbGlrZSBpdCBjb3VsZCBhZGQgYSBuZXcgc3BhcmsgdG8gb3VyIHJlbGF0aW9uc2hpcCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0Ml8yM2ImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGZlZWwgbGlrZSBpdCBjb3VsZCBhZGQgYSBuZXcgc3BhcmsgdG8gb3VyIHJlbGF0aW9uc2hpcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMjNiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjU5IiBuYW1lPSJBbm5pZUNoYXQyXzIzYSIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCw3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMjNhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdSBrbm93IEkgbGlrZSB0cnlpbmcgbmV3IHRoaW5ncyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBrbm93IEkgbGlrZSB0cnlpbmcgbmV3IHRoaW5ncyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW91IGtub3cgSSBsaWtlIHRyeWluZyBuZXcgdGhpbmdzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0J1dCwgd291bGQgeW91IHJlYWxseSBiZSBva2F5IHdpdGggbWUgaGF2aW5nIHNleCB3aXRoIG90aGVyIG1lbj8mcXVvdDsgJnF1b3Q7aW9sa2tOb2xra21vbGtrem9sa2tRb2xra1lvbGtraG9sa2tEb2xra2dvbGtreG9sa2tOb2xra1dvbGtrSG9sa2tIb2xra2VvbGtrSCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQsIHdvdWxkIHlvdSByZWFsbHkgYmUgb2theSB3aXRoIG1lIGhhdmluZyBzZXggd2l0aCBvdGhlciBtZW4/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCdXQsIHdvdWxkIHlvdSByZWFsbHkgYmUgb2theSB3aXRoIG1lIGhhdmluZyBzZXggd2l0aCBvdGhlciBtZW4/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMnMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbm9fd29yZHMud2VicCZxdW90OyB0cnVlICZxdW90O0FubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX25vX3dvcmRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7U29sa2tLb2xra3dvbGtreG9sa2ttb2xra3pvbGtrRG9sa2t0JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjJzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNTb2xra0tvbGtrd29sa2t4b2xra21vbGtrem9sa2tEb2xra3QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtXZWxsLCB5ZWFoLCBJIHN1cHBvc2UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMjUmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXZWxsLCB5ZWFoLCBJIHN1cHBvc2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzI1JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjYwIiBuYW1lPSJBbm5pZUNoYXQyXzIzYiIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSw3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMjNiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgZmVlbCBsaWtlIGl0IGNvdWxkIGFkZCBhIG5ldyBzcGFyayB0byBvdXIgcmVsYXRpb25zaGlwJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBmZWVsIGxpa2UgaXQgY291bGQgYWRkIGEgbmV3IHNwYXJrIHRvIG91ciByZWxhdGlvbnNoaXAmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgZmVlbCBsaWtlIGl0IGNvdWxkIGFkZCBhIG5ldyBzcGFyayB0byBvdXIgcmVsYXRpb25zaGlwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2hvbGtrdm9sa2txb2xra09vbGtrT29sa2t0b2xra09vbGtrciZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjaG9sa2t2b2xra3FvbGtrT29sa2tPb2xra3RvbGtrT29sa2tyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WW91IGtub3csIHdl4oCZcmUgcHJldHR5IHByZWRpY3RhYmxlIG1vc3Qgb2YgdGhlIHRpbWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMjRiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WW91IGtub3csIHdl4oCZcmUgcHJldHR5IHByZWRpY3RhYmxlIG1vc3Qgb2YgdGhlIHRpbWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzI0YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI2MSIgbmFtZT0iQW5uaWVDaGF0Ml8yNGIiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCw4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMjRiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdSBrbm93LCB3ZeKAmXJlIHByZXR0eSBwcmVkaWN0YWJsZSBtb3N0IG9mIHRoZSB0aW1lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGtub3csIHdl4oCZcmUgcHJldHR5IHByZWRpY3RhYmxlIG1vc3Qgb2YgdGhlIHRpbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdSBrbm93LCB3ZeKAmXJlIHByZXR0eSBwcmVkaWN0YWJsZSBtb3N0IG9mIHRoZSB0aW1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0J1dCwgd291bGQgeW91IHJlYWxseSBiZSBva2F5IHdpdGggbWUgaGF2aW5nIHNleCB3aXRoIG90aGVyIG1lbj8mcXVvdDsgJnF1b3Q7TW9sa2tab2xra3ZvbGtrbW9sa2thb2xra2tvbGtrSW9sa2tFb2xra0xvbGtrcG9sa2tMb2xra0JvbGtrUG9sa2tvb2xra3BvbGtrRSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQsIHdvdWxkIHlvdSByZWFsbHkgYmUgb2theSB3aXRoIG1lIGhhdmluZyBzZXggd2l0aCBvdGhlciBtZW4/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCdXQsIHdvdWxkIHlvdSByZWFsbHkgYmUgb2theSB3aXRoIG1lIGhhdmluZyBzZXggd2l0aCBvdGhlciBtZW4/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMnMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbm9fd29yZHMud2VicCZxdW90OyB0cnVlICZxdW90O0FubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX25vX3dvcmRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7aG9sa2t5b2xra0pvbGtrRW9sa2tBb2xra0pvbGtrS29sa2t4JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjJzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNob2xra3lvbGtrSm9sa2tFb2xra0FvbGtrSm9sa2tLb2xra3gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtXZWxsLCB5ZWFoLCBJIHN1cHBvc2UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMjUmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXZWxsLCB5ZWFoLCBJIHN1cHBvc2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzI1JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjYyIiBuYW1lPSJBbm5pZUNoYXQyXzI1IiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzI1JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1dlbGwsIHllYWgsIEkgc3VwcG9zZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dlbGwsIHllYWgsIEkgc3VwcG9zZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7V2VsbCwgeWVhaCwgSSBzdXBwb3NlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2dvbGtrRm9sa2twb2xra3pvbGtrWW9sa2ttb2xra1VvbGtrbyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjZ29sa2tGb2xra3BvbGtrem9sa2tZb2xra21vbGtrVW9sa2tvJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhhdOKAmXMgdGhlIGlkZWEmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMjYmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaGF04oCZcyB0aGUgaWRlYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMjYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNjMiIG5hbWU9IkFubmllQ2hhdDJfMjYiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCw4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMjYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhhdOKAmXMgdGhlIGlkZWEmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGF04oCZcyB0aGUgaWRlYSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhhdOKAmXMgdGhlIGlkZWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX3N1cnByaXNlLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9zdXJwcmlzZS53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7WW91IGtub3cgSeKAmWQgZG8gYW55dGhpbmcgZm9yIHlvdSZxdW90OyAmcXVvdDtkb2xra2ZvbGtrRW9sa2t0b2xra1ZvbGtrSW9sa2tsb2xra0pvbGtreW9sa2tLb2xra0lvbGtrT29sa2tpb2xra0lvbGtrYW9sa2tzJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBrbm93IEnigJlkIGRvIGFueXRoaW5nIGZvciB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdSBrbm93IEnigJlkIGRvIGFueXRoaW5nIGZvciB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0J1dCBJ4oCZdmUgbmV2ZXIgaW1hZ2luZWQgYW55dGhpbmcgbGlrZSB0aGlzJnF1b3Q7ICZxdW90O0xvbGtrWG9sa2tPb2xra0RvbGtrZG9sa2tUb2xra2lvbGtrSG9sa2tVb2xra3lvbGtrWG9sa2tKb2xra1RvbGtrem9sa2tCb2xra1ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IEnigJl2ZSBuZXZlciBpbWFnaW5lZCBhbnl0aGluZyBsaWtlIHRoaXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0J1dCBJ4oCZdmUgbmV2ZXIgaW1hZ2luZWQgYW55dGhpbmcgbGlrZSB0aGlzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7Ym9sa2tEb2xra0lvbGtrQ29sa2tXb2xra01vbGtrem9sa2tNJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjlzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNib2xra0RvbGtrSW9sa2tDb2xra1dvbGtrTW9sa2t6b2xra00mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtNYXliZSB3ZSBzaG91bGQganVzdCBmb3JnZXQgaXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMjcmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtNYXliZSB3ZSBzaG91bGQganVzdCBmb3JnZXQgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzI3JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjY0IiBuYW1lPSJBbm5pZUNoYXQyXzI3IiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzI3JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O01heWJlIHdlIHNob3VsZCBqdXN0IGZvcmdldCBpdCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O01heWJlIHdlIHNob3VsZCBqdXN0IGZvcmdldCBpdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7TWF5YmUgd2Ugc2hvdWxkIGp1c3QgZm9yZ2V0IGl0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0FvbGtrcm9sa2tqb2xra1VvbGtrSG9sa2tNb2xra1ZvbGtrYyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjQW9sa2tyb2xra2pvbGtrVW9sa2tIb2xra01vbGtrVm9sa2tjJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7TGlrZSBJIHNhaWQsIEnigJltIHdheSB0b28gc3RyZXNzZWQgd2l0aCBldmVyeXRoaW5nIHJpZ2h0IG5vdyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0Ml8yOCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0xpa2UgSSBzYWlkLCBJ4oCZbSB3YXkgdG9vIHN0cmVzc2VkIHdpdGggZXZlcnl0aGluZyByaWdodCBub3cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzI4JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjY1IiBuYW1lPSJBbm5pZUNoYXQyXzI4IiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzI4JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0xpa2UgSSBzYWlkLCBJ4oCZbSB3YXkgdG9vIHN0cmVzc2VkIHdpdGggZXZlcnl0aGluZyByaWdodCBub3cmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtMaWtlIEkgc2FpZCwgSeKAmW0gd2F5IHRvbyBzdHJlc3NlZCB3aXRoIGV2ZXJ5dGhpbmcgcmlnaHQgbm93JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtMaWtlIEkgc2FpZCwgSeKAmW0gd2F5IHRvbyBzdHJlc3NlZCB3aXRoIGV2ZXJ5dGhpbmcgcmlnaHQgbm93JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O25vbGtrSm9sa2tXb2xra3BvbGtrR29sa2tRb2xra3ZvbGtrdCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjbm9sa2tKb2xra1dvbGtrcG9sa2tHb2xra1FvbGtrdm9sa2t0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VW5kZXIgbm9ybWFsIGNpcmN1bXN0YW5jZXMsIHRoaXMgd291bGRu4oCZdCBoYXZlIGV2ZW4gY29tZSB1cCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0Ml8yOSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1VuZGVyIG5vcm1hbCBjaXJjdW1zdGFuY2VzLCB0aGlzIHdvdWxkbuKAmXQgaGF2ZSBldmVuIGNvbWUgdXAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzI5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjY2IiBuYW1lPSJBbm5pZUNoYXQyXzI5IiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzI5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1VuZGVyIG5vcm1hbCBjaXJjdW1zdGFuY2VzLCB0aGlzIHdvdWxkbuKAmXQgaGF2ZSBldmVuIGNvbWUgdXAmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtVbmRlciBub3JtYWwgY2lyY3Vtc3RhbmNlcywgdGhpcyB3b3VsZG7igJl0IGhhdmUgZXZlbiBjb21lIHVwJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtVbmRlciBub3JtYWwgY2lyY3Vtc3RhbmNlcywgdGhpcyB3b3VsZG7igJl0IGhhdmUgZXZlbiBjb21lIHVwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgZ2V0IHRoYXQmcXVvdDsgJnF1b3Q7Um9sa2t2b2xra1dvbGtrZ29sa2tzb2xra3dvbGtrTG9sa2tmb2xra2NvbGtrSG9sa2tCb2xra3NvbGtrUW9sa2tnb2xra1ZvbGtrZiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGdldCB0aGF0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGdldCB0aGF0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC45cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtCdXQgY2xlYXJseSwgdGhpcyBpcyBzb21ldGhpbmcgeW914oCZdmUgdGhvdWdodCBhYm91dCBiZWZvcmUmcXVvdDsgJnF1b3Q7Qm9sa2tlb2xra05vbGtreG9sa2tmb2xra3JvbGtreG9sa2ttb2xra05vbGtrU29sa2tzb2xra2RvbGtrT29sa2tZb2xra1BvbGtrbiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgY2xlYXJseSwgdGhpcyBpcyBzb21ldGhpbmcgeW914oCZdmUgdGhvdWdodCBhYm91dCBiZWZvcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0J1dCBjbGVhcmx5LCB0aGlzIGlzIHNvbWV0aGluZyB5b3XigJl2ZSB0aG91Z2h0IGFib3V0IGJlZm9yZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SXQgd2FzbuKAmXQganVzdCBhIHNwdXIgb2YgdGhlIG1vbWVudCB0aGluZyZxdW90OyAmcXVvdDtRb2xra2JvbGtrWm9sa2tpb2xra2lvbGtrSm9sa2tyb2xra3hvbGtrR29sa2tKb2xra2hvbGtrdW9sa2t5b2xra2xvbGtrY29sa2t0JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0l0IHdhc27igJl0IGp1c3QgYSBzcHVyIG9mIHRoZSBtb21lbnQgdGhpbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0l0IHdhc27igJl0IGp1c3QgYSBzcHVyIG9mIHRoZSBtb21lbnQgdGhpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDt2b2xra3pvbGtrem9sa2tIb2xra2JvbGtrbm9sa2t0b2xra1omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuMnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3ZvbGtrem9sa2t6b2xra0hvbGtrYm9sa2tub2xra3RvbGtrWiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1llYWgsIEnigJltIG5vdCBnb2luZyB0byBkZW55IGl0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQyXzMwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WWVhaCwgSeKAmW0gbm90IGdvaW5nIHRvIGRlbnkgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQyXzMwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjY3IiBuYW1lPSJBbm5pZUNoYXQyXzMwIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQyXzMwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1llYWgsIEnigJltIG5vdCBnb2luZyB0byBkZW55IGl0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WWVhaCwgSeKAmW0gbm90IGdvaW5nIHRvIGRlbnkgaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1llYWgsIEnigJltIG5vdCBnb2luZyB0byBkZW55IGl0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgc2Vl4oCmJnF1b3Q7ICZxdW90O3JvbGtrUW9sa2tmb2xra2pvbGtrcm9sa2tWb2xra0NvbGtrS29sa2tkb2xra2VvbGtrdG9sa2tlb2xra3NvbGtrbW9sa2tub2xra2EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBzZWXigKYmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgc2Vl4oCmJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtIb25lc3RseSwgdGhpcyBpcyBjYXRjaGluZyBtZSBvZmYgZ3VhcmQmcXVvdDsgJnF1b3Q7eG9sa2tVb2xra3BvbGtrR29sa2tSb2xra2VvbGtrRW9sa2tCb2xra2VvbGtreG9sa2tvb2xra1dvbGtrcW9sa2tJb2xra2tvbGtrVCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIb25lc3RseSwgdGhpcyBpcyBjYXRjaGluZyBtZSBvZmYgZ3VhcmQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hvbmVzdGx5LCB0aGlzIGlzIGNhdGNoaW5nIG1lIG9mZiBndWFyZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjRzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SeKAmW0gbm90IGdvaW5nIHRvIGp1ZGdlIHlvdSwgSSBoYXZlIG15IG93biBraW5rcyB0b28mcXVvdDsgJnF1b3Q7TW9sa2tib2xra2ZvbGtreG9sa2tZb2xra3NvbGtrQW9sa2tLb2xra3hvbGtrdW9sa2tab2xra2pvbGtrUW9sa2t4b2xra2FvbGtrRCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBub3QgZ29pbmcgdG8ganVkZ2UgeW91LCBJIGhhdmUgbXkgb3duIGtpbmtzIHRvbyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmW0gbm90IGdvaW5nIHRvIGp1ZGdlIHlvdSwgSSBoYXZlIG15IG93biBraW5rcyB0b28mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC4ycyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1Rob3VnaCB0aGV5IGRlZmluaXRlbHkgZG9u4oCZdCBpbnZvbHZlIG90aGVyIHBlb3BsZSZxdW90OyAmcXVvdDtob2xra29vbGtrem9sa2tEb2xra25vbGtrbW9sa2t1b2xra1ZvbGtra29sa2tUb2xra3lvbGtrUm9sa2tXb2xra2VvbGtrVG9sa2tlJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1Rob3VnaCB0aGV5IGRlZmluaXRlbHkgZG9u4oCZdCBpbnZvbHZlIG90aGVyIHBlb3BsZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhvdWdoIHRoZXkgZGVmaW5pdGVseSBkb27igJl0IGludm9sdmUgb3RoZXIgcGVvcGxlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDUuNXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGp1c3QgbmVlZCBzb21lIHRpbWUgdG8gdGhpbmsgYWJvdXQgYWxsIG9mIHRoaXMmcXVvdDsgJnF1b3Q7bG9sa2tub2xra3pvbGtrY29sa2tpb2xra1BvbGtrS29sa2tkb2xra2RvbGtrZm9sa2tkb2xra2FvbGtrSm9sa2t0b2xra1lvbGtrWiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGp1c3QgbmVlZCBzb21lIHRpbWUgdG8gdGhpbmsgYWJvdXQgYWxsIG9mIHRoaXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kganVzdCBuZWVkIHNvbWUgdGltZSB0byB0aGluayBhYm91dCBhbGwgb2YgdGhpcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O2dvbGtrZm9sa2tMb2xra2JvbGtrRG9sa2tQb2xra3FvbGtrRyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNy4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjZ29sa2tmb2xra0xvbGtrYm9sa2tEb2xra1BvbGtrcW9sa2tHJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7T2YgY291cnNlLCBJIHVuZGVyc3RhbmQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDJfMzEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtPZiBjb3Vyc2UsIEkgdW5kZXJzdGFuZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDJfMzEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNjgiIG5hbWU9IkFubmllQ2hhdDJfMzEiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSw4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMzEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7T2YgY291cnNlLCBJIHVuZGVyc3RhbmQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPZiBjb3Vyc2UsIEkgdW5kZXJzdGFuZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7T2YgY291cnNlLCBJIHVuZGVyc3RhbmQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7eG9sa2tGb2xra09vbGtrSW9sa2tBb2xra0xvbGtrUG9sa2tMJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN4b2xra0ZvbGtrT29sa2tJb2xra0FvbGtrTG9sa2tQb2xra0wmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtBbnl3YXksIEkgbmVlZCB0byBrZWVwIHdvcmtpbmcgb24gdGhlc2UgcmVwb3J0cyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0Ml8zMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0FueXdheSwgSSBuZWVkIHRvIGtlZXAgd29ya2luZyBvbiB0aGVzZSByZXBvcnRzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0Ml8zMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI2OSIgbmFtZT0iQW5uaWVDaGF0Ml8zMiIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCw4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDJfMzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7V2XigJlsbCB0YWxrIGxhdGVyJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2XigJlsbCB0YWxrIGxhdGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtXZeKAmWxsIHRhbGsgbGF0ZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7V2XigJlsbCB0YWxrIGxhdGVyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSA9ICZxdW90O0FubmllQ2hhdDJfMTImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfbGFzdF9ob3VyID0gJnF1b3Q7MTE6NDYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdCA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDsxMTo0NiZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7b2ZmbGluZS10ZXh0JnF1b3Q7Jmd0O0FubmllIGlzIG9mZmxpbmUmbHQ7L2RpdiZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9ub3Rlcy5wdXNoKCZxdW90O0kgYWRtaXR0ZWQgdGhhdCBteSBmYW50YXN5IGlzIGZvciBoZXIgdG8gaGF2ZSBzZXggd2l0aCBvdGhlciBtZW4uJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJE5hb21pX3Zpc2libGUgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7SG9uZXN0bHksIEkgaGF2ZSB0byBjb25ncmF0dWxhdGUgeW91JnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRKZW5uYV92aXNpYmxlID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI3MCIgbmFtZT0iQW5uaWVDaGF0M18xIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtIb25leSwgSeKAmW0gc29ycnkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvbmV5LCBJ4oCZbSBzb3JyeSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SG9uZXksIEnigJltIHNvcnJ5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBqdXN0IGZvdW5kIG91dCB0aGF0IE5hb21pIHdyb3RlIHRvIHlvdSZxdW90OyAmcXVvdDtqb2xra3BvbGtreG9sa2tZb2xra1lvbGtrQW9sa2tKb2xra3lvbGtrcW9sa2tHb2xra21vbGtrTW9sa2t5b2xra2ZvbGtrcm9sa2t6JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kganVzdCBmb3VuZCBvdXQgdGhhdCBOYW9taSB3cm90ZSB0byB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kganVzdCBmb3VuZCBvdXQgdGhhdCBOYW9taSB3cm90ZSB0byB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1NoZSB0cmllZCB0byBoaWRlIGl0IGZyb20gbWUsIGJ1dCBJIGtub3cgaGVyIHRvbyB3ZWxsJnF1b3Q7ICZxdW90O2xvbGtrTG9sa2t1b2xra0dvbGtrZm9sa2tOb2xra3hvbGtrbW9sa2tpb2xra2NvbGtrY29sa2tTb2xra3NvbGtrTG9sa2tqb2xra1cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U2hlIHRyaWVkIHRvIGhpZGUgaXQgZnJvbSBtZSwgYnV0IEkga25vdyBoZXIgdG9vIHdlbGwmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1NoZSB0cmllZCB0byBoaWRlIGl0IGZyb20gbWUsIGJ1dCBJIGtub3cgaGVyIHRvbyB3ZWxsJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtZb3Uga25vdyBJ4oCZdmUgYWx3YXlzIHRhbGtlZCBhYm91dCBldmVyeXRoaW5nIHdpdGggaGVyIHNpbmNlIGhpZ2ggc2Nob29sJnF1b3Q7ICZxdW90O3FvbGtrQW9sa2t4b2xra0NvbGtrZG9sa2t4b2xra3BvbGtrb29sa2tQb2xra0lvbGtrVW9sa2tab2xra3RvbGtrSG9sa2tJb2xra1UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGtub3cgSeKAmXZlIGFsd2F5cyB0YWxrZWQgYWJvdXQgZXZlcnl0aGluZyB3aXRoIGhlciBzaW5jZSBoaWdoIHNjaG9vbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW91IGtub3cgSeKAmXZlIGFsd2F5cyB0YWxrZWQgYWJvdXQgZXZlcnl0aGluZyB3aXRoIGhlciBzaW5jZSBoaWdoIHNjaG9vbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjhzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QnV0IEkgZGlkbuKAmXQgdGhpbmsgc2hl4oCZZCBhY3R1YWxseSBzYXkgYW55dGhpbmcgdG8geW91JnF1b3Q7ICZxdW90O3VvbGtra29sa2tvb2xra1ZvbGtrV29sa2t6b2xra09vbGtrSG9sa2tDb2xra29vbGtrWG9sa2tTb2xra2dvbGtrbG9sa2t0b2xra2UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IEkgZGlkbuKAmXQgdGhpbmsgc2hl4oCZZCBhY3R1YWxseSBzYXkgYW55dGhpbmcgdG8geW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCdXQgSSBkaWRu4oCZdCB0aGluayBzaGXigJlkIGFjdHVhbGx5IHNheSBhbnl0aGluZyB0byB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDt1b2xra0hvbGtrcG9sa2tCb2xra2VvbGtrQ29sa2tGb2xra0cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDcuNHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3VvbGtrSG9sa2twb2xra0JvbGtrZW9sa2tDb2xra0ZvbGtrRyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0l04oCZcyBva2F5LCBJIHVuZGVyc3RhbmQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDNfMmEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJdOKAmXMgb2theSwgSSB1bmRlcnN0YW5kJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0M18yYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN1b2xra0hvbGtrcG9sa2tCb2xra2VvbGtrQ29sa2tGb2xra0cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIHdvdWxk4oCZdmUgcHJlZmVycmVkIGlmIHNoZSBoYWRu4oCZdCBmb3VuZCBvdXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDNfMmImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIHdvdWxk4oCZdmUgcHJlZmVycmVkIGlmIHNoZSBoYWRu4oCZdCBmb3VuZCBvdXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQzXzJiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNzEiIG5hbWU9IkFubmllQ2hhdDNfMmEiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCw5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDNfMmEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SXTigJlzIG9rYXksIEkgdW5kZXJzdGFuZCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0l04oCZcyBva2F5LCBJIHVuZGVyc3RhbmQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0l04oCZcyBva2F5LCBJIHVuZGVyc3RhbmQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGRvbXN1YiA9ICRkb21zdWItMSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtXb2xra0NvbGtrTG9sa2tGb2xra2lvbGtra29sa2tMb2xra2kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1dvbGtrQ29sa2tMb2xra0ZvbGtraW9sa2trb2xra0xvbGtraSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kga25vdyB5b3UgZ2lybHMgdGVsbCBlYWNoIG90aGVyIGV2ZXJ5dGhpbmcmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDNfM2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGtub3cgeW91IGdpcmxzIHRlbGwgZWFjaCBvdGhlciBldmVyeXRoaW5nJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0M18zYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI3MiIgbmFtZT0iQW5uaWVDaGF0M18yYiIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0M18yYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIHdvdWxk4oCZdmUgcHJlZmVycmVkIGlmIHNoZSBoYWRu4oCZdCBmb3VuZCBvdXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHdvdWxk4oCZdmUgcHJlZmVycmVkIGlmIHNoZSBoYWRu4oCZdCBmb3VuZCBvdXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgd291bGTigJl2ZSBwcmVmZXJyZWQgaWYgc2hlIGhhZG7igJl0IGZvdW5kIG91dCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkZG9tc3ViID0gJGRvbXN1YisxJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0RvbGtrZ29sa2tCb2xra1ZvbGtrTW9sa2tZb2xra1ZvbGtrcCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjRG9sa2tnb2xra0JvbGtrVm9sa2tNb2xra1lvbGtrVm9sa2twJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SXQgZmVlbHMgc3RyYW5nZSB0aGF0IHNvbWVvbmUgZWxzZSBrbm93cyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M18zYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0l0IGZlZWxzIHN0cmFuZ2UgdGhhdCBzb21lb25lIGVsc2Uga25vd3MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQzXzNiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjczIiBuYW1lPSJBbm5pZUNoYXQzXzNhIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQzXzNhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kga25vdyB5b3UgZ2lybHMgdGVsbCBlYWNoIG90aGVyIGV2ZXJ5dGhpbmcmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGtub3cgeW91IGdpcmxzIHRlbGwgZWFjaCBvdGhlciBldmVyeXRoaW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGtub3cgeW91IGdpcmxzIHRlbGwgZWFjaCBvdGhlciBldmVyeXRoaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0l04oCZcyBqdXN0IHRoYXQgdGhpcyB3YXMgc28gdW5leHBlY3RlZCZxdW90OyAmcXVvdDtmb2xra3BvbGtrbm9sa2t6b2xra2pvbGtrRm9sa2tEb2xra1BvbGtraW9sa2tlb2xra0JvbGtrZ29sa2tyb2xra09vbGtrU29sa2t6JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0l04oCZcyBqdXN0IHRoYXQgdGhpcyB3YXMgc28gdW5leHBlY3RlZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SXTigJlzIGp1c3QgdGhhdCB0aGlzIHdhcyBzbyB1bmV4cGVjdGVkJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIG5lZWRlZCB0byBoZWFyIHNvbWVvbmUgZWxzZeKAmXMgb3BpbmlvbiZxdW90OyAmcXVvdDtQb2xra2hvbGtrSm9sa2thb2xra0VvbGtrZ29sa2tDb2xra1FvbGtram9sa2t0b2xra3NvbGtrbG9sa2t5b2xra0xvbGtrSG9sa2ttJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbmVlZGVkIHRvIGhlYXIgc29tZW9uZSBlbHNl4oCZcyBvcGluaW9uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIG5lZWRlZCB0byBoZWFyIHNvbWVvbmUgZWxzZeKAmXMgb3BpbmlvbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7RnJvbSBzb21lb25lIHdobyBrbm93cyBldmVyeXRoaW5nIGFib3V0IG1lJnF1b3Q7ICZxdW90O0VvbGtrR29sa2tYb2xra2VvbGtrQm9sa2tpb2xra2NvbGtrcW9sa2txb2xra2VvbGtrem9sa2tlb2xra0ZvbGtrWG9sa2tGb2xra3MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RnJvbSBzb21lb25lIHdobyBrbm93cyBldmVyeXRoaW5nIGFib3V0IG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtGcm9tIHNvbWVvbmUgd2hvIGtub3dzIGV2ZXJ5dGhpbmcgYWJvdXQgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtCb2xra2dvbGtrTG9sa2tib2xra3ZvbGtrUG9sa2tRb2xra1YmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuMnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0JvbGtrZ29sa2tMb2xra2JvbGtrdm9sa2tQb2xra1FvbGtrViZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgY2FuIHVuZGVyc3RhbmQgdGhhdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M180JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBjYW4gdW5kZXJzdGFuZCB0aGF0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0M180JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9Ijc0IiBuYW1lPSJBbm5pZUNoYXQzXzNiIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQzXzNiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0l0IGZlZWxzIHN0cmFuZ2UgdGhhdCBzb21lb25lIGVsc2Uga25vd3MmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdCBmZWVscyBzdHJhbmdlIHRoYXQgc29tZW9uZSBlbHNlIGtub3dzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJdCBmZWVscyBzdHJhbmdlIHRoYXQgc29tZW9uZSBlbHNlIGtub3dzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kga25vdywgYW5kIEnigJltIHNvcnJ5JnF1b3Q7ICZxdW90O1RvbGtrcG9sa2tJb2xra1hvbGtrcW9sa2tob2xra3RvbGtram9sa2tib2xra0hvbGtrd29sa2tqb2xra2xvbGtrSW9sa2tob2xra00mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBrbm93LCBhbmQgSeKAmW0gc29ycnkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kga25vdywgYW5kIEnigJltIHNvcnJ5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJdOKAmXMganVzdCB0aGF0IHRoaXMgd2FzIHNvIHVuZXhwZWN0ZWQmcXVvdDsgJnF1b3Q7eW9sa2tqb2xra0NvbGtrdW9sa2tib2xra1hvbGtrem9sa2tTb2xra3ZvbGtrbG9sa2t5b2xra05vbGtrRm9sa2tsb2xra3dvbGtrZiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdOKAmXMganVzdCB0aGF0IHRoaXMgd2FzIHNvIHVuZXhwZWN0ZWQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0l04oCZcyBqdXN0IHRoYXQgdGhpcyB3YXMgc28gdW5leHBlY3RlZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBuZWVkZWQgdG8gaGVhciBzb21lb25lIGVsc2XigJlzIG9waW5pb24mcXVvdDsgJnF1b3Q7WG9sa2tpb2xra2JvbGtrRG9sa2t5b2xra1pvbGtrem9sa2tkb2xra1NvbGtrWm9sa2tYb2xra3NvbGtrV29sa2tMb2xra1pvbGtrVSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIG5lZWRlZCB0byBoZWFyIHNvbWVvbmUgZWxzZeKAmXMgb3BpbmlvbiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBuZWVkZWQgdG8gaGVhciBzb21lb25lIGVsc2XigJlzIG9waW5pb24mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0Zyb20gc29tZW9uZSB3aG8ga25vd3MgZXZlcnl0aGluZyBhYm91dCBtZSZxdW90OyAmcXVvdDtmb2xra2RvbGtram9sa2tib2xra0tvbGtrdW9sa2tMb2xra3hvbGtrTm9sa2tub2xra0JvbGtrd29sa2tHb2xra3RvbGtreW9sa2thJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0Zyb20gc29tZW9uZSB3aG8ga25vd3MgZXZlcnl0aGluZyBhYm91dCBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7RnJvbSBzb21lb25lIHdobyBrbm93cyBldmVyeXRoaW5nIGFib3V0IG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7Um9sa2tMb2xra0VvbGtrZ29sa2tKb2xra0pvbGtrQW9sa2tYJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA1LjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNSb2xra0xvbGtrRW9sa2tnb2xra0pvbGtrSm9sa2tBb2xra1gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGNhbiB1bmRlcnN0YW5kIHRoYXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDNfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgY2FuIHVuZGVyc3RhbmQgdGhhdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDNfNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI3NSIgbmFtZT0iQW5uaWVDaGF0M180IiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQzXzQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBjYW4gdW5kZXJzdGFuZCB0aGF0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBjYW4gdW5kZXJzdGFuZCB0aGF0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGNhbiB1bmRlcnN0YW5kIHRoYXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7VGhlIGxhc3QgdGhpbmcgeW91IHByb2JhYmx5IG5lZWRlZCB3aXRoIGFsbCB0aGlzIHdvcmsgc3RyZXNzIHdhcyB0aGlzIGRyYW1hJnF1b3Q7ICZxdW90O1dvbGtrUW9sa2tBb2xra1lvbGtrUm9sa2tUb2xra2RvbGtrU29sa2tVb2xra0VvbGtrdW9sa2tvb2xra1FvbGtrSW9sa2ttb2xra2cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhlIGxhc3QgdGhpbmcgeW91IHByb2JhYmx5IG5lZWRlZCB3aXRoIGFsbCB0aGlzIHdvcmsgc3RyZXNzIHdhcyB0aGlzIGRyYW1hJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUaGUgbGFzdCB0aGluZyB5b3UgcHJvYmFibHkgbmVlZGVkIHdpdGggYWxsIHRoaXMgd29yayBzdHJlc3Mgd2FzIHRoaXMgZHJhbWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJltIHJlYWxseSBzb3JyeSZxdW90OyAmcXVvdDtLb2xra3VvbGtrS29sa2tRb2xra0dvbGtra29sa2t6b2xra0pvbGtrb29sa2t1b2xra3FvbGtrUm9sa2tHb2xra1lvbGtrWW9sa2t0JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJltIHJlYWxseSBzb3JyeSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmW0gcmVhbGx5IHNvcnJ5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7Y29sa2tyb2xra3FvbGtraW9sa2tBb2xra0xvbGtreW9sa2tTJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjJzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNjb2xra3JvbGtrcW9sa2tpb2xra0FvbGtrTG9sa2t5b2xra1MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtObywgaXTigJlzIG9rYXkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDNfNSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O05vLCBpdOKAmXMgb2theSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDNfNSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI3NiIgbmFtZT0iQW5uaWVDaGF0M181IiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQzXzUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7Tm8sIGl04oCZcyBva2F5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm8sIGl04oCZcyBva2F5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtObywgaXTigJlzIG9rYXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7bW9sa2tOb2xra2FvbGtrSW9sa2t4b2xra1dvbGtreW9sa2twJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNtb2xra05vbGtrYW9sa2tJb2xra3hvbGtrV29sa2t5b2xra3AmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJ4oCZbSB0aGUgb25lIHdobyBzdWRkZW5seSBicm91Z2h0IHVwIHRoaXMgdW5mdWxmaWxsZWQgZmV0aXNoIG9mIG1pbmUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDNfNiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0nigJltIHRoZSBvbmUgd2hvIHN1ZGRlbmx5IGJyb3VnaHQgdXAgdGhpcyB1bmZ1bGZpbGxlZCBmZXRpc2ggb2YgbWluZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDNfNiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI3NyIgbmFtZT0iQW5uaWVDaGF0M182IiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQzXzYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SeKAmW0gdGhlIG9uZSB3aG8gc3VkZGVubHkgYnJvdWdodCB1cCB0aGlzIHVuZnVsZmlsbGVkIGZldGlzaCBvZiBtaW5lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gdGhlIG9uZSB3aG8gc3VkZGVubHkgYnJvdWdodCB1cCB0aGlzIHVuZnVsZmlsbGVkIGZldGlzaCBvZiBtaW5lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJ4oCZbSB0aGUgb25lIHdobyBzdWRkZW5seSBicm91Z2h0IHVwIHRoaXMgdW5mdWxmaWxsZWQgZmV0aXNoIG9mIG1pbmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7WW9sa2tDb2xra21vbGtrcm9sa2tqb2xra2FvbGtrRm9sa2tkJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNZb2xra0NvbGtrbW9sa2tyb2xra2pvbGtrYW9sa2tGb2xra2QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIHRoaW5rIHlvdXIgcmVhY3Rpb24gaXMgY29tcGxldGVseSBub3JtYWwmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDNfNyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgdGhpbmsgeW91ciByZWFjdGlvbiBpcyBjb21wbGV0ZWx5IG5vcm1hbCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDNfNyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI3OCIgbmFtZT0iQW5uaWVDaGF0M183IiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQzXzcmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSB0aGluayB5b3VyIHJlYWN0aW9uIGlzIGNvbXBsZXRlbHkgbm9ybWFsJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB0aGluayB5b3VyIHJlYWN0aW9uIGlzIGNvbXBsZXRlbHkgbm9ybWFsJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIHRoaW5rIHlvdXIgcmVhY3Rpb24gaXMgY29tcGxldGVseSBub3JtYWwmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Um9sa2t4b2xra1lvbGtreW9sa2tpb2xra2tvbGtrTW9sa2t6JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNSb2xra3hvbGtrWW9sa2t5b2xra2lvbGtra29sa2tNb2xra3omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtNYXliZSBpdOKAmXMgYmVzdCBpZiB3ZSBqdXN0IGZvcmdldCB0aGUgd2hvbGUgdGhpbmcmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDNfOCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O01heWJlIGl04oCZcyBiZXN0IGlmIHdlIGp1c3QgZm9yZ2V0IHRoZSB3aG9sZSB0aGluZyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDNfOCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI3OSIgbmFtZT0iQW5uaWVDaGF0M184IiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0M184JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O01heWJlIGl04oCZcyBiZXN0IGlmIHdlIGp1c3QgZm9yZ2V0IHRoZSB3aG9sZSB0aGluZyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O01heWJlIGl04oCZcyBiZXN0IGlmIHdlIGp1c3QgZm9yZ2V0IHRoZSB3aG9sZSB0aGluZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7TWF5YmUgaXTigJlzIGJlc3QgaWYgd2UganVzdCBmb3JnZXQgdGhlIHdob2xlIHRoaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O05vLCB5b3XigJl2ZSBhbHdheXMgZG9uZSBldmVyeXRoaW5nIHRvIG1ha2UgbWUgaGFwcHkmcXVvdDsgJnF1b3Q7SG9sa2ttb2xra1NvbGtrV29sa2tCb2xra3NvbGtrYW9sa2tkb2xra1BvbGtrbG9sa2tJb2xra0NvbGtrZG9sa2tpb2xra2VvbGtrdyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtObywgeW914oCZdmUgYWx3YXlzIGRvbmUgZXZlcnl0aGluZyB0byBtYWtlIG1lIGhhcHB5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtObywgeW914oCZdmUgYWx3YXlzIGRvbmUgZXZlcnl0aGluZyB0byBtYWtlIG1lIGhhcHB5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuOHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtZb3XigJlyZSBldmVuIG91dCB0aGVyZSBhY3Jvc3MgdGhlIGNvdW50cnkgdHJ5aW5nIHRvIGltcHJvdmUgb3VyIGZpbmFuY2VzJnF1b3Q7ICZxdW90O0pvbGtrV29sa2tjb2xra1lvbGtrTG9sa2txb2xra2JvbGtreG9sa2tRb2xra1lvbGtrSm9sa2tOb2xra2VvbGtrcm9sa2tSb2xra2EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW914oCZcmUgZXZlbiBvdXQgdGhlcmUgYWNyb3NzIHRoZSBjb3VudHJ5IHRyeWluZyB0byBpbXByb3ZlIG91ciBmaW5hbmNlcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW914oCZcmUgZXZlbiBvdXQgdGhlcmUgYWNyb3NzIHRoZSBjb3VudHJ5IHRyeWluZyB0byBpbXByb3ZlIG91ciBmaW5hbmNlcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SWYgdGhpcyBpcyBzb21ldGhpbmcgeW91IHRydWx5IHdhbnQsIEnigJlsbCBtYWtlIGFuIGVmZm9ydCB0byBzYXRpc2Z5IHlvdXIgZGVzaXJlJnF1b3Q7ICZxdW90O05vbGtrem9sa2tvb2xra0lvbGtrZW9sa2tib2xra1lvbGtrRW9sa2tGb2xra0RvbGtrVG9sa2tCb2xra1ZvbGtrR29sa2tlb2xra3gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SWYgdGhpcyBpcyBzb21ldGhpbmcgeW91IHRydWx5IHdhbnQsIEnigJlsbCBtYWtlIGFuIGVmZm9ydCB0byBzYXRpc2Z5IHlvdXIgZGVzaXJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJZiB0aGlzIGlzIHNvbWV0aGluZyB5b3UgdHJ1bHkgd2FudCwgSeKAmWxsIG1ha2UgYW4gZWZmb3J0IHRvIHNhdGlzZnkgeW91ciBkZXNpcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNS43cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJl2ZSBhbHNvIGJlZW4gdGFsa2luZyB0byBOYW9taSwgYW5kIHNoZSBtYWRlIG1lIHNlZSB0aGF0IGl04oCZcyBub3Qgc3VjaCBhIHN0cmFuZ2UgdGhpbmcmcXVvdDsgJnF1b3Q7Ym9sa2tqb2xra2lvbGtrRm9sa2tjb2xra2pvbGtrVG9sa2t3b2xra01vbGtrR29sa2t4b2xra3BvbGtrTG9sa2tVb2xra3hvbGtrVSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZdmUgYWxzbyBiZWVuIHRhbGtpbmcgdG8gTmFvbWksIGFuZCBzaGUgbWFkZSBtZSBzZWUgdGhhdCBpdOKAmXMgbm90IHN1Y2ggYSBzdHJhbmdlIHRoaW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJ4oCZdmUgYWxzbyBiZWVuIHRhbGtpbmcgdG8gTmFvbWksIGFuZCBzaGUgbWFkZSBtZSBzZWUgdGhhdCBpdOKAmXMgbm90IHN1Y2ggYSBzdHJhbmdlIHRoaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDguMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtTaGUgZXZlbiBzYXlzIHNoZSBmaW5kcyBpdCByZWFsbHkgZXhjaXRpbmcmcXVvdDsgJnF1b3Q7bm9sa2tDb2xra2VvbGtra29sa2tGb2xra2ZvbGtrQm9sa2tEb2xra2dvbGtrTG9sa2thb2xra1pvbGtrQ29sa2tMb2xra1NvbGtrVSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTaGUgZXZlbiBzYXlzIHNoZSBmaW5kcyBpdCByZWFsbHkgZXhjaXRpbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1NoZSBldmVuIHNheXMgc2hlIGZpbmRzIGl0IHJlYWxseSBleGNpdGluZyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA5LjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBzdGlsbCBkb27igJl0IHNlZSBhbGwgdGhlIGFwcGVhbCwgYnV0IGl04oCZcyB3b3J0aCB0cnlpbmcgYW5kIHNlZWluZyBob3cgaXQgZmVlbHMmcXVvdDsgJnF1b3Q7SW9sa2tlb2xra3ZvbGtrYm9sa2tob2xra1hvbGtrWm9sa2tKb2xra2JvbGtrTW9sa2tab2xra21vbGtrd29sa2tEb2xra3hvbGtrdSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHN0aWxsIGRvbuKAmXQgc2VlIGFsbCB0aGUgYXBwZWFsLCBidXQgaXTigJlzIHdvcnRoIHRyeWluZyBhbmQgc2VlaW5nIGhvdyBpdCBmZWVscyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBzdGlsbCBkb27igJl0IHNlZSBhbGwgdGhlIGFwcGVhbCwgYnV0IGl04oCZcyB3b3J0aCB0cnlpbmcgYW5kIHNlZWluZyBob3cgaXQgZmVlbHMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMTEuN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS42cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtUaGUgb25seSB0aGluZyBJ4oCZbGwgYXNrIGlmIHdl4oCZcmUgZ29pbmcgdG8gZG8gdGhpcyBpcyBub3QgdG8gcnVzaCBtZSZxdW90OyAmcXVvdDtWb2xra0VvbGtrbG9sa2thb2xra2dvbGtrcm9sa2tNb2xra3JvbGtrbG9sa2tIb2xra0NvbGtrS29sa2t5b2xra3dvbGtrSG9sa2taJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoZSBvbmx5IHRoaW5nIEnigJlsbCBhc2sgaWYgd2XigJlyZSBnb2luZyB0byBkbyB0aGlzIGlzIG5vdCB0byBydXNoIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUaGUgb25seSB0aGluZyBJ4oCZbGwgYXNrIGlmIHdl4oCZcmUgZ29pbmcgdG8gZG8gdGhpcyBpcyBub3QgdG8gcnVzaCBtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxMy45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJltIG5vdCBzdXJlIEnigJlsbCBiZSBhYmxlIHRvIGdvIHRocm91Z2ggd2l0aCBpdCZxdW90OyAmcXVvdDtTb2xra0JvbGtrUW9sa2tkb2xra1ZvbGtrc29sa2tob2xra09vbGtrTG9sa2tZb2xra1lvbGtrTG9sa2t0b2xra3BvbGtrZG9sa2tjJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJltIG5vdCBzdXJlIEnigJlsbCBiZSBhYmxlIHRvIGdvIHRocm91Z2ggd2l0aCBpdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmW0gbm90IHN1cmUgSeKAmWxsIGJlIGFibGUgdG8gZ28gdGhyb3VnaCB3aXRoIGl0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDE1LjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QnV0IHlvdSBjYW4gY291bnQgb24gbWUgdG8gdHJ5JnF1b3Q7ICZxdW90O0ZvbGtrRG9sa2tDb2xra25vbGtrbW9sa2tOb2xra0pvbGtrcW9sa2twb2xra0FvbGtrT29sa2tJb2xra1ZvbGtrQm9sa2tSb2xra0UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IHlvdSBjYW4gY291bnQgb24gbWUgdG8gdHJ5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCdXQgeW91IGNhbiBjb3VudCBvbiBtZSB0byB0cnkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtGb2xra3NvbGtrWG9sa2tKb2xra2VvbGtrUG9sa2tDb2xra1ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDE3LjBzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNGb2xra3NvbGtrWG9sa2tKb2xra2VvbGtrUG9sa2tDb2xra1ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGFua3MgYmFiZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M185YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoYW5rcyBiYWJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0M185YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNGb2xra3NvbGtrWG9sa2tKb2xra2VvbGtrUG9sa2tDb2xra1ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3XigJlsbCBzZWUsIHlvdeKAmXJlIGdvaW5nIHRvIGxpa2UgaXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDNfOWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3XigJlsbCBzZWUsIHlvdeKAmXJlIGdvaW5nIHRvIGxpa2UgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQzXzliJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjgwIiBuYW1lPSJBbm5pZUNoYXQzXzlhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0M185YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGFua3MgYmFiZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYW5rcyBiYWJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUaGFua3MgYmFiZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkZG9tc3ViID0gJGRvbXN1Yi0xJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O29vbGtrYm9sa2tWb2xra3hvbGtraG9sa2tJb2xra29vbGtrWiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjb29sa2tib2xra1ZvbGtreG9sa2tob2xra0lvbGtrb29sa2taJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WW914oCZbGwgc2VlLCB5b3XigJlyZSBnb2luZyB0byBsaWtlIGl0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQzXzEwYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdeKAmWxsIHNlZSwgeW914oCZcmUgZ29pbmcgdG8gbGlrZSBpdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDNfMTBhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjgxIiBuYW1lPSJBbm5pZUNoYXQzXzliIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMTEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0M185YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZb3XigJlsbCBzZWUsIHlvdeKAmXJlIGdvaW5nIHRvIGxpa2UgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3XigJlsbCBzZWUsIHlvdeKAmXJlIGdvaW5nIHRvIGxpa2UgaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdeKAmWxsIHNlZSwgeW914oCZcmUgZ29pbmcgdG8gbGlrZSBpdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkZG9tc3ViID0gJGRvbXN1YisxJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O25vbGtrYm9sa2tRb2xra1hvbGtrZ29sa2thb2xra3JvbGtrRyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjbm9sa2tib2xra1FvbGtrWG9sa2tnb2xra2FvbGtrcm9sa2tHJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBoYXZlIG5vIGRvdWJ0IGFib3V0IGl0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQzXzEwYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgaGF2ZSBubyBkb3VidCBhYm91dCBpdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDNfMTBiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjgyIiBuYW1lPSJBbm5pZUNoYXQzXzEwYSIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDExMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDNfMTBhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgcmVhbGx5IGFwcHJlY2lhdGUgeW91IGRvaW5nIHRoaXMgZm9yIG1lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSByZWFsbHkgYXBwcmVjaWF0ZSB5b3UgZG9pbmcgdGhpcyBmb3IgbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgcmVhbGx5IGFwcHJlY2lhdGUgeW91IGRvaW5nIHRoaXMgZm9yIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1lvdSBrbm93IEnigJlkIGRvIGFueXRoaW5nIGZvciB5b3UmcXVvdDsgJnF1b3Q7am9sa2tBb2xra0hvbGtrcm9sa2tUb2xra1NvbGtrRm9sa2t3b2xra2FvbGtrRm9sa2t6b2xra1ZvbGtreW9sa2tTb2xra3dvbGtrZSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3Uga25vdyBJ4oCZZCBkbyBhbnl0aGluZyBmb3IgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtZb3Uga25vdyBJ4oCZZCBkbyBhbnl0aGluZyBmb3IgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtBbHRob3VnaCBJ4oCZbGwgYWRtaXQgSSBzdGlsbCBoYXZlIG15IGRvdWJ0cyZxdW90OyAmcXVvdDtsb2xra1JvbGtrcW9sa2tyb2xra2VvbGtrRm9sa2tWb2xra0pvbGtrdW9sa2tsb2xra3dvbGtrSG9sa2tBb2xra1FvbGtrbm9sa2tiJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FsdGhvdWdoIEnigJlsbCBhZG1pdCBJIHN0aWxsIGhhdmUgbXkgZG91YnRzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtBbHRob3VnaCBJ4oCZbGwgYWRtaXQgSSBzdGlsbCBoYXZlIG15IGRvdWJ0cyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QnV0IHlvdSBhbmQgTmFvbWkga25vdyBtZSBiZXR0ZXIgdGhhbiBhbnlvbmUmcXVvdDsgJnF1b3Q7QW9sa2tub2xra2dvbGtrT29sa2tPb2xra1dvbGtrb29sa2trb2xra2tvbGtrZ29sa2tUb2xra0RvbGtrUG9sa2tsb2xra3RvbGtrcSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgeW91IGFuZCBOYW9taSBrbm93IG1lIGJldHRlciB0aGFuIGFueW9uZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QnV0IHlvdSBhbmQgTmFvbWkga25vdyBtZSBiZXR0ZXIgdGhhbiBhbnlvbmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC41cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0FuZCB5b3UgYm90aCBhZ3JlZSwgc28gSeKAmWxsIGRlZmluaXRlbHkgZ2l2ZSB0aGlzIGEgY2hhbmNlJnF1b3Q7ICZxdW90O2pvbGtraG9sa2tJb2xra2tvbGtrSG9sa2t5b2xra0VvbGtrdG9sa2tXb2xra0ZvbGtrVm9sa2tPb2xra0JvbGtrZm9sa2ttb2xra1YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5kIHlvdSBib3RoIGFncmVlLCBzbyBJ4oCZbGwgZGVmaW5pdGVseSBnaXZlIHRoaXMgYSBjaGFuY2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0FuZCB5b3UgYm90aCBhZ3JlZSwgc28gSeKAmWxsIGRlZmluaXRlbHkgZ2l2ZSB0aGlzIGEgY2hhbmNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7d29sa2tob2xra2JvbGtrc29sa2t0b2xra1lvbGtrdW9sa2t0JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA2LjJzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN3b2xra2hvbGtrYm9sa2tzb2xra3RvbGtrWW9sa2t1b2xra3QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGhhdmUgdG8gc2F5LCB0aGlzIGhhcyBtYWRlIG15IGRheSBzbyBtdWNoIGJldHRlciZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M18xMSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgaGF2ZSB0byBzYXksIHRoaXMgaGFzIG1hZGUgbXkgZGF5IHNvIG11Y2ggYmV0dGVyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0M18xMSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI4MyIgbmFtZT0iQW5uaWVDaGF0M18xMGIiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCwxMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQzXzEwYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGhhdmUgbm8gZG91YnQgYWJvdXQgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGhhdmUgbm8gZG91YnQgYWJvdXQgaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgaGF2ZSBubyBkb3VidCBhYm91dCBpdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtIb25lc3RseSwgSSBkbyZxdW90OyAmcXVvdDtOb2xra3pvbGtreW9sa2tMb2xra3hvbGtrd29sa2tib2xra3RvbGtrTm9sa2tvb2xra0ZvbGtrbG9sa2tSb2xra0NvbGtrc29sa2tRJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvbmVzdGx5LCBJIGRvJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIb25lc3RseSwgSSBkbyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QnV0IHlvdSBhbmQgTmFvbWkga25vdyBtZSBiZXR0ZXIgdGhhbiBhbnlvbmUmcXVvdDsgJnF1b3Q7RG9sa2tKb2xra25vbGtrQW9sa2t0b2xra3hvbGtrVm9sa2trb2xra2RvbGtraW9sa2tWb2xra1pvbGtrc29sa2tFb2xra2FvbGtrSiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgeW91IGFuZCBOYW9taSBrbm93IG1lIGJldHRlciB0aGFuIGFueW9uZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QnV0IHlvdSBhbmQgTmFvbWkga25vdyBtZSBiZXR0ZXIgdGhhbiBhbnlvbmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi43cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0FuZCB5b3UgYm90aCBhZ3JlZSwgc28gSeKAmWxsIGRlZmluaXRlbHkgZ2l2ZSB0aGlzIGEgY2hhbmNlJnF1b3Q7ICZxdW90O0JvbGtrcG9sa2t5b2xra0xvbGtrZG9sa2tsb2xra2lvbGtrQm9sa2tHb2xra1lvbGtrRG9sa2tHb2xra1JvbGtrQW9sa2trb2xra3omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5kIHlvdSBib3RoIGFncmVlLCBzbyBJ4oCZbGwgZGVmaW5pdGVseSBnaXZlIHRoaXMgYSBjaGFuY2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0FuZCB5b3UgYm90aCBhZ3JlZSwgc28gSeKAmWxsIGRlZmluaXRlbHkgZ2l2ZSB0aGlzIGEgY2hhbmNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7UW9sa2tvb2xra3lvbGtrV29sa2tTb2xra21vbGtrWG9sa2t2JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjRzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNRb2xra29vbGtreW9sa2tXb2xra1NvbGtrbW9sa2tYb2xra3YmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGhhdmUgdG8gc2F5LCB0aGlzIGhhcyBtYWRlIG15IGRheSBzbyBtdWNoIGJldHRlciZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M18xMSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgaGF2ZSB0byBzYXksIHRoaXMgaGFzIG1hZGUgbXkgZGF5IHNvIG11Y2ggYmV0dGVyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0M18xMSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI4NCIgbmFtZT0iQW5uaWVDaGF0M18xMSIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDExMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDNfMTEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBoYXZlIHRvIHNheSwgdGhpcyBoYXMgbWFkZSBteSBkYXkgc28gbXVjaCBiZXR0ZXImcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGhhdmUgdG8gc2F5LCB0aGlzIGhhcyBtYWRlIG15IGRheSBzbyBtdWNoIGJldHRlciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBoYXZlIHRvIHNheSwgdGhpcyBoYXMgbWFkZSBteSBkYXkgc28gbXVjaCBiZXR0ZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7eW9sa2trb2xra0hvbGtrdm9sa2ttb2xra2dvbGtrUG9sa2tlJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN5b2xra2tvbGtrSG9sa2t2b2xra21vbGtrZ29sa2tQb2xra2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGZlZWwgbGlrZSBhIHdlaWdodCBoYXMgYmVlbiBsaWZ0ZWQgb2ZmIG15IHNob3VsZGVycyBhZnRlciBjb25mZXNzaW5nIHRoaXMgdG8geW91JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXQzXzEyJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBmZWVsIGxpa2UgYSB3ZWlnaHQgaGFzIGJlZW4gbGlmdGVkIG9mZiBteSBzaG91bGRlcnMgYWZ0ZXIgY29uZmVzc2luZyB0aGlzIHRvIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDNfMTImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iODUiIG5hbWU9IkFubmllQ2hhdDNfMTIiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCwxMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQzXzEyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgZmVlbCBsaWtlIGEgd2VpZ2h0IGhhcyBiZWVuIGxpZnRlZCBvZmYgbXkgc2hvdWxkZXJzIGFmdGVyIGNvbmZlc3NpbmcgdGhpcyB0byB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGZlZWwgbGlrZSBhIHdlaWdodCBoYXMgYmVlbiBsaWZ0ZWQgb2ZmIG15IHNob3VsZGVycyBhZnRlciBjb25mZXNzaW5nIHRoaXMgdG8geW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGZlZWwgbGlrZSBhIHdlaWdodCBoYXMgYmVlbiBsaWZ0ZWQgb2ZmIG15IHNob3VsZGVycyBhZnRlciBjb25mZXNzaW5nIHRoaXMgdG8geW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0hvbmV5LCB5b3Ugc2hvdWxk4oCZdmUgdG9sZCBtZSBzb29uZXImcXVvdDsgJnF1b3Q7Tm9sa2txb2xra2ZvbGtrem9sa2tUb2xra2xvbGtrcm9sa2tsb2xra2hvbGtrem9sa2tUb2xra1BvbGtrcm9sa2twb2xra2dvbGtrQSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIb25leSwgeW91IHNob3VsZOKAmXZlIHRvbGQgbWUgc29vbmVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIb25leSwgeW91IHNob3VsZOKAmXZlIHRvbGQgbWUgc29vbmVyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4zcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGNhbuKAmXQgYmVsaWV2ZSB5b3XigJl2ZSBiZWVuIGNhcnJ5aW5nIGFsbCB0aGlzIHdpdGhvdXQgdGVsbGluZyBtZSBhYm91dCBpdC4mcXVvdDsgJnF1b3Q7Rm9sa2tSb2xra3JvbGtrZG9sa2tUb2xra25vbGtrWm9sa2t3b2xra1pvbGtrRG9sa2tsb2xra2pvbGtram9sa2tTb2xra1NvbGtrSyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGNhbuKAmXQgYmVsaWV2ZSB5b3XigJl2ZSBiZWVuIGNhcnJ5aW5nIGFsbCB0aGlzIHdpdGhvdXQgdGVsbGluZyBtZSBhYm91dCBpdC4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgY2Fu4oCZdCBiZWxpZXZlIHlvdeKAmXZlIGJlZW4gY2FycnlpbmcgYWxsIHRoaXMgd2l0aG91dCB0ZWxsaW5nIG1lIGFib3V0IGl0LiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjRzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QW5kIGFib3V0IHdvcmssIGRvIHlvdSB0aGluayB5b3XigJlsbCBiZSBhYmxlIHRvIGZpbmlzaCBhbGwgeW91ciB3b3JrIGJ5IEZyaWRheT8mcXVvdDsgJnF1b3Q7d29sa2tFb2xra0JvbGtrTm9sa2tsb2xra21vbGtrR29sa2tKb2xra0FvbGtrbG9sa2tNb2xra0tvbGtrSW9sa2tSb2xra0hvbGtrZyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbmQgYWJvdXQgd29yaywgZG8geW91IHRoaW5rIHlvdeKAmWxsIGJlIGFibGUgdG8gZmluaXNoIGFsbCB5b3VyIHdvcmsgYnkgRnJpZGF5PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QW5kIGFib3V0IHdvcmssIGRvIHlvdSB0aGluayB5b3XigJlsbCBiZSBhYmxlIHRvIGZpbmlzaCBhbGwgeW91ciB3b3JrIGJ5IEZyaWRheT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDt2b2xra01vbGtrTm9sa2tib2xra1dvbGtrTW9sa2tKb2xra3AmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDUuNnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3ZvbGtrTW9sa2tOb2xra2JvbGtrV29sa2tNb2xra0pvbGtrcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0RvbuKAmXQgd29ycnkgYWJvdXQgaXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDNfMTNhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7RG9u4oCZdCB3b3JyeSBhYm91dCBpdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdDNfMTNhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3ZvbGtrTW9sa2tOb2xra2JvbGtrV29sa2tNb2xra0pvbGtrcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0hvbmVzdGx5LCBJ4oCZbSBub3Qgc3VyZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M18xM2ImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtIb25lc3RseSwgSeKAmW0gbm90IHN1cmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQzXzEzYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI4NiIgbmFtZT0iQW5uaWVDaGF0M18xM2EiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwxMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQzXzEzYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtEb27igJl0IHdvcnJ5IGFib3V0IGl0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RG9u4oCZdCB3b3JyeSBhYm91dCBpdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7RG9u4oCZdCB3b3JyeSBhYm91dCBpdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkZG9tc3ViID0gJGRvbXN1YisxJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3pvbGtrb29sa2tXb2xra1FvbGtrbm9sa2tqb2xra3JvbGtrbCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjem9sa2tvb2xra1dvbGtrUW9sa2tub2xra2pvbGtrcm9sa2tsJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SeKAmW0gZ29pbmcgdG8gZ2V0IGl0IGRvbmUgYnkgRnJpZGF5LCBubyBtYXR0ZXIgd2hhdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M18xNGEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJ4oCZbSBnb2luZyB0byBnZXQgaXQgZG9uZSBieSBGcmlkYXksIG5vIG1hdHRlciB3aGF0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0M18xNGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iODciIG5hbWU9IkFubmllQ2hhdDNfMTNiIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMTEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0M18xM2ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SG9uZXN0bHksIEnigJltIG5vdCBzdXJlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SG9uZXN0bHksIEnigJltIG5vdCBzdXJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIb25lc3RseSwgSeKAmW0gbm90IHN1cmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGRvbXN1YiA9ICRkb21zdWItMSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtKb2xra0dvbGtrem9sa2tGb2xra3FvbGtrUm9sa2tYb2xra1cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0pvbGtrR29sa2t6b2xra0ZvbGtrcW9sa2tSb2xra1hvbGtrVyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0J1dCBJ4oCZbGwgZG8gbXkgYmVzdCB0byBtYWtlIGl0IGhhcHBlbiZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M18xNGImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtCdXQgSeKAmWxsIGRvIG15IGJlc3QgdG8gbWFrZSBpdCBoYXBwZW4mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQzXzE0YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI4OCIgbmFtZT0iQW5uaWVDaGF0M18xNGEiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSwxMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXQzXzE0YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJ4oCZbSBnb2luZyB0byBnZXQgaXQgZG9uZSBieSBGcmlkYXksIG5vIG1hdHRlciB3aGF0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gZ29pbmcgdG8gZ2V0IGl0IGRvbmUgYnkgRnJpZGF5LCBubyBtYXR0ZXIgd2hhdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmW0gZ29pbmcgdG8gZ2V0IGl0IGRvbmUgYnkgRnJpZGF5LCBubyBtYXR0ZXIgd2hhdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJ4oCZbSBnbGFkIHRvIGhlYXIgdGhhdCZxdW90OyAmcXVvdDtVb2xra01vbGtrUG9sa2tmb2xra3hvbGtrT29sa2tSb2xra0JvbGtrSm9sa2tEb2xra3ZvbGtrWW9sa2tpb2xra2FvbGtrcG9sa2tzJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJltIGdsYWQgdG8gaGVhciB0aGF0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJ4oCZbSBnbGFkIHRvIGhlYXIgdGhhdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjRzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7WW91IGtub3cgSSBiZWxpZXZlIGluIHlvdSZxdW90OyAmcXVvdDt3b2xra3hvbGtrWm9sa2tQb2xra2lvbGtrdm9sa2tib2xra3BvbGtrT29sa2thb2xra09vbGtraW9sa2tub2xra0ZvbGtrbW9sa2tDJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBrbm93IEkgYmVsaWV2ZSBpbiB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdSBrbm93IEkgYmVsaWV2ZSBpbiB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90OyB0cnVlICZxdW90O0FubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgCgombHQ7ZGl2IGlkPSZxdW90O2dvbGtrTm9sa2tQb2xra3JvbGtrZW9sa2t2b2xra1lvbGtrciZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjZ29sa2tOb2xra1BvbGtrcm9sa2tlb2xra3ZvbGtrWW9sa2tyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBsb3ZlIHlvdSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M18xNWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGxvdmUgeW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0M18xNWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iODkiIG5hbWU9IkFubmllQ2hhdDNfMTRiIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDExMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDNfMTRiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0J1dCBJ4oCZbGwgZG8gbXkgYmVzdCB0byBtYWtlIGl0IGhhcHBlbiZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCBJ4oCZbGwgZG8gbXkgYmVzdCB0byBtYWtlIGl0IGhhcHBlbiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QnV0IEnigJlsbCBkbyBteSBiZXN0IHRvIG1ha2UgaXQgaGFwcGVuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kga25vdyB5b3Ugd2lsbCZxdW90OyAmcXVvdDtMb2xra0NvbGtrVm9sa2trb2xra21vbGtra29sa2tYb2xra1BvbGtrWW9sa2trb2xra0VvbGtrdm9sa2txb2xra3JvbGtrRW9sa2tGJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kga25vdyB5b3Ugd2lsbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBrbm93IHlvdSB3aWxsJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtZb3XigJl2ZSBhbHdheXMgYmVlbiBzdWNoIGEgaGFyZHdvcmtpbmcgbWFuJnF1b3Q7ICZxdW90O0RvbGtrZ29sa2t5b2xra1RvbGtrVG9sa2tkb2xra2NvbGtrUm9sa2ttb2xra1BvbGtrYW9sa2tYb2xra29vbGtrY29sa2tqb2xra0EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW914oCZdmUgYWx3YXlzIGJlZW4gc3VjaCBhIGhhcmR3b3JraW5nIG1hbiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW914oCZdmUgYWx3YXlzIGJlZW4gc3VjaCBhIGhhcmR3b3JraW5nIG1hbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SXTigJlzIG9uZSBvZiB0aGUgdGhpbmdzIEkgbG92ZSBhYm91dCB5b3UmcXVvdDsgJnF1b3Q7c29sa2tnb2xra1BvbGtrdG9sa2tPb2xra2pvbGtrV29sa2tZb2xra2tvbGtrTG9sa2tUb2xra1hvbGtrUW9sa2t4b2xra0ZvbGtreCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdOKAmXMgb25lIG9mIHRoZSB0aGluZ3MgSSBsb3ZlIGFib3V0IHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SXTigJlzIG9uZSBvZiB0aGUgdGhpbmdzIEkgbG92ZSBhYm91dCB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC4xcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90OyB0cnVlICZxdW90O0FubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgCgombHQ7ZGl2IGlkPSZxdW90O0hvbGtra29sa2ttb2xra2lvbGtrZG9sa2tUb2xra1dvbGtrYyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNS4xcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjSG9sa2trb2xra21vbGtraW9sa2tkb2xra1RvbGtrV29sa2tjJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBsb3ZlIHlvdSwgQW5uaWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdDNfMTViJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBsb3ZlIHlvdSwgQW5uaWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQzXzE1YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI5MCIgbmFtZT0iQW5uaWVDaGF0M18xNWEiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMTEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0M18xNWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBsb3ZlIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbG92ZSB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgbG92ZSB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBsb3ZlIHlvdSBtb3JlJnF1b3Q7ICZxdW90O2VvbGtrSW9sa2tob2xra2FvbGtrbG9sa2tDb2xra0lvbGtrbG9sa2tIb2xra09vbGtrdm9sa2t1b2xra0dvbGtrZG9sa2tib2xra1omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBsb3ZlIHlvdSBtb3JlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGxvdmUgeW91IG1vcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBsb3ZlIHlvdSBtb3JlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSA9ICZxdW90O0FubmllQ2hhdDNfOGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfbGFzdF9ob3VyID0gJnF1b3Q7MTE6NTgmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdCA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDsxMTo1OCZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7b2ZmbGluZS10ZXh0JnF1b3Q7Jmd0O0FubmllIGlzIG9mZmxpbmUmbHQ7L2RpdiZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdCA9ICZxdW90O0hleSAkbmFtZSwgaG934oCZcyBldmVyeXRoaW5nPyZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkVmFuZXNzYV92aXNpYmxlID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0ID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0U3RhdGUgPSAmcXVvdDtWYW5lc3NhSW50cm8xJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjkxIiBuYW1lPSJBbm5pZUNoYXQzXzE1YiIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDEyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdDNfMTViJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgbG92ZSB5b3UsIEFubmllJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBsb3ZlIHlvdSwgQW5uaWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgbG92ZSB5b3UsIEFubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0hvbGtrSG9sa2tzb2xra2hvbGtrU29sa2tTb2xra2lvbGtrVSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjSG9sa2tIb2xra3NvbGtraG9sa2tTb2xra1NvbGtraW9sa2tVJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBkb27igJl0IGtub3cgd2hhdCBJ4oCZZCBkbyB3aXRob3V0IHlvdSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0M18xNiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgZG9u4oCZdCBrbm93IHdoYXQgSeKAmWQgZG8gd2l0aG91dCB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXQzXzE2JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjkyIiBuYW1lPSJBbm5pZUNoYXQzXzE2IiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsMTIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0M18xNiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGRvbuKAmXQga25vdyB3aGF0IEnigJlkIGRvIHdpdGhvdXQgeW91JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBkb27igJl0IGtub3cgd2hhdCBJ4oCZZCBkbyB3aXRob3V0IHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBkb27igJl0IGtub3cgd2hhdCBJ4oCZZCBkbyB3aXRob3V0IHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGxvdmUgeW91IG1vcmUmcXVvdDsgJnF1b3Q7S29sa2tOb2xra2lvbGtrSm9sa2tDb2xra1VvbGtrTG9sa2tZb2xra0NvbGtrYW9sa2t1b2xra2RvbGtrTm9sa2tkb2xra1VvbGtrciZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGxvdmUgeW91IG1vcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgbG92ZSB5b3UgbW9yZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGxvdmUgeW91IG1vcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVDaGF0M184YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0X2hvdXIgPSAmcXVvdDsxMTo1OCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkaG91ciA9ICZxdW90OzExOjU4JnF1b3Q7Jmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtvZmZsaW5lLXRleHQmcXVvdDsmZ3Q7QW5uaWUgaXMgb2ZmbGluZSZsdDsvZGl2Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX25vdGVzLnB1c2goJnF1b3Q7QW5uaWUgdG9sZCBtZSBzaGXigJlsbCBkbyBldmVyeXRoaW5nIHNoZSBjYW4gdG8gbWFrZSBtZSBoYXBweSBhbmQgd2lsbCB0cnkgdG8gbWFrZSBhbiBlZmZvcnQgdG8gZnVsZmlsbCBteSBmYW50YXN5LiZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtIZXkgJG5hbWUsIGhvd+KAmXMgZXZlcnl0aGluZz8mcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJFZhbmVzc2FfdmlzaWJsZSA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdCA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdFN0YXRlID0gJnF1b3Q7VmFuZXNzYUludHJvMSZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI5MyIgbmFtZT0iQW5uaWVDaGF0RXAyXzFfMSIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDEyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SG9uZXksIGhvd+KAmXMgZXZlcnl0aGluZyBnb2luZyBvdmVyIHRoZXJlPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SG9uZXksIGhvd+KAmXMgZXZlcnl0aGluZyBnb2luZyBvdmVyIHRoZXJlPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SG9uZXksIGhvd+KAmXMgZXZlcnl0aGluZyBnb2luZyBvdmVyIHRoZXJlPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtPb2xra3FvbGtreG9sa2tob2xra0lvbGtrbW9sa2tRb2xra2QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuNnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I09vbGtrcW9sa2t4b2xra2hvbGtrSW9sa2ttb2xra1FvbGtrZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1N0aWxsIHdvcmtpbmcgb24gdGhlIHJlcG9ydCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzFfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1N0aWxsIHdvcmtpbmcgb24gdGhlIHJlcG9ydCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8xXzImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI5NCIgbmFtZT0iQW5uaWVDaGF0RXAyXzFfMiIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDEyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8xXzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7U3RpbGwgd29ya2luZyBvbiB0aGUgcmVwb3J0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U3RpbGwgd29ya2luZyBvbiB0aGUgcmVwb3J0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtTdGlsbCB3b3JraW5nIG9uIHRoZSByZXBvcnQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Vm9sa2tyb2xra2hvbGtra29sa2tFb2xra2lvbGtraG9sa2tvJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNWb2xra3JvbGtraG9sa2trb2xra0VvbGtraW9sa2tob2xra28mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtXaGF0IGFib3V0IHlvdT8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8xXzMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXaGF0IGFib3V0IHlvdT8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMV8zJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9Ijk1IiBuYW1lPSJBbm5pZUNoYXRFcDJfMV8zIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsMTIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzFfMyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtXaGF0IGFib3V0IHlvdT8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXaGF0IGFib3V0IHlvdT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1doYXQgYWJvdXQgeW91PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtXZWxsLCBJ4oCZbSBvbiBteSBicmVhayByaWdodCBub3cmcXVvdDsgJnF1b3Q7UW9sa2tZb2xra0xvbGtrem9sa2tqb2xra1JvbGtrVm9sa2tRb2xra1VvbGtrQm9sa2t6b2xra2ZvbGtra29sa2ttb2xra0lvbGtrdCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZWxsLCBJ4oCZbSBvbiBteSBicmVhayByaWdodCBub3cmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1dlbGwsIEnigJltIG9uIG15IGJyZWFrIHJpZ2h0IG5vdyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7VGhlIGdpcmxzIHNheSBoaSZxdW90OyAmcXVvdDtZb2xra0FvbGtrbG9sa2tEb2xra3RvbGtrd29sa2tWb2xra3hvbGtrRW9sa2tlb2xra1lvbGtraG9sa2tGb2xra3NvbGtrVW9sa2thJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoZSBnaXJscyBzYXkgaGkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1RoZSBnaXJscyBzYXkgaGkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4xcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9pbWcgJnF1b3Q7YXNzZXRzL2ltZy9lcDIvYW5uaWVfcGhvdG9fMy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7bG9sa2tRb2xra1BvbGtrem9sa2tzb2xra1lvbGtreW9sa2tKb2xra0xvbGtreG9sa2tPb2xra0ZvbGtraG9sa2thb2xra05vbGtrcSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAyLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2VwMi9hbm5pZV9waG90b18zLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRwaG90b3MucHVzaCgmcXVvdDthc3NldHMvaW1nL2VwMi9hbm5pZV9waG90b18zLndlYnAmcXVvdDspJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7UG9sa2tSb2xra1JvbGtrb29sa2tMb2xra1hvbGtrd29sa2tTJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjFzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNQb2xra1JvbGtrUm9sa2tvb2xra0xvbGtrWG9sa2t3b2xra1MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUZWxsIHRoZW0gSSBzYXkgaGkgYmFjayZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzFfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RlbGwgdGhlbSBJIHNheSBoaSBiYWNrJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzFfNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI5NiIgbmFtZT0iQW5uaWVDaGF0RXAyXzFfNCIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDEyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8xXzQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGVsbCB0aGVtIEkgc2F5IGhpIGJhY2smcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUZWxsIHRoZW0gSSBzYXkgaGkgYmFjayZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGVsbCB0aGVtIEkgc2F5IGhpIGJhY2smcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuMnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSB3aWxsJnF1b3Q7ICZxdW90O3hvbGtrVG9sa2t0b2xra09vbGtrV29sa2twb2xra0xvbGtrSW9sa2tGb2xra2pvbGtrYm9sa2t3b2xra0lvbGtrbW9sa2tab2xra3omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB3aWxsJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIHdpbGwmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJltIGFscmVhZHkgbWlzc2luZyB5b3UsIGhvbmV5JnF1b3Q7ICZxdW90O0hvbGtrem9sa2tVb2xra2tvbGtrVW9sa2tFb2xra29vbGtrRW9sa2ttb2xra21vbGtrVG9sa2thb2xra3VvbGtrUW9sa2tVb2xra3EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gYWxyZWFkeSBtaXNzaW5nIHlvdSwgaG9uZXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJltIGFscmVhZHkgbWlzc2luZyB5b3UsIGhvbmV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMi4wcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIHN0aWxsIGNhbuKAmXQgd3JhcCBteSBoZWFkIGFyb3VuZCB0aGUgZmFjdCB0aGF0IHdoZW4gSSBnZXQgaG9tZSBhZnRlciB3b3JrLCB5b3Ugd29u4oCZdCBiZSB0aGVyZSZxdW90OyAmcXVvdDt6b2xra0RvbGtrQm9sa2tCb2xra1lvbGtrZm9sa2tBb2xra0FvbGtrTW9sa2tWb2xra21vbGtrc29sa2t3b2xra3JvbGtrcm9sa2tuJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgc3RpbGwgY2Fu4oCZdCB3cmFwIG15IGhlYWQgYXJvdW5kIHRoZSBmYWN0IHRoYXQgd2hlbiBJIGdldCBob21lIGFmdGVyIHdvcmssIHlvdSB3b27igJl0IGJlIHRoZXJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIHN0aWxsIGNhbuKAmXQgd3JhcCBteSBoZWFkIGFyb3VuZCB0aGUgZmFjdCB0aGF0IHdoZW4gSSBnZXQgaG9tZSBhZnRlciB3b3JrLCB5b3Ugd29u4oCZdCBiZSB0aGVyZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjhzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2NyeWluZy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfY3J5aW5nLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7Vm9sa2tqb2xra3pvbGtrWW9sa2tRb2xra2NvbGtrVW9sa2t3JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA1LjhzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNWb2xra2pvbGtrem9sa2tZb2xra1FvbGtrY29sa2tVb2xra3cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIG1pc3MgeW91IHRvbyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzFfNWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIG1pc3MgeW91IHRvbyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8xXzVhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1ZvbGtram9sa2t6b2xra1lvbGtrUW9sa2tjb2xra1VvbGtrdyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0l04oCZcyBvbmx5IGZvciBhIGxpdHRsZSB3aGlsZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzFfNWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJdOKAmXMgb25seSBmb3IgYSBsaXR0bGUgd2hpbGUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMV81YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI5NyIgbmFtZT0iQW5uaWVDaGF0RXAyXzFfNWEiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCwxMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMV81YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIG1pc3MgeW91IHRvbyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbWlzcyB5b3UgdG9vJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIG1pc3MgeW91IHRvbyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkYW5uaWVfcm9tYW5jZSA9ICRhbm5pZV9yb21hbmNlKzEmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7dW9sa2tkb2xra2VvbGtrUm9sa2tab2xra0hvbGtrRW9sa2tOJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN1b2xra2RvbGtrZW9sa2tSb2xra1pvbGtrSG9sa2tFb2xra04mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDvwn5ilJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMV82YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O/CfmKUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMV82YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI5OCIgbmFtZT0iQW5uaWVDaGF0RXAyXzFfNWIiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSwxMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMV81YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJdOKAmXMgb25seSBmb3IgYSBsaXR0bGUgd2hpbGUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdOKAmXMgb25seSBmb3IgYSBsaXR0bGUgd2hpbGUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0l04oCZcyBvbmx5IGZvciBhIGxpdHRsZSB3aGlsZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtsb2xra1RvbGtrVm9sa2tPb2xra1JvbGtrb29sa2tFb2xra3cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2xvbGtrVG9sa2tWb2xra09vbGtrUm9sa2tvb2xra0VvbGtrdyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0luIGEgZmV3IG1vbnRocywgSeKAmWxsIGJlIHJpZ2h0IGJhY2sgYnkgeW91ciBzaWRlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMV82YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0luIGEgZmV3IG1vbnRocywgSeKAmWxsIGJlIHJpZ2h0IGJhY2sgYnkgeW91ciBzaWRlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzFfNmImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iOTkiIG5hbWU9IkFubmllQ2hhdEVwMl8xXzZhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDEyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8xXzZhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfc3RyZXNzZWQud2VicCZxdW90OyB0cnVlICZxdW90O1lvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfc3RyZXNzZWQud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7am9sa2tBb2xra1NvbGtreW9sa2tYb2xra3NvbGtrd29sa2tKJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNqb2xra0FvbGtrU29sa2t5b2xra1hvbGtrc29sa2t3b2xra0omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtCdXQgaGV5LCBpdOKAmXMgb25seSBmb3IgYSBsaXR0bGUgd2hpbGUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8xXzdhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QnV0IGhleSwgaXTigJlzIG9ubHkgZm9yIGEgbGl0dGxlIHdoaWxlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzFfN2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTAwIiBuYW1lPSJBbm5pZUNoYXRFcDJfMV82YiIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSwxMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMV82YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJbiBhIGZldyBtb250aHMsIEnigJlsbCBiZSByaWdodCBiYWNrIGJ5IHlvdXIgc2lkZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0luIGEgZmV3IG1vbnRocywgSeKAmWxsIGJlIHJpZ2h0IGJhY2sgYnkgeW91ciBzaWRlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJbiBhIGZldyBtb250aHMsIEnigJlsbCBiZSByaWdodCBiYWNrIGJ5IHlvdXIgc2lkZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGtub3csIGhvbmV5JnF1b3Q7ICZxdW90O2RvbGtrTG9sa2tlb2xra2tvbGtrSW9sa2t2b2xra1JvbGtrUm9sa2tIb2xra0ZvbGtrS29sa2tvb2xra1hvbGtrQm9sa2tZb2xra1YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBrbm93LCBob25leSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBrbm93LCBob25leSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7VGhhdOKAmXMgd2hhdCBrZWVwcyBtZSBnb2luZywga25vd2luZyBpdOKAmXMganVzdCBhIG1hdHRlciBvZiB0aW1lIHVudGlsIHlvdeKAmXJlIGJhY2sgaGVyZSZxdW90OyAmcXVvdDtCb2xra0hvbGtrY29sa2tWb2xra0NvbGtraG9sa2tFb2xra05vbGtrRW9sa2ttb2xra3lvbGtrU29sa2t0b2xra01vbGtrbG9sa2tzJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYXTigJlzIHdoYXQga2VlcHMgbWUgZ29pbmcsIGtub3dpbmcgaXTigJlzIGp1c3QgYSBtYXR0ZXIgb2YgdGltZSB1bnRpbCB5b3XigJlyZSBiYWNrIGhlcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1RoYXTigJlzIHdoYXQga2VlcHMgbWUgZ29pbmcsIGtub3dpbmcgaXTigJlzIGp1c3QgYSBtYXR0ZXIgb2YgdGltZSB1bnRpbCB5b3XigJlyZSBiYWNrIGhlcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtIb2xra2tvbGtrRm9sa2tob2xra1RvbGtreW9sa2tmb2xra0omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuNHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0hvbGtra29sa2tGb2xra2hvbGtrVG9sa2t5b2xra2ZvbGtrSiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O09mIGNvdXJzZSBiYWJlLiBCZWZvcmUgeW91IGtub3cgaXQsIEnigJlsbCBiZSB0aGVyZSB3aXRoIHlvdSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzFfOCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O09mIGNvdXJzZSBiYWJlLiBCZWZvcmUgeW91IGtub3cgaXQsIEnigJlsbCBiZSB0aGVyZSB3aXRoIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8xXzgmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTAxIiBuYW1lPSJBbm5pZUNoYXRFcDJfMV83YSIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDEzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8xXzdhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0J1dCBoZXksIGl04oCZcyBvbmx5IGZvciBhIGxpdHRsZSB3aGlsZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCBoZXksIGl04oCZcyBvbmx5IGZvciBhIGxpdHRsZSB3aGlsZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QnV0IGhleSwgaXTigJlzIG9ubHkgZm9yIGEgbGl0dGxlIHdoaWxlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kga25vdywgaG9uZXkmcXVvdDsgJnF1b3Q7Zm9sa2tab2xra2JvbGtrc29sa2tnb2xra21vbGtrcW9sa2tyb2xra0RvbGtrTW9sa2t6b2xra1VvbGtrZW9sa2tWb2xra01vbGtrZSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGtub3csIGhvbmV5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGtub3csIGhvbmV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS42cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtUaGF04oCZcyB3aGF0IGtlZXBzIG1lIGdvaW5nLCBrbm93aW5nIGl04oCZcyBqdXN0IGEgbWF0dGVyIG9mIHRpbWUgdW50aWwgeW914oCZcmUgYmFjayBoZXJlJnF1b3Q7ICZxdW90O2ZvbGtrb29sa2tPb2xra21vbGtrVm9sa2thb2xra1VvbGtrV29sa2tCb2xra3lvbGtrU29sa2tKb2xra1VvbGtrc29sa2tBb2xra3MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhdOKAmXMgd2hhdCBrZWVwcyBtZSBnb2luZywga25vd2luZyBpdOKAmXMganVzdCBhIG1hdHRlciBvZiB0aW1lIHVudGlsIHlvdeKAmXJlIGJhY2sgaGVyZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhhdOKAmXMgd2hhdCBrZWVwcyBtZSBnb2luZywga25vd2luZyBpdOKAmXMganVzdCBhIG1hdHRlciBvZiB0aW1lIHVudGlsIHlvdeKAmXJlIGJhY2sgaGVyZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O0lvbGtrVW9sa2tib2xra2RvbGtrZW9sa2tYb2xra1dvbGtrRyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjSW9sa2tVb2xra2JvbGtrZG9sa2tlb2xra1hvbGtrV29sa2tHJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7T2YgY291cnNlIGJhYmUuIEJlZm9yZSB5b3Uga25vdyBpdCwgSeKAmWxsIGJlIHRoZXJlIHdpdGggeW91JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMV84JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7T2YgY291cnNlIGJhYmUuIEJlZm9yZSB5b3Uga25vdyBpdCwgSeKAmWxsIGJlIHRoZXJlIHdpdGggeW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzFfOCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMDIiIG5hbWU9IkFubmllQ2hhdEVwMl8xXzgiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSwxMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMV84JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O09mIGNvdXJzZSBiYWJlLiBCZWZvcmUgeW91IGtub3cgaXQsIEnigJlsbCBiZSB0aGVyZSB3aXRoIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09mIGNvdXJzZSBiYWJlLiBCZWZvcmUgeW91IGtub3cgaXQsIEnigJlsbCBiZSB0aGVyZSB3aXRoIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7T2YgY291cnNlIGJhYmUuIEJlZm9yZSB5b3Uga25vdyBpdCwgSeKAmWxsIGJlIHRoZXJlIHdpdGggeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90OyB0cnVlICZxdW90O0FubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7T2gsIGJ5IHRoZSB3YXkuLi4mcXVvdDsgJnF1b3Q7SW9sa2tNb2xra2lvbGtrZW9sa2tpb2xra0xvbGtrdG9sa2twb2xra0tvbGtrVW9sa2t6b2xra25vbGtrT29sa2tNb2xra0ZvbGtraCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPaCwgYnkgdGhlIHdheS4uLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7T2gsIGJ5IHRoZSB3YXkuLi4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1RoZXJl4oCZcyBzb21ldGhpbmcgSSB3YW50ZWQgdG8gYXNrIHlvdSZxdW90OyAmcXVvdDtVb2xra1lvbGtrQW9sa2tCb2xra2RvbGtrVW9sa2tYb2xra1NvbGtrcG9sa2tZb2xra2xvbGtrVm9sa2tkb2xra3ZvbGtrUW9sa2tPJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoZXJl4oCZcyBzb21ldGhpbmcgSSB3YW50ZWQgdG8gYXNrIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhlcmXigJlzIHNvbWV0aGluZyBJIHdhbnRlZCB0byBhc2sgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtUaGUgZ2lybHMgd2FudCB0byBnbyBvdXQgdG9tb3Jyb3cgbmlnaHQmcXVvdDsgJnF1b3Q7WG9sa2t1b2xra2RvbGtreW9sa2tub2xra1FvbGtrQW9sa2tvb2xra1RvbGtrUG9sa2tMb2xra3hvbGtrRW9sa2tQb2xra2hvbGtrTyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGUgZ2lybHMgd2FudCB0byBnbyBvdXQgdG9tb3Jyb3cgbmlnaHQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1RoZSBnaXJscyB3YW50IHRvIGdvIG91dCB0b21vcnJvdyBuaWdodCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7VG8gYmUgbW9yZSBzcGVjaWZpY2FsbHksIE5hb21pIHdhbnRzIHRvIGhpdCBhIG5pZ2h0Y2x1YiZxdW90OyAmcXVvdDtSb2xra2JvbGtrem9sa2twb2xra1FvbGtrUG9sa2trb2xra3RvbGtrYm9sa2tzb2xra2ZvbGtrd29sa2tpb2xra01vbGtrY29sa2tBJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RvIGJlIG1vcmUgc3BlY2lmaWNhbGx5LCBOYW9taSB3YW50cyB0byBoaXQgYSBuaWdodGNsdWImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1RvIGJlIG1vcmUgc3BlY2lmaWNhbGx5LCBOYW9taSB3YW50cyB0byBoaXQgYSBuaWdodGNsdWImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNi42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJl2ZSBuZXZlciByZWFsbHkgdGhvdWdodCBhYm91dCBnb2luZyB0byBhIHBsYWNlIGxpa2UgdGhhdCB3aXRob3V0IHlvdSZxdW90OyAmcXVvdDt4b2xra3hvbGtrUW9sa2tTb2xra0xvbGtrdW9sa2tzb2xra0xvbGtraW9sa2tZb2xra3lvbGtrT29sa2tMb2xra2NvbGtrSW9sa2tYJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJl2ZSBuZXZlciByZWFsbHkgdGhvdWdodCBhYm91dCBnb2luZyB0byBhIHBsYWNlIGxpa2UgdGhhdCB3aXRob3V0IHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmXZlIG5ldmVyIHJlYWxseSB0aG91Z2h0IGFib3V0IGdvaW5nIHRvIGEgcGxhY2UgbGlrZSB0aGF0IHdpdGhvdXQgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDguNXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtCdXQgY29uc2lkZXJpbmcgd2hhdCB5b3UgdG9sZCBtZS4uLiZxdW90OyAmcXVvdDtwb2xra0ZvbGtrT29sa2tDb2xra2VvbGtraW9sa2tLb2xra1NvbGtrZG9sa2tQb2xra3JvbGtrVG9sa2ttb2xra0ZvbGtrd29sa2tDJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCBjb25zaWRlcmluZyB3aGF0IHlvdSB0b2xkIG1lLi4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCdXQgY29uc2lkZXJpbmcgd2hhdCB5b3UgdG9sZCBtZS4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O3JvbGtrTG9sa2twb2xra0RvbGtrc29sa2t6b2xra3hvbGtrSiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgOS43cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjcm9sa2tMb2xra3BvbGtrRG9sa2tzb2xra3pvbGtreG9sa2tKJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7T2YgY291cnNlLCB5b3Ugc2hvdWxkIGdvIG91dCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzFfOWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtPZiBjb3Vyc2UsIHlvdSBzaG91bGQgZ28gb3V0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzFfOWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjcm9sa2tMb2xra3BvbGtrRG9sa2tzb2xra3pvbGtreG9sa2tKJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SWYgeW91IHdhbnQgdG8sIEkgdGhpbmsgaXTigJlzIGZpbmUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8xXzliJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SWYgeW91IHdhbnQgdG8sIEkgdGhpbmsgaXTigJlzIGZpbmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMV85YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMDMiIG5hbWU9IkFubmllQ2hhdEVwMl8xXzlhIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsMTM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzFfOWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGRvbXN1YiA9ICRkb21zdWIrMSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7T2YgY291cnNlLCB5b3Ugc2hvdWxkIGdvIG91dCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09mIGNvdXJzZSwgeW91IHNob3VsZCBnbyBvdXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O09mIGNvdXJzZSwgeW91IHNob3VsZCBnbyBvdXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7RG9u4oCZdCBnZXQgbWUgd3JvbmcuLi4mcXVvdDsgJnF1b3Q7d29sa2tWb2xra0ZvbGtrT29sa2tab2xra3JvbGtrU29sa2tpb2xra0ZvbGtrQ29sa2tpb2xra05vbGtrem9sa2t3b2xra1NvbGtrZyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEb27igJl0IGdldCBtZSB3cm9uZy4uLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7RG9u4oCZdCBnZXQgbWUgd3JvbmcuLi4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJltIG5vdCBzYXlpbmcgSSB3b3VsZCBiZSB3aXRoIGFub3RoZXIgZ3V5IG9yIGFueXRoaW5nJnF1b3Q7ICZxdW90O0ZvbGtrcW9sa2tzb2xra2JvbGtrYm9sa2tZb2xra21vbGtrTG9sa2tWb2xra1pvbGtrc29sa2tib2xra2pvbGtrQW9sa2t6b2xra2ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gbm90IHNheWluZyBJIHdvdWxkIGJlIHdpdGggYW5vdGhlciBndXkgb3IgYW55dGhpbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJltIG5vdCBzYXlpbmcgSSB3b3VsZCBiZSB3aXRoIGFub3RoZXIgZ3V5IG9yIGFueXRoaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJ4oCZZCBqdXN0IGJlIGdvaW5nIG91dCB3aXRoIG15IGZyaWVuZHMmcXVvdDsgJnF1b3Q7am9sa2tJb2xra1RvbGtrSG9sa2ttb2xra0hvbGtrQW9sa2tjb2xra2lvbGtrYW9sa2tFb2xra0tvbGtrRm9sa2thb2xra1NvbGtrdSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZZCBqdXN0IGJlIGdvaW5nIG91dCB3aXRoIG15IGZyaWVuZHMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJlkIGp1c3QgYmUgZ29pbmcgb3V0IHdpdGggbXkgZnJpZW5kcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1NvbGtrQW9sa2tvb2xra1RvbGtrUG9sa2tXb2xra1FvbGtrcyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjU29sa2tBb2xra29vbGtrVG9sa2tQb2xra1dvbGtrUW9sa2tzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBnZXQgaXQuIFlvdSBoYXZlbuKAmXQgZ29uZSBvdXQgaW4gYSB3aGlsZSwgeW91IHNob3VsZCBlbmpveSB5b3Vyc2VsZiB3aXRoIHlvdXIgZnJpZW5kcyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzFfMTAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGdldCBpdC4gWW91IGhhdmVu4oCZdCBnb25lIG91dCBpbiBhIHdoaWxlLCB5b3Ugc2hvdWxkIGVuam95IHlvdXJzZWxmIHdpdGggeW91ciBmcmllbmRzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzFfMTAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTA0IiBuYW1lPSJBbm5pZUNoYXRFcDJfMV85YiIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDEzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8xXzliJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRkb21zdWIgPSAkZG9tc3ViLTEmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0lmIHlvdSB3YW50IHRvLCBJIHRoaW5rIGl04oCZcyBmaW5lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SWYgeW91IHdhbnQgdG8sIEkgdGhpbmsgaXTigJlzIGZpbmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0lmIHlvdSB3YW50IHRvLCBJIHRoaW5rIGl04oCZcyBmaW5lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0RvbuKAmXQgZ2V0IG1lIHdyb25nLi4uJnF1b3Q7ICZxdW90O3lvbGtrT29sa2tvb2xra1ZvbGtra29sa2tDb2xra0NvbGtrdm9sa2twb2xra25vbGtrQ29sa2tGb2xra3pvbGtrcm9sa2tRb2xra3MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RG9u4oCZdCBnZXQgbWUgd3JvbmcuLi4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0RvbuKAmXQgZ2V0IG1lIHdyb25nLi4uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJ4oCZbSBub3Qgc2F5aW5nIEkgd291bGQgYmUgd2l0aCBhbm90aGVyIGd1eSBvciBhbnl0aGluZyZxdW90OyAmcXVvdDtlb2xra2xvbGtrZ29sa2tub2xra1JvbGtrRG9sa2tQb2xra3pvbGtrUm9sa2twb2xra3dvbGtrUG9sa2tob2xra3lvbGtrZW9sa2trJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJltIG5vdCBzYXlpbmcgSSB3b3VsZCBiZSB3aXRoIGFub3RoZXIgZ3V5IG9yIGFueXRoaW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJ4oCZbSBub3Qgc2F5aW5nIEkgd291bGQgYmUgd2l0aCBhbm90aGVyIGd1eSBvciBhbnl0aGluZyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SeKAmWQganVzdCBiZSBnb2luZyBvdXQgd2l0aCBteSBmcmllbmRzJnF1b3Q7ICZxdW90O0dvbGtrem9sa2tUb2xra1VvbGtrVm9sa2tPb2xra0xvbGtrTW9sa2t5b2xra0tvbGtrWW9sa2tTb2xra2hvbGtrd29sa2txb2xra2kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmWQganVzdCBiZSBnb2luZyBvdXQgd2l0aCBteSBmcmllbmRzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJ4oCZZCBqdXN0IGJlIGdvaW5nIG91dCB3aXRoIG15IGZyaWVuZHMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtab2xra0lvbGtraG9sa2txb2xra3pvbGtrSW9sa2t3b2xra1cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuNHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1pvbGtrSW9sa2tob2xra3FvbGtrem9sa2tJb2xra3dvbGtrVyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgZ2V0IGl0LiBZb3UgaGF2ZW7igJl0IGdvbmUgb3V0IGluIGEgd2hpbGUsIHlvdSBzaG91bGQgZW5qb3kgeW91cnNlbGYgd2l0aCB5b3VyIGZyaWVuZHMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8xXzEwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBnZXQgaXQuIFlvdSBoYXZlbuKAmXQgZ29uZSBvdXQgaW4gYSB3aGlsZSwgeW91IHNob3VsZCBlbmpveSB5b3Vyc2VsZiB3aXRoIHlvdXIgZnJpZW5kcyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8xXzEwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEwNSIgbmFtZT0iQW5uaWVDaGF0RXAyXzFfMTAiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCwxMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMV8xMCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGdldCBpdC4gWW91IGhhdmVu4oCZdCBnb25lIG91dCBpbiBhIHdoaWxlLCB5b3Ugc2hvdWxkIGVuam95IHlvdXJzZWxmIHdpdGggeW91ciBmcmllbmRzJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBnZXQgaXQuIFlvdSBoYXZlbuKAmXQgZ29uZSBvdXQgaW4gYSB3aGlsZSwgeW91IHNob3VsZCBlbmpveSB5b3Vyc2VsZiB3aXRoIHlvdXIgZnJpZW5kcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBnZXQgaXQuIFlvdSBoYXZlbuKAmXQgZ29uZSBvdXQgaW4gYSB3aGlsZSwgeW91IHNob3VsZCBlbmpveSB5b3Vyc2VsZiB3aXRoIHlvdXIgZnJpZW5kcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtUaGFua3MgaG9uZXksIHlvdeKAmXJlIGFsd2F5cyBzbyB1bmRlcnN0YW5kaW5nJnF1b3Q7ICZxdW90O1FvbGtrWm9sa2tsb2xra1VvbGtrcm9sa2tUb2xra25vbGtrRm9sa2tib2xra0tvbGtreG9sa2tQb2xra09vbGtrUm9sa2tBb2xra0gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhbmtzIGhvbmV5LCB5b3XigJlyZSBhbHdheXMgc28gdW5kZXJzdGFuZGluZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhhbmtzIGhvbmV5LCB5b3XigJlyZSBhbHdheXMgc28gdW5kZXJzdGFuZGluZyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjVzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7Um9sa2tIb2xra1JvbGtrV29sa2t4b2xra2FvbGtrcG9sa2tYJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjVzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNSb2xra0hvbGtrUm9sa2tXb2xra3hvbGtrYW9sa2twb2xra1gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGxvdmUgeW91JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMV8xMWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGxvdmUgeW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzFfMTFhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1JvbGtrSG9sa2tSb2xra1dvbGtreG9sa2thb2xra3BvbGtrWCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O/CfpbAmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8xXzExYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O/CfpbAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMV8xMWImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTA2IiBuYW1lPSJBbm5pZUNoYXRFcDJfMV8xMWEiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwxMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMV8xMWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBsb3ZlIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbG92ZSB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgbG92ZSB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7VGhlIGJyZWFr4oCZcyBhbG1vc3Qgb3ZlciZxdW90OyAmcXVvdDt0b2xra2lvbGtrRm9sa2trb2xra0tvbGtraG9sa2tIb2xra0lvbGtrbW9sa2tPb2xra3BvbGtrZG9sa2tVb2xra05vbGtrWG9sa2tBJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoZSBicmVha+KAmXMgYWxtb3N0IG92ZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1RoZSBicmVha+KAmXMgYWxtb3N0IG92ZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1dlIGhhdmUgdG8gZ28gYmFjayB0byB0aGUgb2ZmaWNlJnF1b3Q7ICZxdW90O2NvbGtrbm9sa2tvb2xra3JvbGtrZm9sa2tGb2xra0lvbGtrS29sa2trb2xra25vbGtrV29sa2tzb2xra21vbGtrTm9sa2tWb2xra2UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2UgaGF2ZSB0byBnbyBiYWNrIHRvIHRoZSBvZmZpY2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1dlIGhhdmUgdG8gZ28gYmFjayB0byB0aGUgb2ZmaWNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7aG9sa2tTb2xra0ZvbGtrWm9sa2tTb2xra3BvbGtrZm9sa2t5JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjdzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNob2xra1NvbGtrRm9sa2tab2xra1NvbGtrcG9sa2tmb2xra3kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZZWFoLCBJ4oCZdmUgZ290IHRvIGtlZXAgd29ya2luZyB0b28mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8xXzEyJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WWVhaCwgSeKAmXZlIGdvdCB0byBrZWVwIHdvcmtpbmcgdG9vJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzFfMTImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTA3IiBuYW1lPSJBbm5pZUNoYXRFcDJfMV8xMWIiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCwxMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMV8xMWImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90OyB0cnVlICZxdW90O1lvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1RoZSBicmVha+KAmXMgYWxtb3N0IG92ZXImcXVvdDsgJnF1b3Q7em9sa2tSb2xra1NvbGtraG9sa2tGb2xra01vbGtrbG9sa2tkb2xra1FvbGtrWW9sa2tRb2xra2FvbGtrcW9sa2tkb2xra1lvbGtrdiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGUgYnJlYWvigJlzIGFsbW9zdCBvdmVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUaGUgYnJlYWvigJlzIGFsbW9zdCBvdmVyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtXZSBoYXZlIHRvIGdvIGJhY2sgdG8gdGhlIG9mZmljZSZxdW90OyAmcXVvdDtub2xra25vbGtrYm9sa2tlb2xra2ZvbGtrTW9sa2tjb2xra2hvbGtrYW9sa2tYb2xra3JvbGtram9sa2t3b2xra3RvbGtrRW9sa2tPJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dlIGhhdmUgdG8gZ28gYmFjayB0byB0aGUgb2ZmaWNlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtXZSBoYXZlIHRvIGdvIGJhY2sgdG8gdGhlIG9mZmljZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O3VvbGtrUm9sa2tmb2xra2RvbGtraW9sa2tsb2xra3BvbGtrUSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjdW9sa2tSb2xra2ZvbGtrZG9sa2tpb2xra2xvbGtrcG9sa2tRJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WWVhaCwgSeKAmXZlIGdvdCB0byBrZWVwIHdvcmtpbmcgdG9vJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMV8xMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1llYWgsIEnigJl2ZSBnb3QgdG8ga2VlcCB3b3JraW5nIHRvbyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8xXzEyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEwOCIgbmFtZT0iQW5uaWVDaGF0RXAyXzFfMTIiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSwxMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMV8xMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZZWFoLCBJ4oCZdmUgZ290IHRvIGtlZXAgd29ya2luZyB0b28mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFoLCBJ4oCZdmUgZ290IHRvIGtlZXAgd29ya2luZyB0b28mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1llYWgsIEnigJl2ZSBnb3QgdG8ga2VlcCB3b3JraW5nIHRvbyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtDb2xra0xvbGtrcG9sa2tvb2xra0NvbGtrZG9sa2tzb2xra1cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0NvbGtrTG9sa2twb2xra29vbGtrQ29sa2tkb2xra3NvbGtrVyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1dl4oCZbGwgdGFsayBsYXRlciZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzFfMTMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXZeKAmWxsIHRhbGsgbGF0ZXImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMV8xMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMDkiIG5hbWU9IkFubmllQ2hhdEVwMl8xXzEzIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDEzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8xXzEzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1dl4oCZbGwgdGFsayBsYXRlciZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dl4oCZbGwgdGFsayBsYXRlciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7V2XigJlsbCB0YWxrIGxhdGVyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1BlcmZlY3QgaG9uZXkmcXVvdDsgJnF1b3Q7c29sa2tpb2xra01vbGtrZW9sa2tsb2xra21vbGtrV29sa2tWb2xra1RvbGtrY29sa2tsb2xra3hvbGtrYW9sa2tib2xra21vbGtrbCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtQZXJmZWN0IGhvbmV5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtQZXJmZWN0IGhvbmV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJ4oCZbGwgdGV4dCB5b3UgYWZ0ZXIgd29yayZxdW90OyAmcXVvdDtFb2xra3NvbGtrRG9sa2tsb2xra1BvbGtrVG9sa2tpb2xra0RvbGtrRG9sa2tNb2xra09vbGtrS29sa2t1b2xra21vbGtrUW9sa2tJJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJlsbCB0ZXh0IHlvdSBhZnRlciB3b3JrJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJ4oCZbGwgdGV4dCB5b3UgYWZ0ZXIgd29yayZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjJzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDMuMnMmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O/CfpbAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzFfMTMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfbGFzdF9ob3VyID0gJnF1b3Q7MTc6NDYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdCA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDsxNzo0NiZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7b2ZmbGluZS10ZXh0JnF1b3Q7Jmd0O0FubmllIGlzIG9mZmxpbmUmbHQ7L2RpdiZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9ub3Rlcy5wdXNoKCZxdW90O0FubmllIGFza2VkIG1lIGlmIEkgd2FzIG9rYXkgd2l0aCBoZXIgZ29pbmcgb3V0IHdpdGggaGVyIGZyaWVuZHMgdGhlIG5leHQgbmlnaHQuIE9mIGNvdXJzZSwgSSB0b2xkIGhlciB5ZXMuJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4ycyZndDsmZ3Q7CiZsdDsmbHQ7aWYgJG5hb21pX29mZmVyID09IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2NoYXQgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMnMmZ3Q7Jmd0OwombHQ7Jmx0O2lmICRuYW9taV9vZmZlciA9PSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgPSAmcXVvdDtOYW9taUNoYXRFcDJfMV8xJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMnMmZ3Q7Jmd0OwombHQ7Jmx0O2lmICRuYW9taV9vZmZlciA9PSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7SGV5LCBpdOKAmXMgbWUgYWdhaW4uLi4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4ycyZndDsmZ3Q7CiZsdDsmbHQ7aWYgJG5hb21pX29mZmVyID09IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDsxNDo0MCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjJzJmd0OyZndDsKJmx0OyZsdDtpZiAkbmFvbWlfb2ZmZXIgPT0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZyA9ICROYW9taV9jaGF0TG9nLnNsaWNlKC01KSZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjJzJmd0OyZndDsKJmx0OyZsdDtpZiAkbmFvbWlfb2ZmZXIgPT0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjJzJmd0OyZndDsKJmx0OyZsdDtpZiAkbmFvbWlfb2ZmZXIgPT0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMnMmZ3Q7Jmd0OwombHQ7Jmx0O2lmICRuYW9taV9vZmZlciA9PSB0cnVlJmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIZXkgaG9uZXksIGp1c3QgZ290IGhvbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4ycyZndDsmZ3Q7CiZsdDsmbHQ7aWYgJG5hb21pX29mZmVyID09IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkdHJhbnNpdGlvbiA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4ycyZndDsmZ3Q7CiZsdDsmbHQ7aWYgJG5hb21pX29mZmVyID09IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkdHJhbnNpdGlvblRleHQgPSAmcXVvdDtBIGZldyBob3VycyBsYXRlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMTAiIG5hbWU9IkFubmllQ2hhdEVwMl8yXzEiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMTM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtIZXkgaG9uZXksIGp1c3QgZ290IGhvbWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hleSBob25leSwganVzdCBnb3QgaG9tZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SGV5IGhvbmV5LCBqdXN0IGdvdCBob21lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SG934oCZcyBldmVyeXRoaW5nIGdvaW5nIG92ZXIgdGhlcmU/JnF1b3Q7ICZxdW90O2pvbGtrYW9sa2tKb2xra0FvbGtraW9sa2tGb2xra0tvbGtraW9sa2tUb2xra0lvbGtraG9sa2tib2xra3NvbGtrU29sa2twb2xra0gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SG934oCZcyBldmVyeXRoaW5nIGdvaW5nIG92ZXIgdGhlcmU/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIb3figJlzIGV2ZXJ5dGhpbmcgZ29pbmcgb3ZlciB0aGVyZT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtSb2xra0dvbGtrWG9sa2tCb2xra1dvbGtrSG9sa2tZb2xra2YmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuN3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1JvbGtrR29sa2tYb2xra0JvbGtrV29sa2tIb2xra1lvbGtrZiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1N0aWxsIHN0cmVzc2VkLCB3b3JraW5nIG9uIHRoaXMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtTdGlsbCBzdHJlc3NlZCwgd29ya2luZyBvbiB0aGlzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjExMSIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfMiIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDE0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8yXzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7U3RpbGwgc3RyZXNzZWQsIHdvcmtpbmcgb24gdGhpcyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1N0aWxsIHN0cmVzc2VkLCB3b3JraW5nIG9uIHRoaXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1N0aWxsIHN0cmVzc2VkLCB3b3JraW5nIG9uIHRoaXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7bG9sa2tEb2xra1hvbGtrRm9sa2tSb2xra2JvbGtrWG9sa2twJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNsb2xra0RvbGtrWG9sa2tGb2xra1JvbGtrYm9sa2tYb2xra3AmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtCdXQgdGFsa2luZyB0byB5b3UgaGVscHMgbWUgcmVsYXgmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtCdXQgdGFsa2luZyB0byB5b3UgaGVscHMgbWUgcmVsYXgmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8zJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjExMiIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfMyIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDE0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8yXzMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7QnV0IHRhbGtpbmcgdG8geW91IGhlbHBzIG1lIHJlbGF4JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IHRhbGtpbmcgdG8geW91IGhlbHBzIG1lIHJlbGF4JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCdXQgdGFsa2luZyB0byB5b3UgaGVscHMgbWUgcmVsYXgmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7dW9sa2tGb2xra2FvbGtrU29sa2tqb2xra0NvbGtrSW9sa2trJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN1b2xra0ZvbGtrYW9sa2tTb2xra2pvbGtrQ29sa2tJb2xra2smcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtTbywgaG93IGFyZSB5b3U/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl80JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7U28sIGhvdyBhcmUgeW91PyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTEzIiBuYW1lPSJBbm5pZUNoYXRFcDJfMl80IiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsMTQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfNCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtTbywgaG93IGFyZSB5b3U/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U28sIGhvdyBhcmUgeW91PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7U28sIGhvdyBhcmUgeW91PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtZb3Uga25vdywgSeKAmW0gZ29vZCZxdW90OyAmcXVvdDtBb2xra3lvbGtrcG9sa2tEb2xra1lvbGtrRW9sa2t3b2xra0NvbGtrZG9sa2tYb2xra1RvbGtrWm9sa2t3b2xra2hvbGtrY29sa2tYJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBrbm93LCBJ4oCZbSBnb29kJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtZb3Uga25vdywgSeKAmW0gZ29vZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QWx0aG91Z2ggdG9kYXnigJlzIGJlZW4uLi4gaW50ZXJlc3RpbmcgYmVjYXVzZSBvZiB3aGF0IHlvdSB0b2xkIG1lJnF1b3Q7ICZxdW90O0pvbGtrSW9sa2tJb2xra2xvbGtrc29sa2tKb2xra1VvbGtrTm9sa2tQb2xra29vbGtrSm9sa2t0b2xra0FvbGtrbW9sa2tUb2xra2QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QWx0aG91Z2ggdG9kYXnigJlzIGJlZW4uLi4gaW50ZXJlc3RpbmcgYmVjYXVzZSBvZiB3aGF0IHlvdSB0b2xkIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtBbHRob3VnaCB0b2RheeKAmXMgYmVlbi4uLiBpbnRlcmVzdGluZyBiZWNhdXNlIG9mIHdoYXQgeW91IHRvbGQgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0FjdHVhbGx5LCB0aGF04oCZcyB3aGF0IEkgd2FudGVkIHRvIHRhbGsgYWJvdXQmcXVvdDsgJnF1b3Q7S29sa2ttb2xra2xvbGtrV29sa2tNb2xra3BvbGtrcG9sa2tWb2xra1FvbGtrZ29sa2tDb2xra0xvbGtrY29sa2t6b2xra1pvbGtrSSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBY3R1YWxseSwgdGhhdOKAmXMgd2hhdCBJIHdhbnRlZCB0byB0YWxrIGFib3V0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtBY3R1YWxseSwgdGhhdOKAmXMgd2hhdCBJIHdhbnRlZCB0byB0YWxrIGFib3V0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtCdXQgSSB3YW50IHlvdSB0byBiZSBob25lc3Qgd2l0aCBtZSwgb2theT8mcXVvdDsgJnF1b3Q7RG9sa2tmb2xra3ZvbGtrdm9sa2tsb2xra0FvbGtreG9sa2tqb2xra21vbGtrcW9sa2tYb2xra0hvbGtrSG9sa2tKb2xra0FvbGtrZSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgSSB3YW50IHlvdSB0byBiZSBob25lc3Qgd2l0aCBtZSwgb2theT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0J1dCBJIHdhbnQgeW91IHRvIGJlIGhvbmVzdCB3aXRoIG1lLCBva2F5PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O2lvbGtrTG9sa2tSb2xra3JvbGtrcm9sa2tZb2xra3hvbGtrYSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNS45cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjaW9sa2tMb2xra1JvbGtrcm9sa2tyb2xra1lvbGtreG9sa2thJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7T2YgY291cnNlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl81YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O09mIGNvdXJzZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzVhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2lvbGtrTG9sa2tSb2xra3JvbGtrcm9sa2tZb2xra3hvbGtrYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgaGF2ZSBhbHdheXMgYmVlbiZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfNWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGhhdmUgYWx3YXlzIGJlZW4mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl81YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMTQiIG5hbWU9IkFubmllQ2hhdEVwMl8yXzVhIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMTQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfNWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7T2YgY291cnNlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2YgY291cnNlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtPZiBjb3Vyc2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SG93IGxvbmcgaGF2ZSB5b3UgYmVlbiB3YW50aW5nIHRvIHRyeSDigJx0aGlz4oCdPyZxdW90OyAmcXVvdDt3b2xra1VvbGtrWm9sa2tvb2xra2ZvbGtrdW9sa2tKb2xra2lvbGtrWm9sa2tqb2xra2ZvbGtrbW9sa2tub2xra1BvbGtrYW9sa2tCJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvdyBsb25nIGhhdmUgeW91IGJlZW4gd2FudGluZyB0byB0cnkg4oCcdGhpc+KAnT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hvdyBsb25nIGhhdmUgeW91IGJlZW4gd2FudGluZyB0byB0cnkg4oCcdGhpc+KAnT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtBb2xra0VvbGtrSG9sa2tLb2xra3lvbGtrR29sa2tQb2xra3omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuOHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0FvbGtrRW9sa2tIb2xra0tvbGtreW9sa2tHb2xra1BvbGtreiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0ZvciBhIGxvbmcgdGltZSB0byBiZSBob25lc3QmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzZhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7Rm9yIGEgbG9uZyB0aW1lIHRvIGJlIGhvbmVzdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzZhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0FvbGtrRW9sa2tIb2xra0tvbGtreW9sa2tHb2xra1BvbGtreiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0p1c3QgcmVjZW50bHkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzZiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SnVzdCByZWNlbnRseSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzZiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjExNSIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfNWIiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCwxNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl81YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGhhdmUgYWx3YXlzIGJlZW4mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGhhdmUgYWx3YXlzIGJlZW4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgaGF2ZSBhbHdheXMgYmVlbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SG93IGxvbmcgaGF2ZSB5b3UgYmVlbiB3YW50aW5nIHRvIHRyeSDigJx0aGlz4oCdPyZxdW90OyAmcXVvdDtQb2xra3VvbGtrSW9sa2tVb2xra0FvbGtrTG9sa2tUb2xra2hvbGtrR29sa2twb2xra3VvbGtrRW9sa2tZb2xra1BvbGtrT29sa2tiJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvdyBsb25nIGhhdmUgeW91IGJlZW4gd2FudGluZyB0byB0cnkg4oCcdGhpc+KAnT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hvdyBsb25nIGhhdmUgeW91IGJlZW4gd2FudGluZyB0byB0cnkg4oCcdGhpc+KAnT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtOb2xra1ZvbGtrWG9sa2tMb2xra2VvbGtrTG9sa2tob2xra3QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuMXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I05vbGtrVm9sa2tYb2xra0xvbGtrZW9sa2tMb2xra2hvbGtrdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0ZvciBhIGxvbmcgdGltZSB0byBiZSBob25lc3QmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzZhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7Rm9yIGEgbG9uZyB0aW1lIHRvIGJlIGhvbmVzdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzZhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I05vbGtrVm9sa2tYb2xra0xvbGtrZW9sa2tMb2xra2hvbGtrdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0p1c3QgcmVjZW50bHkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzZiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SnVzdCByZWNlbnRseSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzZiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjExNiIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfNmEiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwxNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl82YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtGb3IgYSBsb25nIHRpbWUgdG8gYmUgaG9uZXN0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Rm9yIGEgbG9uZyB0aW1lIHRvIGJlIGhvbmVzdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7Rm9yIGEgbG9uZyB0aW1lIHRvIGJlIGhvbmVzdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4ycyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIHNlZSZxdW90OyAmcXVvdDt0b2xra2JvbGtrVG9sa2trb2xra0tvbGtrZm9sa2tQb2xra2JvbGtrYm9sa2tUb2xra01vbGtrcm9sa2tHb2xra2pvbGtrSm9sa2t0JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgc2VlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIHNlZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7V2hhdOKAmXMgdGhlIGxpbWl0PyZxdW90OyAmcXVvdDtDb2xra2pvbGtrcm9sa2t5b2xra2FvbGtrd29sa2t6b2xra0ZvbGtrWm9sa2tOb2xra0NvbGtrYW9sa2tyb2xra05vbGtrU29sa2tHJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1doYXTigJlzIHRoZSBsaW1pdD8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1doYXTigJlzIHRoZSBsaW1pdD8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0hvdyBmYXIgd291bGQgeW91IHdhbnQgbWUgdG8gZ28gd2l0aCBhbm90aGVyIGd1eT8mcXVvdDsgJnF1b3Q7UG9sa2tZb2xra2JvbGtrTm9sa2t4b2xra1dvbGtreW9sa2tzb2xra0pvbGtreG9sa2tXb2xra25vbGtrVm9sa2t3b2xra0JvbGtrbiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIb3cgZmFyIHdvdWxkIHlvdSB3YW50IG1lIHRvIGdvIHdpdGggYW5vdGhlciBndXk/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIb3cgZmFyIHdvdWxkIHlvdSB3YW50IG1lIHRvIGdvIHdpdGggYW5vdGhlciBndXk/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtEbyB5b3Ugd2FudCBtZSB0byBraXNzIG90aGVyIGd1eXM/JnF1b3Q7ICZxdW90O2RvbGtrUW9sa2tGb2xra1VvbGtrQ29sa2tIb2xra3JvbGtrV29sa2t3b2xra09vbGtrS29sa2twb2xra2dvbGtrd29sa2tZb2xra0QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RG8geW91IHdhbnQgbWUgdG8ga2lzcyBvdGhlciBndXlzPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7RG8geW91IHdhbnQgbWUgdG8ga2lzcyBvdGhlciBndXlzPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1RvbGtraG9sa2trb2xra3lvbGtrd29sa2tzb2xra09vbGtrdSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNS4xcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjVG9sa2tob2xra2tvbGtreW9sa2t3b2xra3NvbGtrT29sa2t1JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WWVzLCBhYnNvbHV0ZWx5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl83YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1llcywgYWJzb2x1dGVseSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzdhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1RvbGtraG9sa2trb2xra3lvbGtrd29sa2tzb2xra09vbGtrdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O05vLCBJIHdvdWxkbuKAmXQgd2FudCB0aGF0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl83YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O05vLCBJIHdvdWxkbuKAmXQgd2FudCB0aGF0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfN2ImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTE3IiBuYW1lPSJBbm5pZUNoYXRFcDJfMl82YiIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDE0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8yXzZiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0p1c3QgcmVjZW50bHkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtKdXN0IHJlY2VudGx5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtKdXN0IHJlY2VudGx5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgc2VlJnF1b3Q7ICZxdW90O3VvbGtrVm9sa2tkb2xra0dvbGtrcW9sa2tnb2xra21vbGtrS29sa2ttb2xra3pvbGtrSG9sa2tvb2xra3dvbGtrY29sa2tPb2xra2smcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBzZWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgc2VlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtXaGF04oCZcyB0aGUgbGltaXQ/JnF1b3Q7ICZxdW90O2NvbGtrY29sa2tUb2xra1BvbGtra29sa2tHb2xra3dvbGtrcm9sa2tWb2xra3dvbGtrZm9sa2tLb2xra3VvbGtrRW9sa2tnb2xra1AmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2hhdOKAmXMgdGhlIGxpbWl0PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7V2hhdOKAmXMgdGhlIGxpbWl0PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SG93IGZhciB3b3VsZCB5b3Ugd2FudCBtZSB0byBnbyB3aXRoIGFub3RoZXIgZ3V5PyZxdW90OyAmcXVvdDtUb2xra3dvbGtraG9sa2tpb2xra01vbGtrcW9sa2tGb2xra3BvbGtraW9sa2tMb2xra3JvbGtrT29sa2tyb2xra2tvbGtrdm9sa2tGJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvdyBmYXIgd291bGQgeW91IHdhbnQgbWUgdG8gZ28gd2l0aCBhbm90aGVyIGd1eT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hvdyBmYXIgd291bGQgeW91IHdhbnQgbWUgdG8gZ28gd2l0aCBhbm90aGVyIGd1eT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy43cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0RvIHlvdSB3YW50IG1lIHRvIGtpc3Mgb3RoZXIgZ3V5cz8mcXVvdDsgJnF1b3Q7dW9sa2tEb2xra01vbGtrcm9sa2tjb2xra0lvbGtrSW9sa2tkb2xra3BvbGtrQW9sa2twb2xra1lvbGtrZ29sa2tRb2xra1lvbGtrYyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEbyB5b3Ugd2FudCBtZSB0byBraXNzIG90aGVyIGd1eXM/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtEbyB5b3Ugd2FudCBtZSB0byBraXNzIG90aGVyIGd1eXM/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7Vm9sa2tkb2xra1pvbGtrbm9sa2t4b2xra0ZvbGtrV29sa2ttJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA1LjFzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNWb2xra2RvbGtrWm9sa2tub2xra3hvbGtrRm9sa2tXb2xra20mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZZXMsIGFic29sdXRlbHkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzdhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WWVzLCBhYnNvbHV0ZWx5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfN2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjVm9sa2tkb2xra1pvbGtrbm9sa2t4b2xra0ZvbGtrV29sa2ttJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7Tm8sIEkgd291bGRu4oCZdCB3YW50IHRoYXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzdiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7Tm8sIEkgd291bGRu4oCZdCB3YW50IHRoYXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl83YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMTgiIG5hbWU9IkFubmllQ2hhdEVwMl8yXzdhIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMTQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfN2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGtpc3NpbmcgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZZXMsIGFic29sdXRlbHkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZXMsIGFic29sdXRlbHkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1llcywgYWJzb2x1dGVseSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtzb2xra3hvbGtrVW9sa2tOb2xra1FvbGtrdW9sa2tib2xra3AmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3NvbGtreG9sa2tVb2xra05vbGtrUW9sa2t1b2xra2JvbGtrcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgd291bGRu4oCZdCBtaW5kJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl84YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgd291bGRu4oCZdCBtaW5kJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfOGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTE5IiBuYW1lPSJBbm5pZUNoYXRFcDJfMl83YiIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwxNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl83YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtObywgSSB3b3VsZG7igJl0IHdhbnQgdGhhdCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O05vLCBJIHdvdWxkbuKAmXQgd2FudCB0aGF0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtObywgSSB3b3VsZG7igJl0IHdhbnQgdGhhdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtqb2xra2JvbGtrem9sa2tEb2xra3hvbGtrS29sa2tlb2xra3kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2pvbGtrYm9sa2t6b2xra0RvbGtreG9sa2tLb2xra2VvbGtreSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgd291bGRu4oCZdCBsaWtlIHlvdSB0byBraXNzIG90aGVyIG1lbiByb21hbnRpY2FsbHkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzhiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSB3b3VsZG7igJl0IGxpa2UgeW91IHRvIGtpc3Mgb3RoZXIgbWVuIHJvbWFudGljYWxseSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzhiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEyMCIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfOGEiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMTQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfOGEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSB3b3VsZG7igJl0IG1pbmQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHdvdWxkbuKAmXQgbWluZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSB3b3VsZG7igJl0IG1pbmQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuMnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBzZWUmcXVvdDsgJnF1b3Q7VW9sa2thb2xra3hvbGtrVm9sa2tCb2xra25vbGtrdW9sa2tub2xra0JvbGtrd29sa2tCb2xra2dvbGtra29sa2tub2xra1JvbGtrbCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHNlZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBzZWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgZG9u4oCZdCBmdWxseSB1bmRlcnN0YW5kIHlvdXIgZmFudGFzeSZxdW90OyAmcXVvdDtKb2xra1ZvbGtrUm9sa2tTb2xra29vbGtrVG9sa2t0b2xra0ZvbGtrbm9sa2tWb2xra0dvbGtrUG9sa2tyb2xra3hvbGtrVm9sa2thJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZG9u4oCZdCBmdWxseSB1bmRlcnN0YW5kIHlvdXIgZmFudGFzeSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBkb27igJl0IGZ1bGx5IHVuZGVyc3RhbmQgeW91ciBmYW50YXN5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtXb3VsZCB5b3UgbGlrZSBtdWx0aXBsZSBtZW4gdG8gaGF2ZSBzZXggd2l0aCBtZT8mcXVvdDsgJnF1b3Q7Tm9sa2tmb2xra1NvbGtrT29sa2tqb2xra0dvbGtrZ29sa2tPb2xra0VvbGtrdW9sa2tob2xra2FvbGtrZW9sa2tEb2xra0JvbGtrVyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXb3VsZCB5b3UgbGlrZSBtdWx0aXBsZSBtZW4gdG8gaGF2ZSBzZXggd2l0aCBtZT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1dvdWxkIHlvdSBsaWtlIG11bHRpcGxlIG1lbiB0byBoYXZlIHNleCB3aXRoIG1lPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7T3IganVzdCBvbmUgcGVyc29uPyZxdW90OyAmcXVvdDtEb2xra05vbGtrRm9sa2tmb2xra3FvbGtram9sa2tRb2xra2FvbGtrWm9sa2tjb2xra1RvbGtrbm9sa2tjb2xra2RvbGtrZ29sa2tIJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09yIGp1c3Qgb25lIHBlcnNvbj8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O09yIGp1c3Qgb25lIHBlcnNvbj8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtmb2xra1RvbGtrbm9sa2tOb2xra3VvbGtrY29sa2tjb2xra3ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuOXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2ZvbGtrVG9sa2tub2xra05vbGtrdW9sa2tjb2xra2NvbGtrciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0JlaW5nIGhvbmVzdCwgSeKAmWQgbG92ZSBpdCBpZiBhIGdyb3VwIG9mIG1lbiBkaWQgd2hhdGV2ZXIgdGhleSB3YW50ZWQgd2l0aCB5b3UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzEwYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0JlaW5nIGhvbmVzdCwgSeKAmWQgbG92ZSBpdCBpZiBhIGdyb3VwIG9mIG1lbiBkaWQgd2hhdGV2ZXIgdGhleSB3YW50ZWQgd2l0aCB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xMGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjZm9sa2tUb2xra25vbGtrTm9sa2t1b2xra2NvbGtrY29sa2tyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SnVzdCBvbmUgZ3V5LCBtYXliZSBzb21lb25lIHdlIGJvdGggY2hvb3NlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xMGImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtKdXN0IG9uZSBndXksIG1heWJlIHNvbWVvbmUgd2UgYm90aCBjaG9vc2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xMGImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTIxIiBuYW1lPSJBbm5pZUNoYXRFcDJfMl84YiIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDE2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8yXzhiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgd291bGRu4oCZdCBsaWtlIHlvdSB0byBraXNzIG90aGVyIG1lbiByb21hbnRpY2FsbHkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHdvdWxkbuKAmXQgbGlrZSB5b3UgdG8ga2lzcyBvdGhlciBtZW4gcm9tYW50aWNhbGx5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIHdvdWxkbuKAmXQgbGlrZSB5b3UgdG8ga2lzcyBvdGhlciBtZW4gcm9tYW50aWNhbGx5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1FvbGtrZG9sa2tBb2xra0xvbGtrZG9sa2tBb2xra2JvbGtrYiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjUW9sa2tkb2xra0FvbGtrTG9sa2tkb2xra0FvbGtrYm9sa2tiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBqdXN0IHdhbnQgeW91IHRvIGhhdmUgc2V4IHdpdGggdGhlbSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfOWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGp1c3Qgd2FudCB5b3UgdG8gaGF2ZSBzZXggd2l0aCB0aGVtJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfOWImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTIyIiBuYW1lPSJBbm5pZUNoYXRFcDJfMl85YiIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDE2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8yXzliJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kganVzdCB3YW50IHlvdSB0byBoYXZlIHNleCB3aXRoIHRoZW0mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGp1c3Qgd2FudCB5b3UgdG8gaGF2ZSBzZXggd2l0aCB0aGVtJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGp1c3Qgd2FudCB5b3UgdG8gaGF2ZSBzZXggd2l0aCB0aGVtJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgc2VlJnF1b3Q7ICZxdW90O29vbGtrS29sa2trb2xra3dvbGtrT29sa2tXb2xra25vbGtram9sa2tlb2xra2ZvbGtreG9sa2twb2xra3hvbGtrem9sa2tUb2xra0smcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBzZWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgc2VlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGRvbuKAmXQgZnVsbHkgdW5kZXJzdGFuZCB5b3VyIGZhbnRhc3kmcXVvdDsgJnF1b3Q7ZW9sa2txb2xra0pvbGtrR29sa2t5b2xra3lvbGtrWW9sa2t5b2xra3pvbGtrTG9sa2tEb2xra2tvbGtrZG9sa2thb2xra3pvbGtrRiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGRvbuKAmXQgZnVsbHkgdW5kZXJzdGFuZCB5b3VyIGZhbnRhc3kmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgZG9u4oCZdCBmdWxseSB1bmRlcnN0YW5kIHlvdXIgZmFudGFzeSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7V291bGQgeW91IGxpa2UgbXVsdGlwbGUgbWVuIHRvIGhhdmUgc2V4IHdpdGggbWU/JnF1b3Q7ICZxdW90O2lvbGtrZW9sa2tUb2xra3hvbGtrT29sa2tsb2xra3FvbGtrcG9sa2tmb2xra2FvbGtrd29sa2tqb2xra0lvbGtrQm9sa2tDb2xra0ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V291bGQgeW91IGxpa2UgbXVsdGlwbGUgbWVuIHRvIGhhdmUgc2V4IHdpdGggbWU/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtXb3VsZCB5b3UgbGlrZSBtdWx0aXBsZSBtZW4gdG8gaGF2ZSBzZXggd2l0aCBtZT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O09yIGp1c3Qgb25lIHBlcnNvbj8mcXVvdDsgJnF1b3Q7aG9sa2tnb2xra1pvbGtrdm9sa2tFb2xra2FvbGtrVm9sa2tlb2xra3ZvbGtreG9sa2tsb2xra2FvbGtrZW9sa2tLb2xra01vbGtrUCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPciBqdXN0IG9uZSBwZXJzb24/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtPciBqdXN0IG9uZSBwZXJzb24/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7cW9sa2tWb2xra1pvbGtrdm9sa2tWb2xra2RvbGtrdW9sa2tJJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjlzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNxb2xra1ZvbGtrWm9sa2t2b2xra1ZvbGtrZG9sa2t1b2xra0kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtCZWluZyBob25lc3QsIEnigJlkIGxvdmUgaXQgaWYgYSBncm91cCBvZiBtZW4gZGlkIHdoYXRldmVyIHRoZXkgd2FudGVkIHdpdGggeW91JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xMGEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtCZWluZyBob25lc3QsIEnigJlkIGxvdmUgaXQgaWYgYSBncm91cCBvZiBtZW4gZGlkIHdoYXRldmVyIHRoZXkgd2FudGVkIHdpdGggeW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTBhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3FvbGtrVm9sa2tab2xra3ZvbGtrVm9sa2tkb2xra3VvbGtrSSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0p1c3Qgb25lIGd1eSwgbWF5YmUgc29tZW9uZSB3ZSBib3RoIGNob29zZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTBiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SnVzdCBvbmUgZ3V5LCBtYXliZSBzb21lb25lIHdlIGJvdGggY2hvb3NlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTBiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEyMyIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfMTBhIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsMTYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTBhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRnYW5nYmFuZyA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0JlaW5nIGhvbmVzdCwgSeKAmWQgbG92ZSBpdCBpZiBhIGdyb3VwIG9mIG1lbiBkaWQgd2hhdGV2ZXIgdGhleSB3YW50ZWQgd2l0aCB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCZWluZyBob25lc3QsIEnigJlkIGxvdmUgaXQgaWYgYSBncm91cCBvZiBtZW4gZGlkIHdoYXRldmVyIHRoZXkgd2FudGVkIHdpdGggeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCZWluZyBob25lc3QsIEnigJlkIGxvdmUgaXQgaWYgYSBncm91cCBvZiBtZW4gZGlkIHdoYXRldmVyIHRoZXkgd2FudGVkIHdpdGggeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9ub193b3Jkcy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbm9fd29yZHMud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1dvdywgdGhhdOKAmXMuLi4mcXVvdDsgJnF1b3Q7WW9sa2thb2xra1BvbGtrbG9sa2tXb2xra2ZvbGtrV29sa2tIb2xra2RvbGtrTW9sa2tab2xra3ZvbGtrUG9sa2tHb2xra1BvbGtrViZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXb3csIHRoYXTigJlzLi4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtXb3csIHRoYXTigJlzLi4uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtOb3Qgd2hhdCBJIGV4cGVjdGVkJnF1b3Q7ICZxdW90O2ZvbGtrUW9sa2tjb2xra0tvbGtrWm9sa2t0b2xra3pvbGtrU29sa2tib2xra0RvbGtra29sa2tzb2xra3lvbGtrUG9sa2tVb2xra3AmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm90IHdoYXQgSSBleHBlY3RlZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7Tm90IHdoYXQgSSBleHBlY3RlZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O3hvbGtrVm9sa2tCb2xra3dvbGtrTG9sa2tDb2xra0RvbGtrcCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy4xcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjeG9sa2tWb2xra0JvbGtrd29sa2tMb2xra0NvbGtrRG9sa2twJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SWYgeW91IHdhbnQsIHdlIGNhbiBzdG9wIGhlcmUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzExYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0lmIHlvdSB3YW50LCB3ZSBjYW4gc3RvcCBoZXJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTFhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3hvbGtrVm9sa2tCb2xra3dvbGtrTG9sa2tDb2xra0RvbGtrcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0luIGxpZmUsIHlvdSBoYXZlIHRvIGV4cGVyaW1lbnQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzExYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0luIGxpZmUsIHlvdSBoYXZlIHRvIGV4cGVyaW1lbnQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xMWImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTI0IiBuYW1lPSJBbm5pZUNoYXRFcDJfMl8xMGIiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwxNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xMGImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SnVzdCBvbmUgZ3V5LCBtYXliZSBzb21lb25lIHdlIGJvdGggY2hvb3NlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SnVzdCBvbmUgZ3V5LCBtYXliZSBzb21lb25lIHdlIGJvdGggY2hvb3NlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtKdXN0IG9uZSBndXksIG1heWJlIHNvbWVvbmUgd2UgYm90aCBjaG9vc2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuMnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBzZWUmcXVvdDsgJnF1b3Q7UW9sa2t3b2xra3JvbGtrZG9sa2tHb2xra3dvbGtrSG9sa2t3b2xra0JvbGtrRm9sa2tTb2xra3BvbGtrc29sa2tVb2xra09vbGtraCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHNlZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBzZWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0V2ZW4gc28sIGFsbCBvZiB0aGlzIHN0aWxsIHN1cnByaXNlcyBtZSZxdW90OyAmcXVvdDtNb2xra1dvbGtrbm9sa2t6b2xra1lvbGtrcW9sa2tSb2xra3JvbGtrYW9sa2tSb2xra0dvbGtrdG9sa2tzb2xra2ZvbGtrUG9sa2taJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0V2ZW4gc28sIGFsbCBvZiB0aGlzIHN0aWxsIHN1cnByaXNlcyBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7RXZlbiBzbywgYWxsIG9mIHRoaXMgc3RpbGwgc3VycHJpc2VzIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7UG9sa2tUb2xra05vbGtrdm9sa2tIb2xra05vbGtrRW9sa2tyJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjVzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNQb2xra1RvbGtrTm9sa2t2b2xra0hvbGtrTm9sa2tFb2xra3ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJZiB5b3Ugd2FudCwgd2UgY2FuIHN0b3AgaGVyZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTFhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SWYgeW91IHdhbnQsIHdlIGNhbiBzdG9wIGhlcmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xMWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjUG9sa2tUb2xra05vbGtrdm9sa2tIb2xra05vbGtrRW9sa2tyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SW4gbGlmZSwgeW91IGhhdmUgdG8gZXhwZXJpbWVudCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTFiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SW4gbGlmZSwgeW91IGhhdmUgdG8gZXhwZXJpbWVudCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzExYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMjUiIG5hbWU9IkFubmllQ2hhdEVwMl8yXzExYSIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDE2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8yXzExYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsmbHQ7Jmx0O3NldCAkZG9tc3ViID0gJGRvbXN1Yi0xJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJZiB5b3Ugd2FudCwgd2UgY2FuIHN0b3AgaGVyZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0lmIHlvdSB3YW50LCB3ZSBjYW4gc3RvcCBoZXJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJZiB5b3Ugd2FudCwgd2UgY2FuIHN0b3AgaGVyZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtkb2xra1JvbGtrRW9sa2twb2xra2JvbGtrdG9sa2t5b2xra0EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2RvbGtrUm9sa2tFb2xra3BvbGtrYm9sa2t0b2xra3lvbGtrQSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0xpa2UgSSBzYWlkIGVhcmxpZXIgdG9kYXksIGlmIHlvdSBmZWVsIHByZXNzdXJlZCwgd2UgY2FuIGZvcmdldCBhbGwgYWJvdXQgdGhpcyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTJhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7TGlrZSBJIHNhaWQgZWFybGllciB0b2RheSwgaWYgeW91IGZlZWwgcHJlc3N1cmVkLCB3ZSBjYW4gZm9yZ2V0IGFsbCBhYm91dCB0aGlzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTJhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEyNiIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfMTFiIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsMTYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTFiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRkb21zdWIgPSAkZG9tc3ViKzEmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0luIGxpZmUsIHlvdSBoYXZlIHRvIGV4cGVyaW1lbnQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJbiBsaWZlLCB5b3UgaGF2ZSB0byBleHBlcmltZW50JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJbiBsaWZlLCB5b3UgaGF2ZSB0byBleHBlcmltZW50JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O05vbGtrT29sa2tqb2xra1pvbGtreG9sa2ttb2xra09vbGtrQSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjTm9sa2tPb2xra2pvbGtrWm9sa2t4b2xra21vbGtrT29sa2tBJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhlIHdheSBJIHNlZSBpdCwgd2Ugd2VyZSBoZWFkaW5nIHRvd2FyZCBiZWluZyBhIGJvcmluZyBjb3VwbGUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzEyYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoZSB3YXkgSSBzZWUgaXQsIHdlIHdlcmUgaGVhZGluZyB0b3dhcmQgYmVpbmcgYSBib3JpbmcgY291cGxlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTJiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEyNyIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfMTJhIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMTYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTJhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0xpa2UgSSBzYWlkIGVhcmxpZXIgdG9kYXksIGlmIHlvdSBmZWVsIHByZXNzdXJlZCwgd2UgY2FuIGZvcmdldCBhbGwgYWJvdXQgdGhpcyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0xpa2UgSSBzYWlkIGVhcmxpZXIgdG9kYXksIGlmIHlvdSBmZWVsIHByZXNzdXJlZCwgd2UgY2FuIGZvcmdldCBhbGwgYWJvdXQgdGhpcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7TGlrZSBJIHNhaWQgZWFybGllciB0b2RheSwgaWYgeW91IGZlZWwgcHJlc3N1cmVkLCB3ZSBjYW4gZm9yZ2V0IGFsbCBhYm91dCB0aGlzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1lvdSBrbm93PyBJIGZlZWwgbGlrZSBpdOKAmXMgdG9vIGxhdGUgZm9yIHRoYXQmcXVvdDsgJnF1b3Q7am9sa2t4b2xra2tvbGtrcm9sa2tCb2xra1dvbGtrbW9sa2tZb2xra2pvbGtraW9sa2tJb2xra3FvbGtrcm9sa2t6b2xra1lvbGtrSSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3Uga25vdz8gSSBmZWVsIGxpa2UgaXTigJlzIHRvbyBsYXRlIGZvciB0aGF0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtZb3Uga25vdz8gSSBmZWVsIGxpa2UgaXTigJlzIHRvbyBsYXRlIGZvciB0aGF0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuOXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS44cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGRvbuKAmXQgdGhpbmsgSSBjYW4gZ28gYmFjayB0byB0aGUgb2xkIG1lIGtub3dpbmcgdGhpcyBpcyBzb21ldGhpbmcgaGlkZGVuIGluc2lkZSB5b3UmcXVvdDsgJnF1b3Q7S29sa2tQb2xra2NvbGtrdW9sa2tmb2xra1lvbGtraG9sa2tHb2xra05vbGtrQW9sa2tLb2xra1BvbGtrT29sa2tTb2xra1hvbGtrdiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGRvbuKAmXQgdGhpbmsgSSBjYW4gZ28gYmFjayB0byB0aGUgb2xkIG1lIGtub3dpbmcgdGhpcyBpcyBzb21ldGhpbmcgaGlkZGVuIGluc2lkZSB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgZG9u4oCZdCB0aGluayBJIGNhbiBnbyBiYWNrIHRvIHRoZSBvbGQgbWUga25vd2luZyB0aGlzIGlzIHNvbWV0aGluZyBoaWRkZW4gaW5zaWRlIHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSB0aGluayB0aGUgYmVzdCB0aGluZyBpcyB0byBleHBlcmltZW50LCBsaWtlIE5hb21pIHNhaWQmcXVvdDsgJnF1b3Q7dm9sa2tLb2xra1NvbGtrSW9sa2tPb2xra1VvbGtrbm9sa2t2b2xra1pvbGtrZG9sa2ttb2xra3lvbGtrRm9sa2tBb2xra1BvbGtrTiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHRoaW5rIHRoZSBiZXN0IHRoaW5nIGlzIHRvIGV4cGVyaW1lbnQsIGxpa2UgTmFvbWkgc2FpZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSB0aGluayB0aGUgYmVzdCB0aGluZyBpcyB0byBleHBlcmltZW50LCBsaWtlIE5hb21pIHNhaWQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNi4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0FuZCBzZWUgaG93IGl0IHR1cm5zIG91dCZxdW90OyAmcXVvdDtZb2xra0pvbGtrSm9sa2tGb2xra3FvbGtraW9sa2tDb2xra2FvbGtrY29sa2tyb2xra0VvbGtrQW9sa2tYb2xra2tvbGtrZG9sa2tqJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FuZCBzZWUgaG93IGl0IHR1cm5zIG91dCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QW5kIHNlZSBob3cgaXQgdHVybnMgb3V0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7Q29sa2tEb2xra0lvbGtrVW9sa2t2b2xra2RvbGtrQW9sa2tPJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA3LjJzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNDb2xra0RvbGtrSW9sa2tVb2xra3ZvbGtrZG9sa2tBb2xra08mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtTb3VuZHMgZ29vZCB0byBtZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTNhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7U291bmRzIGdvb2QgdG8gbWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xM2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTI4IiBuYW1lPSJBbm5pZUNoYXRFcDJfMl8xM2EiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSwxNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xM2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7U291bmRzIGdvb2QgdG8gbWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTb3VuZHMgZ29vZCB0byBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7U291bmRzIGdvb2QgdG8gbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Y29sa2tTb2xra0FvbGtraW9sa2tjb2xra3NvbGtrWG9sa2taJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNjb2xra1NvbGtrQW9sa2tpb2xra2NvbGtrc29sa2tYb2xra1omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGxvdmUgeW91LCBiYWJlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xNGEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGxvdmUgeW91LCBiYWJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTRhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEyOSIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfMTRhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDE2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8yXzE0YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGxvdmUgeW91LCBiYWJlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBsb3ZlIHlvdSwgYmFiZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBsb3ZlIHlvdSwgYmFiZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGxvdmUgeW91IG1vcmUsIGhvbmV5JnF1b3Q7ICZxdW90O09vbGtrQm9sa2tqb2xra0VvbGtram9sa2tkb2xra25vbGtrTm9sa2tLb2xra3NvbGtrZW9sa2t5b2xra0xvbGtrTG9sa2t3b2xra1ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBsb3ZlIHlvdSBtb3JlLCBob25leSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBsb3ZlIHlvdSBtb3JlLCBob25leSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1hvbGtrS29sa2tzb2xra1VvbGtrUW9sa2tUb2xra1JvbGtrcSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjWG9sa2tLb2xra3NvbGtrVW9sa2tRb2xra1RvbGtrUm9sa2txJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7Tm93IEkgaGF2ZSB0byBnZXQgYmFjayB0byB0aGVzZSByZXBvcnRzJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xNWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtOb3cgSSBoYXZlIHRvIGdldCBiYWNrIHRvIHRoZXNlIHJlcG9ydHMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xNWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTMwIiBuYW1lPSJBbm5pZUNoYXRFcDJfMl8xMmIiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMTYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTJiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RoZSB3YXkgSSBzZWUgaXQsIHdlIHdlcmUgaGVhZGluZyB0b3dhcmQgYmVpbmcgYSBib3JpbmcgY291cGxlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhlIHdheSBJIHNlZSBpdCwgd2Ugd2VyZSBoZWFkaW5nIHRvd2FyZCBiZWluZyBhIGJvcmluZyBjb3VwbGUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1RoZSB3YXkgSSBzZWUgaXQsIHdlIHdlcmUgaGVhZGluZyB0b3dhcmQgYmVpbmcgYSBib3JpbmcgY291cGxlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2RvbGtrUm9sa2tkb2xra0NvbGtrbG9sa2tQb2xra1pvbGtrRSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjZG9sa2tSb2xra2RvbGtrQ29sa2tsb2xra1BvbGtrWm9sa2tFJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WW914oCZbGwgc2VlIGhvdyBleGNpdGluZyB0aGlzIHdpbGwgYmUgb25jZSB3ZSBzdGFydCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTNiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WW914oCZbGwgc2VlIGhvdyBleGNpdGluZyB0aGlzIHdpbGwgYmUgb25jZSB3ZSBzdGFydCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzEzYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMzEiIG5hbWU9IkFubmllQ2hhdEVwMl8yXzEzYiIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDE3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8yXzEzYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZb3XigJlsbCBzZWUgaG93IGV4Y2l0aW5nIHRoaXMgd2lsbCBiZSBvbmNlIHdlIHN0YXJ0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW914oCZbGwgc2VlIGhvdyBleGNpdGluZyB0aGlzIHdpbGwgYmUgb25jZSB3ZSBzdGFydCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW914oCZbGwgc2VlIGhvdyBleGNpdGluZyB0aGlzIHdpbGwgYmUgb25jZSB3ZSBzdGFydCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtZZWFoLCBJIGhhZCBteSBkb3VidHMsIGJ1dCBOYW9taSB0YWxrZWQgYSBsb3Qgd2l0aCBtZSZxdW90OyAmcXVvdDtYb2xra0xvbGtrVW9sa2tVb2xra21vbGtrQm9sa2tFb2xra1RvbGtrTW9sa2tsb2xra0lvbGtraG9sa2t5b2xra2pvbGtrWG9sa2tCJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1llYWgsIEkgaGFkIG15IGRvdWJ0cywgYnV0IE5hb21pIHRhbGtlZCBhIGxvdCB3aXRoIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtZZWFoLCBJIGhhZCBteSBkb3VidHMsIGJ1dCBOYW9taSB0YWxrZWQgYSBsb3Qgd2l0aCBtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBkb27igJl0IHRoaW5rIEkgZXZlciBzYXcgbXlzZWxmIGFzIHNvbWVvbmUgY2FwYWJsZSBvZiB0aGlzJnF1b3Q7ICZxdW90O3pvbGtrT29sa2tab2xra2ZvbGtrRm9sa2tPb2xra2JvbGtrQW9sa2tRb2xra3BvbGtram9sa2tnb2xra05vbGtrUm9sa2tPb2xra1QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBkb27igJl0IHRoaW5rIEkgZXZlciBzYXcgbXlzZWxmIGFzIHNvbWVvbmUgY2FwYWJsZSBvZiB0aGlzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGRvbuKAmXQgdGhpbmsgSSBldmVyIHNhdyBteXNlbGYgYXMgc29tZW9uZSBjYXBhYmxlIG9mIHRoaXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0J1dCBJIHNob3VsZCBzdGVwIG91dCBvZiBteSBjb21mb3J0IHpvbmUgYW5kIHNlZSBob3cgaXQgZ29lcyZxdW90OyAmcXVvdDtZb2xra2lvbGtrYm9sa2tob2xra1lvbGtrQW9sa2tsb2xra3NvbGtrRG9sa2tIb2xra0pvbGtra29sa2tWb2xra0pvbGtrQ29sa2tGJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCBJIHNob3VsZCBzdGVwIG91dCBvZiBteSBjb21mb3J0IHpvbmUgYW5kIHNlZSBob3cgaXQgZ29lcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QnV0IEkgc2hvdWxkIHN0ZXAgb3V0IG9mIG15IGNvbWZvcnQgem9uZSBhbmQgc2VlIGhvdyBpdCBnb2VzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7RG9sa2tBb2xra0xvbGtrR29sa2tyb2xra3BvbGtrb29sa2tDJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA1LjlzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNEb2xra0FvbGtrTG9sa2tHb2xra3JvbGtrcG9sa2tvb2xra0MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUb3RhbGx5LiBJ4oCZbSBzdXJlIHRoaXMgd2lsbCBzdHJlbmd0aGVuIHVzIGFzIGEgY291cGxlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xNGImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUb3RhbGx5LiBJ4oCZbSBzdXJlIHRoaXMgd2lsbCBzdHJlbmd0aGVuIHVzIGFzIGEgY291cGxlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTRiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEzMiIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfMTRiIiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsMTcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTRiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RvdGFsbHkuIEnigJltIHN1cmUgdGhpcyB3aWxsIHN0cmVuZ3RoZW4gdXMgYXMgYSBjb3VwbGUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUb3RhbGx5LiBJ4oCZbSBzdXJlIHRoaXMgd2lsbCBzdHJlbmd0aGVuIHVzIGFzIGEgY291cGxlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUb3RhbGx5LiBJ4oCZbSBzdXJlIHRoaXMgd2lsbCBzdHJlbmd0aGVuIHVzIGFzIGEgY291cGxlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgaG9wZSB5b3XigJlyZSByaWdodCZxdW90OyAmcXVvdDtIb2xra21vbGtrZm9sa2tnb2xra3dvbGtrRW9sa2tZb2xra29vbGtraG9sa2t5b2xra1ZvbGtram9sa2tJb2xra3BvbGtreW9sa2tpJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgaG9wZSB5b3XigJlyZSByaWdodCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBob3BlIHlvdeKAmXJlIHJpZ2h0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGxvdmUgeW91LCAkbmFtZSZxdW90OyAmcXVvdDtib2xra2xvbGtrRm9sa2tqb2xra29vbGtrd29sa2tGb2xra29vbGtrbW9sa2tSb2xra3ZvbGtrTW9sa2tnb2xra3BvbGtrc29sa2tPJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbG92ZSB5b3UsICRuYW1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGxvdmUgeW91LCAkbmFtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1dvbGtrY29sa2tWb2xra2tvbGtrd29sa2tIb2xra3dvbGtrYSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjV29sa2tjb2xra1ZvbGtra29sa2t3b2xra0hvbGtrd29sa2thJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBsb3ZlIHlvdSwgQW5uaWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzE1YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgbG92ZSB5b3UsIEFubmllJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTViJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEzMyIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfMTVhIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsMTcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTVhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O05vdyBJIGhhdmUgdG8gZ2V0IGJhY2sgdG8gdGhlc2UgcmVwb3J0cyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O05vdyBJIGhhdmUgdG8gZ2V0IGJhY2sgdG8gdGhlc2UgcmVwb3J0cyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7Tm93IEkgaGF2ZSB0byBnZXQgYmFjayB0byB0aGVzZSByZXBvcnRzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O29vbGtrdm9sa2tyb2xra3dvbGtrdW9sa2tob2xra09vbGtrcCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjb29sa2t2b2xra3JvbGtrd29sa2t1b2xra2hvbGtrT29sa2twJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7TGV04oCZcyB0YWxrIGFnYWluIGJlZm9yZSBnb2luZyB0byBzbGVlcCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTcmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtMZXTigJlzIHRhbGsgYWdhaW4gYmVmb3JlIGdvaW5nIHRvIHNsZWVwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTM0IiBuYW1lPSJBbm5pZUNoYXRFcDJfMl8xNWIiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwxNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xNWImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBsb3ZlIHlvdSwgQW5uaWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGxvdmUgeW91LCBBbm5pZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBsb3ZlIHlvdSwgQW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7c29sa2t6b2xra3BvbGtrc29sa2tEb2xra2FvbGtraW9sa2tZJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNzb2xra3pvbGtrcG9sa2tzb2xra0RvbGtrYW9sa2tpb2xra1kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtOb3cgSSBoYXZlIHRvIGdldCBiYWNrIHRvIHRoZXNlIHJlcG9ydHMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzE2YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O05vdyBJIGhhdmUgdG8gZ2V0IGJhY2sgdG8gdGhlc2UgcmVwb3J0cyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzE2YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxMzUiIG5hbWU9IkFubmllQ2hhdEVwMl8yXzE2YiIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDE3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8yXzE2YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtOb3cgSSBoYXZlIHRvIGdldCBiYWNrIHRvIHRoZXNlIHJlcG9ydHMmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtOb3cgSSBoYXZlIHRvIGdldCBiYWNrIHRvIHRoZXNlIHJlcG9ydHMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O05vdyBJIGhhdmUgdG8gZ2V0IGJhY2sgdG8gdGhlc2UgcmVwb3J0cyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtrb2xra0JvbGtrbW9sa2tJb2xra1dvbGtrZW9sa2trb2xra1QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2tvbGtrQm9sa2ttb2xra0lvbGtrV29sa2tlb2xra2tvbGtrVCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0xldOKAmXMgdGFsayBhZ2FpbiBiZWZvcmUgZ29pbmcgdG8gc2xlZXAmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8yXzE3JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7TGV04oCZcyB0YWxrIGFnYWluIGJlZm9yZSBnb2luZyB0byBzbGVlcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8yXzE3JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEzNiIgbmFtZT0iQW5uaWVDaGF0RXAyXzJfMTciIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwxNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xNyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtMZXTigJlzIHRhbGsgYWdhaW4gYmVmb3JlIGdvaW5nIHRvIHNsZWVwJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGV04oCZcyB0YWxrIGFnYWluIGJlZm9yZSBnb2luZyB0byBzbGVlcCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7TGV04oCZcyB0YWxrIGFnYWluIGJlZm9yZSBnb2luZyB0byBzbGVlcCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4xcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtQZXJmZWN0JnF1b3Q7ICZxdW90O1ZvbGtrZm9sa2tLb2xra1FvbGtrdm9sa2tkb2xra09vbGtrcm9sa2tTb2xra3pvbGtrUW9sa2tXb2xra1hvbGtrVG9sa2tob2xra2EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7UGVyZmVjdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7UGVyZmVjdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O/CfpbAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzJfMTcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfbGFzdF9ob3VyID0gJnF1b3Q7MjE6MzQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdCA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDsyMTozNCZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7b2ZmbGluZS10ZXh0JnF1b3Q7Jmd0O0FubmllIGlzIG9mZmxpbmUmbHQ7L2RpdiZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4wcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJHRyYW5zaXRpb24gPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICR0cmFuc2l0aW9uVGV4dCA9ICZxdW90O2F0IG5pZ2h0JnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRUb2FzdEFubmllMiA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4wcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2NoYXQgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgPSAmcXVvdDtBbm5pZUNoYXRFcDJfM18xJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SGV5IGhvbmV5JnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjEzNyIgbmFtZT0iQW5uaWVDaGF0RXAyXzNfMSIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDE3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SGV5IGhvbmV5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZXkgaG9uZXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hleSBob25leSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0RpZCB5b3UgYWxyZWFkeSBnbyB0byBiZWQ/JnF1b3Q7ICZxdW90O3NvbGtrWG9sa2tib2xra21vbGtrTW9sa2tUb2xra2ZvbGtrQW9sa2tsb2xra2VvbGtraW9sa2t1b2xra3pvbGtrWW9sa2tWb2xra0cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RGlkIHlvdSBhbHJlYWR5IGdvIHRvIGJlZD8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0RpZCB5b3UgYWxyZWFkeSBnbyB0byBiZWQ/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7Z29sa2tUb2xra0JvbGtrQm9sa2tNb2xra2NvbGtrTm9sa2tBJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjhzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNnb2xra1RvbGtrQm9sa2tCb2xra01vbGtrY29sa2tOb2xra0EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUbyBiZSBob25lc3QsIEnigJltIHN0aWxsIGF0IHRoZSBvZmZpY2UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8zXzImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUbyBiZSBob25lc3QsIEnigJltIHN0aWxsIGF0IHRoZSBvZmZpY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfM18yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTM4IiBuYW1lPSJBbm5pZUNoYXRFcDJfM18yIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMTcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUbyBiZSBob25lc3QsIEnigJltIHN0aWxsIGF0IHRoZSBvZmZpY2UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUbyBiZSBob25lc3QsIEnigJltIHN0aWxsIGF0IHRoZSBvZmZpY2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1RvIGJlIGhvbmVzdCwgSeKAmW0gc3RpbGwgYXQgdGhlIG9mZmljZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtSb2xra0tvbGtrWW9sa2tnb2xra1hvbGtreW9sa2tkb2xra0MmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1JvbGtrS29sa2tZb2xra2dvbGtrWG9sa2t5b2xra2RvbGtrQyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0p1c3Qgd3JhcHBpbmcgdXAgYSBmZXcgdGhpbmdzLiBJ4oCZbGwgaGVhZCBiYWNrIHRvIHRoZSBob3RlbCBpbiBhIGJpdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0p1c3Qgd3JhcHBpbmcgdXAgYSBmZXcgdGhpbmdzLiBJ4oCZbGwgaGVhZCBiYWNrIHRvIHRoZSBob3RlbCBpbiBhIGJpdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8zXzMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTM5IiBuYW1lPSJBbm5pZUNoYXRFcDJfM18zIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDE3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8zXzMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SnVzdCB3cmFwcGluZyB1cCBhIGZldyB0aGluZ3MuIEnigJlsbCBoZWFkIGJhY2sgdG8gdGhlIGhvdGVsIGluIGEgYml0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SnVzdCB3cmFwcGluZyB1cCBhIGZldyB0aGluZ3MuIEnigJlsbCBoZWFkIGJhY2sgdG8gdGhlIGhvdGVsIGluIGEgYml0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtKdXN0IHdyYXBwaW5nIHVwIGEgZmV3IHRoaW5ncy4gSeKAmWxsIGhlYWQgYmFjayB0byB0aGUgaG90ZWwgaW4gYSBiaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgeW914oCZcmUgc3RpbGwgd29ya2luZyBhdCB0aGlzIGhvdXImcXVvdDsgJnF1b3Q7RG9sa2tGb2xra3VvbGtreG9sa2ttb2xra1RvbGtrSm9sa2tqb2xra0xvbGtreG9sa2tUb2xra3RvbGtrb29sa2tXb2xra1VvbGtrcyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGNhbuKAmXQgYmVsaWV2ZSB5b3XigJlyZSBzdGlsbCB3b3JraW5nIGF0IHRoaXMgaG91ciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgeW914oCZcmUgc3RpbGwgd29ya2luZyBhdCB0aGlzIGhvdXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS44cyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9jcnlpbmcud2VicCZxdW90OyB0cnVlICZxdW90O0FubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2NyeWluZy53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgCgombHQ7ZGl2IGlkPSZxdW90O2VvbGtrYm9sa2tGb2xra2JvbGtreW9sa2tTb2xra01vbGtrTyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi44cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjZW9sa2tib2xra0ZvbGtrYm9sa2t5b2xra1NvbGtrTW9sa2tPJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7RG9u4oCZdCB3b3JyeSwgaXTigJlzIGp1c3QgdGVtcG9yYXJ5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfM180JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7RG9u4oCZdCB3b3JyeSwgaXTigJlzIGp1c3QgdGVtcG9yYXJ5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzNfNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNDAiIG5hbWU9IkFubmllQ2hhdEVwMl8zXzQiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMTcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzNfNCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtEb27igJl0IHdvcnJ5LCBpdOKAmXMganVzdCB0ZW1wb3JhcnkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEb27igJl0IHdvcnJ5LCBpdOKAmXMganVzdCB0ZW1wb3JhcnkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0RvbuKAmXQgd29ycnksIGl04oCZcyBqdXN0IHRlbXBvcmFyeSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt3b2xra1lvbGtrem9sa2tjb2xra2hvbGtrRG9sa2tRb2xra2kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3dvbGtrWW9sa2t6b2xra2NvbGtraG9sa2tEb2xra1FvbGtraSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0luIGEgZmV3IG1vbnRocywgSeKAmWxsIGxvb2sgYmFjayBhbmQgc2VlIHRoaXMgYXMgcGFydCBvZiB0aGUgcGFzdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzNfNSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0luIGEgZmV3IG1vbnRocywgSeKAmWxsIGxvb2sgYmFjayBhbmQgc2VlIHRoaXMgYXMgcGFydCBvZiB0aGUgcGFzdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8zXzUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTQxIiBuYW1lPSJBbm5pZUNoYXRFcDJfM181IiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMTg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzNfNSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJbiBhIGZldyBtb250aHMsIEnigJlsbCBsb29rIGJhY2sgYW5kIHNlZSB0aGlzIGFzIHBhcnQgb2YgdGhlIHBhc3QmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJbiBhIGZldyBtb250aHMsIEnigJlsbCBsb29rIGJhY2sgYW5kIHNlZSB0aGlzIGFzIHBhcnQgb2YgdGhlIHBhc3QmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0luIGEgZmV3IG1vbnRocywgSeKAmWxsIGxvb2sgYmFjayBhbmQgc2VlIHRoaXMgYXMgcGFydCBvZiB0aGUgcGFzdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4xcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDsuLi4mcXVvdDsgJnF1b3Q7aW9sa2tyb2xra3FvbGtrdm9sa2tzb2xra0NvbGtraW9sa2tjb2xra1NvbGtrcW9sa2tOb2xra0lvbGtrem9sa2tXb2xra3NvbGtrZCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDsuLi4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90Oy4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7Q291bnQgb24gbWUmcXVvdDsgJnF1b3Q7TW9sa2tXb2xra3BvbGtrY29sa2tab2xra3JvbGtrV29sa2tGb2xra0VvbGtram9sa2tob2xra3FvbGtrRm9sa2tab2xra2hvbGtrVSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtDb3VudCBvbiBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7Q291bnQgb24gbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtzb2xra1RvbGtrYW9sa2tvb2xra2lvbGtraG9sa2tQb2xra1QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuOXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3NvbGtrVG9sa2thb2xra29vbGtraW9sa2tob2xra1BvbGtrVCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1doYXQgZG8geW91IG1lYW4/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfM182JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7V2hhdCBkbyB5b3UgbWVhbj8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfM182JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE0MiIgbmFtZT0iQW5uaWVDaGF0RXAyXzNfNiIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDE4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8zXzYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7V2hhdCBkbyB5b3UgbWVhbj8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXaGF0IGRvIHlvdSBtZWFuPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7V2hhdCBkbyB5b3UgbWVhbj8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7Q291bnQgb24gbWUsIEnigJltIGdvaW5nIHRvIGZ1bGZpbGwgdGhvc2UgZmFudGFzaWVzIG9mIHlvdXJzJnF1b3Q7ICZxdW90O0FvbGtraW9sa2tYb2xra2JvbGtrZG9sa2tBb2xra2RvbGtrYm9sa2twb2xra1ZvbGtrUW9sa2tYb2xra0tvbGtrTW9sa2t1b2xra2QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Q291bnQgb24gbWUsIEnigJltIGdvaW5nIHRvIGZ1bGZpbGwgdGhvc2UgZmFudGFzaWVzIG9mIHlvdXJzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtDb3VudCBvbiBtZSwgSeKAmW0gZ29pbmcgdG8gZnVsZmlsbCB0aG9zZSBmYW50YXNpZXMgb2YgeW91cnMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0xlYXZlIGl0IHRvIG1lJnF1b3Q7ICZxdW90O29vbGtrVm9sa2t6b2xra0hvbGtrbm9sa2tLb2xra0xvbGtrWW9sa2tub2xra1VvbGtrVW9sa2tJb2xra3FvbGtrYm9sa2twb2xra0YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGVhdmUgaXQgdG8gbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0xlYXZlIGl0IHRvIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJ4oCZbGwgZG8gbXkgYmVzdCB0byBtYWtlIHN1cmUgd2UgYm90aCBlbmpveSB0aGlzJnF1b3Q7ICZxdW90O2dvbGtrcG9sa2t3b2xra1BvbGtrWW9sa2tPb2xra0tvbGtrem9sa2tjb2xra3ZvbGtrV29sa2tWb2xra1lvbGtrdW9sa2tZb2xra0wmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmWxsIGRvIG15IGJlc3QgdG8gbWFrZSBzdXJlIHdlIGJvdGggZW5qb3kgdGhpcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmWxsIGRvIG15IGJlc3QgdG8gbWFrZSBzdXJlIHdlIGJvdGggZW5qb3kgdGhpcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O0pvbGtrem9sa2tob2xra0tvbGtrdm9sa2tHb2xra3lvbGtrdiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC43cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjSm9sa2t6b2xra2hvbGtrS29sa2t2b2xra0dvbGtreW9sa2t2JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QXJlIHlvdSBzZXJpb3VzPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzNfNyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0FyZSB5b3Ugc2VyaW91cz8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfM183JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE0MyIgbmFtZT0iQW5uaWVDaGF0RXAyXzNfNyIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDE4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8zXzcmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7QXJlIHlvdSBzZXJpb3VzPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FyZSB5b3Ugc2VyaW91cz8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0FyZSB5b3Ugc2VyaW91cz8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuMnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7T2YgY291cnNlJnF1b3Q7ICZxdW90O0NvbGtrR29sa2tnb2xra2lvbGtrTm9sa2tib2xra2dvbGtrQm9sa2tzb2xra1BvbGtrR29sa2t1b2xra25vbGtrem9sa2t1b2xra0YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2YgY291cnNlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtPZiBjb3Vyc2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0l04oCZcyB0aGUgbGVhc3QgSSBjYW4gZG8mcXVvdDsgJnF1b3Q7SW9sa2ttb2xra2xvbGtrUm9sa2t6b2xra1lvbGtrUm9sa2tDb2xra09vbGtrQm9sa2tXb2xra2FvbGtrdG9sa2tQb2xra0dvbGtrViZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdOKAmXMgdGhlIGxlYXN0IEkgY2FuIGRvJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJdOKAmXMgdGhlIGxlYXN0IEkgY2FuIGRvJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7V29sa2tVb2xra3FvbGtrZW9sa2t3b2xra09vbGtrbG9sa2trJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNXb2xra1VvbGtrcW9sa2tlb2xra3dvbGtrT29sa2tsb2xra2smcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGF0IG1ha2VzIG1lIHNvIGhhcHB5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfM184JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhhdCBtYWtlcyBtZSBzbyBoYXBweSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8zXzgmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTQ0IiBuYW1lPSJBbm5pZUNoYXRFcDJfM184IiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMTg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzNfOCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGF0IG1ha2VzIG1lIHNvIGhhcHB5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhdCBtYWtlcyBtZSBzbyBoYXBweSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhhdCBtYWtlcyBtZSBzbyBoYXBweSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJ4oCZbSBnbGFkIHRvIGhlYXIgdGhhdCZxdW90OyAmcXVvdDt1b2xra1VvbGtrVG9sa2tGb2xra0dvbGtrbW9sa2tYb2xra2dvbGtrem9sa2tCb2xra1VvbGtrVG9sa2tVb2xra3pvbGtrQW9sa2tFJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJltIGdsYWQgdG8gaGVhciB0aGF0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJ4oCZbSBnbGFkIHRvIGhlYXIgdGhhdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjRzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7R2V0IHJlYWR5ICRuYW1lLCBiZWNhdXNlIGEgbmV3IGNoYXB0ZXIgaW4gb3VyIGxpdmVzIGlzIGFib3V0IHRvIGJlZ2luJnF1b3Q7ICZxdW90O3VvbGtrdW9sa2tSb2xra2tvbGtrVG9sa2tFb2xra3FvbGtrR29sa2tDb2xra01vbGtrem9sa2tSb2xra0RvbGtrUm9sa2thb2xra1AmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7R2V0IHJlYWR5ICRuYW1lLCBiZWNhdXNlIGEgbmV3IGNoYXB0ZXIgaW4gb3VyIGxpdmVzIGlzIGFib3V0IHRvIGJlZ2luJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtHZXQgcmVhZHkgJG5hbWUsIGJlY2F1c2UgYSBuZXcgY2hhcHRlciBpbiBvdXIgbGl2ZXMgaXMgYWJvdXQgdG8gYmVnaW4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtDb2xra3pvbGtrV29sa2tYb2xra3lvbGtrSW9sa2t4b2xra2gmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuNHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0NvbGtrem9sa2tXb2xra1hvbGtreW9sa2tJb2xra3hvbGtraCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1lvdSBiZXQsIGJhYmUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8zXzkmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3UgYmV0LCBiYWJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzNfOSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNDUiIG5hbWU9IkFubmllQ2hhdEVwMl8zXzkiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCwxODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfM185JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdSBiZXQsIGJhYmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3UgYmV0LCBiYWJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtZb3UgYmV0LCBiYWJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC44cyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9pbWcgJnF1b3Q7YXNzZXRzL2ltZy9lcDIvYW5uaWVfcGhvdG9fNC53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7cW9sa2txb2xra3RvbGtrSW9sa2tmb2xra3VvbGtrcW9sa2tWb2xra0NvbGtrYm9sa2twb2xra05vbGtram9sa2t1b2xra25vbGtrdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAyLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2VwMi9hbm5pZV9waG90b180LndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRwaG90b3MucHVzaCgmcXVvdDthc3NldHMvaW1nL2VwMi9hbm5pZV9waG90b180LndlYnAmcXVvdDspJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuOHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtTbywgYXJlIHlvdSByZWFsbHkgZ29pbmcgdG8gbGV0IG90aGVyIG1lbiB0YWtlIHlvdXIgZ2lybD8mcXVvdDsgJnF1b3Q7aG9sa2tBb2xra0xvbGtrbm9sa2tBb2xra01vbGtrQm9sa2tFb2xra3NvbGtrcG9sa2tGb2xra1dvbGtrcm9sa2tkb2xra0dvbGtrUiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTbywgYXJlIHlvdSByZWFsbHkgZ29pbmcgdG8gbGV0IG90aGVyIG1lbiB0YWtlIHlvdXIgZ2lybD8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1NvLCBhcmUgeW91IHJlYWxseSBnb2luZyB0byBsZXQgb3RoZXIgbWVuIHRha2UgeW91ciBnaXJsPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7RG8geW91IHJlYWxseSB3YW50IGFub3RoZXIgbWFuIHRvIHRha2UgbWUgZm9yY2VmdWxseT8mcXVvdDsgJnF1b3Q7Z29sa2tlb2xra0pvbGtra29sa2t0b2xra2pvbGtrU29sa2tZb2xra3lvbGtreG9sa2tKb2xra0VvbGtrbG9sa2tlb2xra3ZvbGtrYyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEbyB5b3UgcmVhbGx5IHdhbnQgYW5vdGhlciBtYW4gdG8gdGFrZSBtZSBmb3JjZWZ1bGx5PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7RG8geW91IHJlYWxseSB3YW50IGFub3RoZXIgbWFuIHRvIHRha2UgbWUgZm9yY2VmdWxseT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtHb2xra2lvbGtrSG9sa2tjb2xra3VvbGtraG9sa2tEb2xra3omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDUuMnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0dvbGtraW9sa2tIb2xra2NvbGtrdW9sa2tob2xra0RvbGtreiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O05vdGhpbmcgd291bGQgbWFrZSBtZSBoYXBwaWVyJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfM18xMGEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtOb3RoaW5nIHdvdWxkIG1ha2UgbWUgaGFwcGllciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8zXzEwYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNHb2xra2lvbGtrSG9sa2tjb2xra3VvbGtraG9sa2tEb2xra3omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDvwn6W1JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfM18xMGImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDvwn6W1JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTBiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE0NiIgbmFtZT0iQW5uaWVDaGF0RXAyXzNfMTBhIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsMTg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTBhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O05vdGhpbmcgd291bGQgbWFrZSBtZSBoYXBwaWVyJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm90aGluZyB3b3VsZCBtYWtlIG1lIGhhcHBpZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O05vdGhpbmcgd291bGQgbWFrZSBtZSBoYXBwaWVyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3dvbGtrbm9sa2tMb2xra1hvbGtrUG9sa2tWb2xra1dvbGtrRyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjd29sa2tub2xra0xvbGtrWG9sa2tQb2xra1ZvbGtrV29sa2tHJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7U29vbiwgeW914oCZbGwgYmUgdXNlZCBieSBvdGhlciBtZW4gdG8gc2F0aXNmeSB0aGVpciBkZXNpcmVzJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfM18xMWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtTb29uLCB5b3XigJlsbCBiZSB1c2VkIGJ5IG90aGVyIG1lbiB0byBzYXRpc2Z5IHRoZWlyIGRlc2lyZXMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfM18xMWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTQ3IiBuYW1lPSJBbm5pZUNoYXRFcDJfM18xMGIiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCwxODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfM18xMGImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9sZXdkX2ZhY2Uud2VicCZxdW90OyB0cnVlICZxdW90O1lvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbGV3ZF9mYWNlLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgY2Fu4oCZdCB3YWl0IGZvciBteSBib2R5IHRvIGJlIHVzZWQgYnkgc29tZW9uZSB3aG8gaXNu4oCZdCB5b3UmcXVvdDsgJnF1b3Q7VW9sa2tBb2xra1FvbGtreW9sa2t0b2xra3hvbGtrT29sa2tYb2xra01vbGtrdG9sa2tzb2xra3NvbGtrUm9sa2tCb2xra3RvbGtrbSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGNhbuKAmXQgd2FpdCBmb3IgbXkgYm9keSB0byBiZSB1c2VkIGJ5IHNvbWVvbmUgd2hvIGlzbuKAmXQgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGNhbuKAmXQgd2FpdCBmb3IgbXkgYm9keSB0byBiZSB1c2VkIGJ5IHNvbWVvbmUgd2hvIGlzbuKAmXQgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7T29sa2tjb2xra2NvbGtrWW9sa2tBb2xra1FvbGtrYm9sa2t6JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjBzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNPb2xra2NvbGtrY29sa2tZb2xra0FvbGtrUW9sa2tib2xra3omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDvwn5i2JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfM18xMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O/CfmLYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfM18xMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNDgiIG5hbWU9IkFubmllQ2hhdEVwMl8zXzExYSIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDE4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8zXzExYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtTb29uLCB5b3XigJlsbCBiZSB1c2VkIGJ5IG90aGVyIG1lbiB0byBzYXRpc2Z5IHRoZWlyIGRlc2lyZXMmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTb29uLCB5b3XigJlsbCBiZSB1c2VkIGJ5IG90aGVyIG1lbiB0byBzYXRpc2Z5IHRoZWlyIGRlc2lyZXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1Nvb24sIHlvdeKAmWxsIGJlIHVzZWQgYnkgb3RoZXIgbWVuIHRvIHNhdGlzZnkgdGhlaXIgZGVzaXJlcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGNhbuKAmXQgd2FpdCBmb3IgbXkgYm9keSB0byBiZSB1c2VkIGJ5IHNvbWVvbmUgd2hvIGlzbuKAmXQgeW91JnF1b3Q7ICZxdW90O21vbGtrY29sa2tEb2xra29vbGtrVm9sa2txb2xra1JvbGtrZ29sa2t6b2xra01vbGtrbG9sa2tob2xra0VvbGtrbm9sa2tBb2xra28mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBjYW7igJl0IHdhaXQgZm9yIG15IGJvZHkgdG8gYmUgdXNlZCBieSBzb21lb25lIHdobyBpc27igJl0IHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBjYW7igJl0IHdhaXQgZm9yIG15IGJvZHkgdG8gYmUgdXNlZCBieSBzb21lb25lIHdobyBpc27igJl0IHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O21vbGtrSW9sa2tQb2xra21vbGtrcm9sa2tLb2xra1VvbGtrcSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjbW9sa2tJb2xra1BvbGtrbW9sa2tyb2xra0tvbGtrVW9sa2txJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q78J+YtiZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDvwn5i2JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTQ5IiBuYW1lPSJBbm5pZUNoYXRFcDJfM18xMiIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwxODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfM18xMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX25vX3dvcmRzLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX25vX3dvcmRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJltIHNvcnJ5JnF1b3Q7ICZxdW90O2FvbGtrTm9sa2tJb2xra3BvbGtrZG9sa2tjb2xra0pvbGtrYW9sa2tab2xra05vbGtrT29sa2tmb2xra21vbGtrRm9sa2tzb2xra2omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gc29ycnkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJltIHNvcnJ5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuOHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtXYXMgdGhhdCB0b28gbXVjaD8mcXVvdDsgJnF1b3Q7Sm9sa2tKb2xra3lvbGtraG9sa2tLb2xra1ZvbGtrWG9sa2tXb2xra0FvbGtrem9sa2t5b2xra05vbGtrUW9sa2tOb2xra1VvbGtrcyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXYXMgdGhhdCB0b28gbXVjaD8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1dhcyB0aGF0IHRvbyBtdWNoPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjhzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SeKAmW0ganVzdCB0cnlpbmcgdG8gZ2V0IHVzZWQgdG8gaXQmcXVvdDsgJnF1b3Q7ZW9sa2t5b2xra1dvbGtrcW9sa2tJb2xra3dvbGtrQW9sa2tPb2xra05vbGtrcm9sa2tZb2xra1RvbGtrTG9sa2tJb2xra1lvbGtrcCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBqdXN0IHRyeWluZyB0byBnZXQgdXNlZCB0byBpdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmW0ganVzdCB0cnlpbmcgdG8gZ2V0IHVzZWQgdG8gaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtEb2xra1VvbGtrVG9sa2ttb2xra3NvbGtrd29sa2tnb2xra3gmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuMnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0RvbGtrVW9sa2tUb2xra21vbGtrc29sa2t3b2xra2dvbGtreCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O05haCwgaXQgd2FzIHBlcmZlY3QmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8zXzEzJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7TmFoLCBpdCB3YXMgcGVyZmVjdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8zXzEzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE1MCIgbmFtZT0iQW5uaWVDaGF0RXAyXzNfMTMiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMTg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TmFoLCBpdCB3YXMgcGVyZmVjdCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O05haCwgaXQgd2FzIHBlcmZlY3QmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O05haCwgaXQgd2FzIHBlcmZlY3QmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7bm9sa2tUb2xra3ZvbGtrUm9sa2tYb2xra3VvbGtraW9sa2t4JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNub2xra1RvbGtrdm9sa2tSb2xra1hvbGtrdW9sa2tpb2xra3gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJdOKAmXMganVzdCB0aGF0IEnigJltIGdldHRpbmcgdXNlZCB0byBpdCB0b28mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8zXzE0JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SXTigJlzIGp1c3QgdGhhdCBJ4oCZbSBnZXR0aW5nIHVzZWQgdG8gaXQgdG9vJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTUxIiBuYW1lPSJBbm5pZUNoYXRFcDJfM18xNCIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDE5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8zXzE0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0l04oCZcyBqdXN0IHRoYXQgSeKAmW0gZ2V0dGluZyB1c2VkIHRvIGl0IHRvbyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0l04oCZcyBqdXN0IHRoYXQgSeKAmW0gZ2V0dGluZyB1c2VkIHRvIGl0IHRvbyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SXTigJlzIGp1c3QgdGhhdCBJ4oCZbSBnZXR0aW5nIHVzZWQgdG8gaXQgdG9vJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9sbWFvLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9sbWFvLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7dm9sa2tUb2xra3FvbGtrcm9sa2tGb2xra2JvbGtrQm9sa2tQJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN2b2xra1RvbGtrcW9sa2tyb2xra0ZvbGtrYm9sa2tCb2xra1AmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGxvdmUgeW91LCBBbm5pZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTUmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGxvdmUgeW91LCBBbm5pZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwMl8zXzE1JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE1MiIgbmFtZT0iQW5uaWVDaGF0RXAyXzNfMTUiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSwxOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDJfM18xNSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGxvdmUgeW91LCBBbm5pZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbG92ZSB5b3UsIEFubmllJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGxvdmUgeW91LCBBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGxvdmUgeW91LCAkbmFtZSZxdW90OyAmcXVvdDtlb2xra29vbGtrVm9sa2tBb2xra1JvbGtrSG9sa2t5b2xra3BvbGtrSm9sa2tlb2xra1lvbGtrQ29sa2tFb2xra1pvbGtrYW9sa2tDJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbG92ZSB5b3UsICRuYW1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGxvdmUgeW91LCAkbmFtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7RG9u4oCZdCBzdGF5IHVwIHRvbyBsYXRlJnF1b3Q7ICZxdW90O0dvbGtrR29sa2trb2xra1BvbGtrZ29sa2tCb2xra2NvbGtrV29sa2tYb2xra0xvbGtrTW9sa2tWb2xra2tvbGtrbG9sa2tvb2xra3kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RG9u4oCZdCBzdGF5IHVwIHRvbyBsYXRlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtEb27igJl0IHN0YXkgdXAgdG9vIGxhdGUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi40cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O01ha2Ugc3VyZSB0byBnZXQgZW5vdWdoIHNsZWVwJnF1b3Q7ICZxdW90O25vbGtrS29sa2tqb2xra3RvbGtrem9sa2tRb2xra0hvbGtrU29sa2tYb2xra0ZvbGtrV29sa2tEb2xra1hvbGtrQW9sa2tab2xra1gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TWFrZSBzdXJlIHRvIGdldCBlbm91Z2ggc2xlZXAmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O01ha2Ugc3VyZSB0byBnZXQgZW5vdWdoIHNsZWVwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7Qm9sa2tCb2xra05vbGtrR29sa2ttb2xra1BvbGtrbG9sa2tnJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjZzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNCb2xra0JvbGtrTm9sa2tHb2xra21vbGtrUG9sa2tsb2xra2cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIHdpbGwmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwMl8zXzE2JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSB3aWxsJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTUzIiBuYW1lPSJBbm5pZUNoYXRFcDJfM18xNiIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDE5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8zXzE2JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgd2lsbCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgd2lsbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSB3aWxsJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1FvbGtraW9sa2tWb2xra1dvbGtraW9sa2tLb2xra3VvbGtrUSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjUW9sa2tpb2xra1ZvbGtrV29sa2tpb2xra0tvbGtrdW9sa2tRJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7R29vZCBuaWdodCwgYmFiZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTcmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtHb29kIG5pZ2h0LCBiYWJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTU0IiBuYW1lPSJBbm5pZUNoYXRFcDJfM18xNyIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDE5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwMl8zXzE3JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0dvb2QgbmlnaHQsIGJhYmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtHb29kIG5pZ2h0LCBiYWJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtHb29kIG5pZ2h0LCBiYWJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0dvb2QgbmlnaHQsIGhvbmV5JnF1b3Q7ICZxdW90O3FvbGtrRG9sa2tHb2xra1VvbGtrTG9sa2tsb2xra3BvbGtrRm9sa2tEb2xra2FvbGtrSG9sa2tab2xra3dvbGtrWG9sa2tGb2xra3UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7R29vZCBuaWdodCwgaG9uZXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0dvb2QgbmlnaHQsIGhvbmV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7WW9sa2t6b2xra0FvbGtrT29sa2tCb2xra29vbGtrY29sa2tUJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjJzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNZb2xra3pvbGtrQW9sa2tPb2xra0JvbGtrb29sa2tjb2xra1QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDvwn6WwJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDJfM18xOCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O/CfpbAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDJfM18xOCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNTUiIG5hbWU9IkFubmllQ2hhdEVwMl8zXzE4IiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsMTk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTgmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90OyB0cnVlICZxdW90O1lvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuMHMmZ3Q7Jmd0OwombHQ7IS0tbm90ZXMgLS0mZ3Q7CiZsdDsmbHQ7aWYgJGtpc3NpbmcgPT0gdHJ1ZSBhbmQgJGdhbmdiYW5nID09IHRydWUmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9ub3Rlcy5wdXNoKCZxdW90O1dlIHRhbGtlZCBpbiBkZXB0aCBhYm91dCBteSBmYW50YXN5LiBJIHRvbGQgaGVyIEkgd291bGQgbGlrZSBoZXIgdG8ga2lzcyBvdGhlciBndXlzIGFuZCB0aGF0IEkgd291bGQgbG92ZSBmb3IgYSBncm91cCBvZiBtZW4gdG8gdXNlIGhlciBob3dldmVyIHRoZXkgd2FudC4mcXVvdDspJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O2lmICRraXNzaW5nID09IGZhbHNlIGFuZCAkZ2FuZ2JhbmcgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX25vdGVzLnB1c2goJnF1b3Q7V2UgdGFsa2VkIGluIGRlcHRoIGFib3V0IG15IGZhbnRhc3kuIEkgdG9sZCBoZXIgSSB3b3VsZCBmZWVsIHVuY29tZm9ydGFibGUgaWYgc2hlIGtpc3NlZCBvdGhlciBndXlzLCBidXQgSSB3b3VsZCBsb3ZlIGZvciBhIGdyb3VwIG9mIG1lbiB0byB1c2UgaGVyIGhvd2V2ZXIgdGhleSB3YW50LiZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7aWYgJGtpc3NpbmcgPT0gdHJ1ZSBhbmQgJGdhbmdiYW5nID09IGZhbHNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbm90ZXMucHVzaCgmcXVvdDtXZSB0YWxrZWQgaW4gZGVwdGggYWJvdXQgbXkgZmFudGFzeS4gSSB0b2xkIGhlciBJIHdvdWxkIGxpa2UgaGVyIHRvIGtpc3Mgb3RoZXIgZ3V5cywgYnV0IEkgd291bGQgZmVlbCBtb3JlIGNvbWZvcnRhYmxlIGlmIHNoZSBvbmx5IGNoZWF0ZWQgb24gbWUgd2l0aCBvbmUgZ3V5LiZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7aWYgJGtpc3NpbmcgPT0gZmFsc2UgYW5kICRnYW5nYmFuZyA9PSBmYWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX25vdGVzLnB1c2goJnF1b3Q7V2UgdGFsa2VkIGluIGRlcHRoIGFib3V0IG15IGZhbnRhc3kuIEkgdG9sZCBoZXIgSSB3b3VsZCBmZWVsIHVuY29tZm9ydGFibGUgaWYgc2hlIGtpc3NlZCBvdGhlciBndXlzLCBhbmQgSeKAmWQgZmVlbCBiZXR0ZXIgaWYgc2hlIG9ubHkgY2hlYXRlZCBvbiBtZSB3aXRoIG9uZSBndXkuJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyEtLW5vdGVzIC0tJmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O/CfpbAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTgmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfbGFzdF9ob3VyID0gJnF1b3Q7MjI6MzcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdCA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDsyMjozNyZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7b2ZmbGluZS10ZXh0JnF1b3Q7Jmd0O0FubmllIGlzIG9mZmxpbmUmbHQ7L2RpdiZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0ID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSA9ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90OyRuYW1lLCBhcmUgeW91IHN0aWxsIGF3YWtlPyZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNTYiIG5hbWU9IkFubmllQ2hhdEVwM18xIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsMTk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtHb29kIG1vcm5pbmcgaG9uZXkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0dvb2QgbW9ybmluZyBob25leSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7R29vZCBtb3JuaW5nIGhvbmV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SG93IGFyZSB5b3U/JnF1b3Q7ICZxdW90O1JvbGtrQW9sa2tmb2xra0JvbGtrT29sa2tKb2xra3ZvbGtrWG9sa2tib2xra1dvbGtrbW9sa2t6b2xra1dvbGtrSm9sa2tLb2xra2EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SG93IGFyZSB5b3U/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIb3cgYXJlIHlvdT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtJb2xra0VvbGtrTW9sa2tYb2xra1hvbGtrZG9sa2tub2xra2EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuNXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0lvbGtrRW9sa2tNb2xra1hvbGtrWG9sa2tkb2xra25vbGtrYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0hpIGJhYmUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwM18yJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SGkgYmFiZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwM18yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTU3IiBuYW1lPSJBbm5pZUNoYXRFcDNfMiIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDE5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwM18yJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0hpIGJhYmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIaSBiYWJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIaSBiYWJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0VvbGtrbm9sa2tFb2xra1FvbGtrZ29sa2thb2xra01vbGtraiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjRW9sa2tub2xra0VvbGtrUW9sa2tnb2xra2FvbGtrTW9sa2tqJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7U28gZ2xhZCB5b3UgdGV4dGVkLCBJIGZlbGwgYmFjayBhc2xlZXAmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwM18zJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7U28gZ2xhZCB5b3UgdGV4dGVkLCBJIGZlbGwgYmFjayBhc2xlZXAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDNfMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNTgiIG5hbWU9IkFubmllQ2hhdEVwM18zIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMTk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAzXzMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7U28gZ2xhZCB5b3UgdGV4dGVkLCBJIGZlbGwgYmFjayBhc2xlZXAmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTbyBnbGFkIHlvdSB0ZXh0ZWQsIEkgZmVsbCBiYWNrIGFzbGVlcCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7U28gZ2xhZCB5b3UgdGV4dGVkLCBJIGZlbGwgYmFjayBhc2xlZXAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7RGlkIHlvdSBmb3JnZXQgdG8gc2V0IHRoZSBhbGFybT8mcXVvdDsgJnF1b3Q7Wm9sa2tmb2xra2pvbGtrWm9sa2tab2xra3FvbGtrcm9sa2tib2xra01vbGtreG9sa2tDb2xra29vbGtrS29sa2tVb2xra0ZvbGtrbyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEaWQgeW91IGZvcmdldCB0byBzZXQgdGhlIGFsYXJtPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7RGlkIHlvdSBmb3JnZXQgdG8gc2V0IHRoZSBhbGFybT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtRb2xra1FvbGtrem9sa2tUb2xra2FvbGtrbm9sa2tLb2xra3EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuNnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1FvbGtrUW9sa2t6b2xra1RvbGtrYW9sa2tub2xra0tvbGtrcSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O05vLCBJIGdvdCBiYWNrIHRvIHRoZSBob3RlbCBhdCA1IEFNIGxhc3QgbmlnaHQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwM180JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7Tm8sIEkgZ290IGJhY2sgdG8gdGhlIGhvdGVsIGF0IDUgQU0gbGFzdCBuaWdodCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwM180JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE1OSIgbmFtZT0iQW5uaWVDaGF0RXAzXzQiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsMTk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAzXzQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7Tm8sIEkgZ290IGJhY2sgdG8gdGhlIGhvdGVsIGF0IDUgQU0gbGFzdCBuaWdodCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O05vLCBJIGdvdCBiYWNrIHRvIHRoZSBob3RlbCBhdCA1IEFNIGxhc3QgbmlnaHQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O05vLCBJIGdvdCBiYWNrIHRvIHRoZSBob3RlbCBhdCA1IEFNIGxhc3QgbmlnaHQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX3N0cmVzc2VkLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9zdHJlc3NlZC53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7U28geW91IG9ubHkgc2xlcHQgZm9yIHR3byBob3Vycz8mcXVvdDsgJnF1b3Q7aW9sa2tTb2xra3JvbGtrV29sa2t5b2xra05vbGtrZW9sa2tjb2xra3dvbGtrbm9sa2tSb2xra1JvbGtrR29sa2tkb2xra0xvbGtrQyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTbyB5b3Ugb25seSBzbGVwdCBmb3IgdHdvIGhvdXJzPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7U28geW91IG9ubHkgc2xlcHQgZm9yIHR3byBob3Vycz8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtvb2xra0tvbGtrWm9sa2tXb2xra2lvbGtreG9sa2tLb2xra3kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuNnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I29vbGtrS29sa2tab2xra1dvbGtraW9sa2t4b2xra0tvbGtreSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1llYWgsIEkgZ3Vlc3Mgc28mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwM181JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WWVhaCwgSSBndWVzcyBzbyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwM181JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE2MCIgbmFtZT0iQW5uaWVDaGF0RXAzXzUiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMTk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAzXzUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WWVhaCwgSSBndWVzcyBzbyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1llYWgsIEkgZ3Vlc3Mgc28mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1llYWgsIEkgZ3Vlc3Mgc28mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SG9uZXksIHlvdSBuZWVkIHRvIHRha2UgY2FyZSBvZiB5b3Vyc2VsZiZxdW90OyAmcXVvdDtTb2xra0JvbGtrVW9sa2trb2xra3BvbGtra29sa2tYb2xra3NvbGtrS29sa2tDb2xra2tvbGtrS29sa2twb2xra2NvbGtrbW9sa2t5JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvbmV5LCB5b3UgbmVlZCB0byB0YWtlIGNhcmUgb2YgeW91cnNlbGYmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hvbmV5LCB5b3UgbmVlZCB0byB0YWtlIGNhcmUgb2YgeW91cnNlbGYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS43cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1lvdSBjYW7igJl0IHN0YXkgdXAgYWxsIG5pZ2h0JnF1b3Q7ICZxdW90O0xvbGtrc29sa2tsb2xra1lvbGtrdG9sa2tyb2xra01vbGtrVW9sa2tsb2xra0FvbGtrRW9sa2tvb2xra0xvbGtrem9sa2tLb2xra1EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGNhbuKAmXQgc3RheSB1cCBhbGwgbmlnaHQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdSBjYW7igJl0IHN0YXkgdXAgYWxsIG5pZ2h0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7ZG9sa2tUb2xra2JvbGtrTm9sa2tpb2xra1NvbGtrSm9sa2tlJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjlzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNkb2xra1RvbGtrYm9sa2tOb2xra2lvbGtrU29sa2tKb2xra2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZZWFoLCBJIGtub3cmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwM182JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WWVhaCwgSSBrbm93JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAzXzYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTYxIiBuYW1lPSJBbm5pZUNoYXRFcDNfNiIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDIxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwM182JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1llYWgsIEkga25vdyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1llYWgsIEkga25vdyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WWVhaCwgSSBrbm93JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1ZvbGtrUG9sa2tkb2xra0hvbGtrQm9sa2ttb2xra0JvbGtrSiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjVm9sa2tQb2xra2RvbGtrSG9sa2tCb2xra21vbGtrQm9sa2tKJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7T25jZSBJIGZpbmlzaCB0aGlzIHJlcG9ydCwgdGhpbmdzIHdpbGwgZ28gYmFjayB0byBub3JtYWwmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwM183JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7T25jZSBJIGZpbmlzaCB0aGlzIHJlcG9ydCwgdGhpbmdzIHdpbGwgZ28gYmFjayB0byBub3JtYWwmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDNfNyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNjIiIG5hbWU9IkFubmllQ2hhdEVwM183IiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsMjEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAzXzcmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7T25jZSBJIGZpbmlzaCB0aGlzIHJlcG9ydCwgdGhpbmdzIHdpbGwgZ28gYmFjayB0byBub3JtYWwmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPbmNlIEkgZmluaXNoIHRoaXMgcmVwb3J0LCB0aGluZ3Mgd2lsbCBnbyBiYWNrIHRvIG5vcm1hbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7T25jZSBJIGZpbmlzaCB0aGlzIHJlcG9ydCwgdGhpbmdzIHdpbGwgZ28gYmFjayB0byBub3JtYWwmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7T2theSwgYnV0IGRvbuKAmXQgcHVzaCB5b3Vyc2VsZiB0b28gaGFyZCZxdW90OyAmcXVvdDtqb2xra01vbGtrQm9sa2tLb2xra09vbGtrTW9sa2tHb2xra2NvbGtreW9sa2tlb2xra0tvbGtrZ29sa2tIb2xra2lvbGtraG9sa2tFJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09rYXksIGJ1dCBkb27igJl0IHB1c2ggeW91cnNlbGYgdG9vIGhhcmQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O09rYXksIGJ1dCBkb27igJl0IHB1c2ggeW91cnNlbGYgdG9vIGhhcmQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS42cyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9zdHJlc3NlZC53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfc3RyZXNzZWQud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7dW9sa2txb2xra0VvbGtrS29sa2tOb2xra3pvbGtrVW9sa2tSJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjZzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN1b2xra3FvbGtrRW9sa2tLb2xra05vbGtrem9sa2tVb2xra1ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtEb27igJl0IHdvcnJ5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDNfOCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0RvbuKAmXQgd29ycnkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDNfOCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNjMiIG5hbWU9IkFubmllQ2hhdEVwM184IiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsMjEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAzXzgmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7RG9u4oCZdCB3b3JyeSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0RvbuKAmXQgd29ycnkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0RvbuKAmXQgd29ycnkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Z29sa2tQb2xra1JvbGtrTm9sa2tGb2xra3lvbGtrTW9sa2tDJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNnb2xra1BvbGtrUm9sa2tOb2xra0ZvbGtreW9sa2tNb2xra0MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtFdmVyeXRoaW5nIHdpbGwgYmUgZmluZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAzXzkmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtFdmVyeXRoaW5nIHdpbGwgYmUgZmluZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwM185JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE2NCIgbmFtZT0iQW5uaWVDaGF0RXAzXzkiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwyMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDNfOSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtFdmVyeXRoaW5nIHdpbGwgYmUgZmluZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0V2ZXJ5dGhpbmcgd2lsbCBiZSBmaW5lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtFdmVyeXRoaW5nIHdpbGwgYmUgZmluZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtKb2xra09vbGtrU29sa2tyb2xra2tvbGtreW9sa2tLb2xra0omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0pvbGtrT29sa2tTb2xra3JvbGtra29sa2t5b2xra0tvbGtrSiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0J1dCB0ZWxsIG1lLCBkaWQgeW91IHNsZWVwIHdlbGw/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDNfMTAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtCdXQgdGVsbCBtZSwgZGlkIHlvdSBzbGVlcCB3ZWxsPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwM18xMCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNjUiIG5hbWU9IkFubmllQ2hhdEVwM18xMCIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDIxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwM18xMCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtCdXQgdGVsbCBtZSwgZGlkIHlvdSBzbGVlcCB3ZWxsPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCB0ZWxsIG1lLCBkaWQgeW91IHNsZWVwIHdlbGw/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCdXQgdGVsbCBtZSwgZGlkIHlvdSBzbGVlcCB3ZWxsPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtZZWFoLCBhbGwgZ29vZCBvdmVyIGhlcmUmcXVvdDsgJnF1b3Q7aG9sa2tSb2xra0dvbGtrVm9sa2tUb2xra0hvbGtrQm9sa2tZb2xra1VvbGtrRW9sa2tXb2xra2lvbGtrUG9sa2trb2xra2FvbGtrVyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFoLCBhbGwgZ29vZCBvdmVyIGhlcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1llYWgsIGFsbCBnb29kIG92ZXIgaGVyZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjRzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SnVzdCB3b2tlIHVwJnF1b3Q7ICZxdW90O1pvbGtrdm9sa2tWb2xra1hvbGtrY29sa2tNb2xra3FvbGtrZ29sa2tXb2xra0lvbGtrZm9sa2tBb2xra2JvbGtrRW9sa2tmb2xra3AmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SnVzdCB3b2tlIHVwJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtKdXN0IHdva2UgdXAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDt6b2xra0dvbGtrWW9sa2tSb2xra0NvbGtrdG9sa2tIb2xra3gmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3pvbGtrR29sa2tZb2xra1JvbGtrQ29sa2t0b2xra0hvbGtreCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgbmVlZCB0byBnbyBtYWtlIG15c2VsZiBhIGN1cCBvZiBjb2ZmZWUgb3IgSSBmZWVsIGxpa2UgSeKAmWxsIHBhc3Mgb3V0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDNfMTEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIG5lZWQgdG8gZ28gbWFrZSBteXNlbGYgYSBjdXAgb2YgY29mZmVlIG9yIEkgZmVlbCBsaWtlIEnigJlsbCBwYXNzIG91dCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwM18xMSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNjYiIG5hbWU9IkFubmllQ2hhdEVwM18xMSIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDIxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwM18xMSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIG5lZWQgdG8gZ28gbWFrZSBteXNlbGYgYSBjdXAgb2YgY29mZmVlIG9yIEkgZmVlbCBsaWtlIEnigJlsbCBwYXNzIG91dCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbmVlZCB0byBnbyBtYWtlIG15c2VsZiBhIGN1cCBvZiBjb2ZmZWUgb3IgSSBmZWVsIGxpa2UgSeKAmWxsIHBhc3Mgb3V0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIG5lZWQgdG8gZ28gbWFrZSBteXNlbGYgYSBjdXAgb2YgY29mZmVlIG9yIEkgZmVlbCBsaWtlIEnigJlsbCBwYXNzIG91dCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtTb2xra2dvbGtrZm9sa2tXb2xra1lvbGtrV29sa2tSb2xra1YmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1NvbGtrZ29sa2tmb2xra1dvbGtrWW9sa2tXb2xra1JvbGtrViZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0NhbiB3ZSB0YWxrIGxhdGVyPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAzXzEyJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7Q2FuIHdlIHRhbGsgbGF0ZXI/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAzXzEyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE2NyIgbmFtZT0iQW5uaWVDaGF0RXAzXzEyIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMjEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAzXzEyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0NhbiB3ZSB0YWxrIGxhdGVyPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0NhbiB3ZSB0YWxrIGxhdGVyPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7Q2FuIHdlIHRhbGsgbGF0ZXI/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O09mIGNvdXJzZSBob25leSZxdW90OyAmcXVvdDtTb2xra0VvbGtrUG9sa2tMb2xra3dvbGtrRW9sa2tib2xra1dvbGtrcG9sa2tob2xra1hvbGtrZW9sa2tUb2xra0RvbGtrb29sa2tlJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09mIGNvdXJzZSBob25leSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7T2YgY291cnNlIGhvbmV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4ycyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtUYWtlIGNhcmUmcXVvdDsgJnF1b3Q7am9sa2tjb2xra2NvbGtrRG9sa2tzb2xra01vbGtrT29sa2t6b2xra29vbGtreG9sa2thb2xra1ZvbGtrT29sa2tvb2xra21vbGtrQSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUYWtlIGNhcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1Rha2UgY2FyZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBsb3ZlIHlvdSZxdW90OyAmcXVvdDtEb2xra0RvbGtrWm9sa2tBb2xra1dvbGtrYm9sa2txb2xra3lvbGtrbm9sa2tzb2xra3ZvbGtrV29sa2t3b2xra3VvbGtrSW9sa2tEJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbG92ZSB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgbG92ZSB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtCb2xra3lvbGtrWW9sa2tNb2xra1dvbGtrYm9sa2tOb2xra0QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuOXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0JvbGtreW9sa2tZb2xra01vbGtrV29sa2tib2xra05vbGtrRCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0xvdmUgeW91IHRvbyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAzXzEzJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7TG92ZSB5b3UgdG9vJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAzXzEzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE2OCIgbmFtZT0iQW5uaWVDaGF0RXAzXzEzIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMjEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAzXzEzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0xvdmUgeW91IHRvbyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0xvdmUgeW91IHRvbyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7TG92ZSB5b3UgdG9vJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0xvdmUgeW91IHRvbyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgPSAmcXVvdDtBbm5pZUNoYXRFcDNfMTMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfbGFzdF9ob3VyID0gJnF1b3Q7MDk6MTAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdCA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDswOToxMCZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7b2ZmbGluZS10ZXh0JnF1b3Q7Jmd0O0FubmllIGlzIG9mZmxpbmUmbHQ7L2RpdiZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0ID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSA9ICZxdW90O0hhaWxleUNoYXRFcDNfM18xJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0hpICRuYW1lLCBob3cgYXJlIHlvdT8mcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTY5IiBuYW1lPSJBbm5pZUNoYXRFcDNfMl8xIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDIxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SG9uZXksIGhvd+KAmXMgZXZlcnl0aGluZyBnb2luZyBvdmVyIHRoZXJlPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SG9uZXksIGhvd+KAmXMgZXZlcnl0aGluZyBnb2luZyBvdmVyIHRoZXJlPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SG9uZXksIGhvd+KAmXMgZXZlcnl0aGluZyBnb2luZyBvdmVyIHRoZXJlPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtQb2xra2lvbGtrcm9sa2t4b2xra1FvbGtrZ29sa2tYb2xra1AmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuNnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1BvbGtraW9sa2tyb2xra3hvbGtrUW9sa2tnb2xra1hvbGtrUCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0hleSBiYWJlLCBJIHdhcyBqdXN0IGFib3V0IHRvIHRleHQgeW91JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDNfMl8yJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SGV5IGJhYmUsIEkgd2FzIGp1c3QgYWJvdXQgdG8gdGV4dCB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDNfMl8yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTcwIiBuYW1lPSJBbm5pZUNoYXRFcDNfMl8yIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDIxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwM18yXzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SGV5IGJhYmUsIEkgd2FzIGp1c3QgYWJvdXQgdG8gdGV4dCB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZXkgYmFiZSwgSSB3YXMganVzdCBhYm91dCB0byB0ZXh0IHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SGV5IGJhYmUsIEkgd2FzIGp1c3QgYWJvdXQgdG8gdGV4dCB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7dm9sa2tIb2xra2ZvbGtrSW9sa2tnb2xra1NvbGtrSW9sa2tFJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN2b2xra0hvbGtrZm9sa2tJb2xra2dvbGtrU29sa2tJb2xra0UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGhhdmUgYSBwcm9ibGVtJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDNfMl8zJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBoYXZlIGEgcHJvYmxlbSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwM18yXzMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTcxIiBuYW1lPSJBbm5pZUNoYXRFcDNfMl8zIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMjIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAzXzJfMyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGhhdmUgYSBwcm9ibGVtJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBoYXZlIGEgcHJvYmxlbSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBoYXZlIGEgcHJvYmxlbSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtqb2xra3VvbGtrTm9sa2tRb2xra3RvbGtrUm9sa2tvb2xra1omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2pvbGtrdW9sa2tOb2xra1FvbGtrdG9sa2tSb2xra29vbGtrWiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoZSBib3NzIGFza2VkIG1lIHRvIGJyaW5nIGJhY2sgc29tZSBmaWxlcyBJIHRvb2sgZnJvbSB0aGUgb2ZmaWNlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDNfMl80JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhlIGJvc3MgYXNrZWQgbWUgdG8gYnJpbmcgYmFjayBzb21lIGZpbGVzIEkgdG9vayBmcm9tIHRoZSBvZmZpY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDNfMl80JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE3MiIgbmFtZT0iQW5uaWVDaGF0RXAzXzJfNCIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDIyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwM18yXzQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhlIGJvc3MgYXNrZWQgbWUgdG8gYnJpbmcgYmFjayBzb21lIGZpbGVzIEkgdG9vayBmcm9tIHRoZSBvZmZpY2UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGUgYm9zcyBhc2tlZCBtZSB0byBicmluZyBiYWNrIHNvbWUgZmlsZXMgSSB0b29rIGZyb20gdGhlIG9mZmljZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhlIGJvc3MgYXNrZWQgbWUgdG8gYnJpbmcgYmFjayBzb21lIGZpbGVzIEkgdG9vayBmcm9tIHRoZSBvZmZpY2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7RW9sa2twb2xra2hvbGtrbG9sa2tpb2xra0VvbGtrYm9sa2tWJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNFb2xra3BvbGtraG9sa2tsb2xra2lvbGtrRW9sa2tib2xra1YmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGNhbGxlZCBIYWlsZXksIHNoZSBzYWlkIHNoZSBjb3VsZCBnbyBkdXJpbmcgaGVyIGJyZWFrJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDNfMl81JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBjYWxsZWQgSGFpbGV5LCBzaGUgc2FpZCBzaGUgY291bGQgZ28gZHVyaW5nIGhlciBicmVhayZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwM18yXzUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTczIiBuYW1lPSJBbm5pZUNoYXRFcDNfMl81IiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsMjIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAzXzJfNSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGNhbGxlZCBIYWlsZXksIHNoZSBzYWlkIHNoZSBjb3VsZCBnbyBkdXJpbmcgaGVyIGJyZWFrJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBjYWxsZWQgSGFpbGV5LCBzaGUgc2FpZCBzaGUgY291bGQgZ28gZHVyaW5nIGhlciBicmVhayZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBjYWxsZWQgSGFpbGV5LCBzaGUgc2FpZCBzaGUgY291bGQgZ28gZHVyaW5nIGhlciBicmVhayZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtpb2xra0NvbGtrdW9sa2tTb2xra2FvbGtrUG9sa2tCb2xra3kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2lvbGtrQ29sa2t1b2xra1NvbGtrYW9sa2tQb2xra0JvbGtreSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoZSBpc3N1ZSBpcyBzaGUgZG9lc27igJl0IGhhdmUgYSB3YXkgdG8gZ2V0IGludG8gdGhlIGhvdXNlIHdpdGhvdXQgYSBrZXkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwM18yXzYmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaGUgaXNzdWUgaXMgc2hlIGRvZXNu4oCZdCBoYXZlIGEgd2F5IHRvIGdldCBpbnRvIHRoZSBob3VzZSB3aXRob3V0IGEga2V5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAzXzJfNiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNzQiIG5hbWU9IkFubmllQ2hhdEVwM18yXzYiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwyMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDNfMl82JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RoZSBpc3N1ZSBpcyBzaGUgZG9lc27igJl0IGhhdmUgYSB3YXkgdG8gZ2V0IGludG8gdGhlIGhvdXNlIHdpdGhvdXQgYSBrZXkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGUgaXNzdWUgaXMgc2hlIGRvZXNu4oCZdCBoYXZlIGEgd2F5IHRvIGdldCBpbnRvIHRoZSBob3VzZSB3aXRob3V0IGEga2V5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUaGUgaXNzdWUgaXMgc2hlIGRvZXNu4oCZdCBoYXZlIGEgd2F5IHRvIGdldCBpbnRvIHRoZSBob3VzZSB3aXRob3V0IGEga2V5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O05vIHByb2JsZW0gSG9uZXkmcXVvdDsgJnF1b3Q7SG9sa2tkb2xra3BvbGtrTm9sa2tjb2xra29vbGtrRm9sa2t0b2xra2FvbGtrbG9sa2t1b2xra1hvbGtrT29sa2tHb2xra2lvbGtrcyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtObyBwcm9ibGVtIEhvbmV5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtObyBwcm9ibGVtIEhvbmV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtEbyB5b3Ugd2FudCBtZSB0byBqdXN0IHRha2UgdGhlbSB0byB5b3VyIG9mZmljZT8mcXVvdDsgJnF1b3Q7Ym9sa2tGb2xra1JvbGtrTW9sa2tDb2xra0VvbGtrWG9sa2tjb2xra3VvbGtram9sa2tWb2xra3dvbGtrTG9sa2txb2xra3FvbGtrViZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEbyB5b3Ugd2FudCBtZSB0byBqdXN0IHRha2UgdGhlbSB0byB5b3VyIG9mZmljZT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0RvIHlvdSB3YW50IG1lIHRvIGp1c3QgdGFrZSB0aGVtIHRvIHlvdXIgb2ZmaWNlPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O2dvbGtrZm9sa2twb2xra2hvbGtrR29sa2tVb2xra0tvbGtrVCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi45cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjZ29sa2tmb2xra3BvbGtraG9sa2tHb2xra1VvbGtrS29sa2tUJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QWN0dWFsbHksIHRoYXQgd291bGQgYmUgYW1hemluZyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAzXzJfNyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0FjdHVhbGx5LCB0aGF0IHdvdWxkIGJlIGFtYXppbmcmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDNfMl83JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE3NSIgbmFtZT0iQW5uaWVDaGF0RXAzXzJfNyIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDIyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwM18yXzcmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7QWN0dWFsbHksIHRoYXQgd291bGQgYmUgYW1hemluZyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FjdHVhbGx5LCB0aGF0IHdvdWxkIGJlIGFtYXppbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0FjdHVhbGx5LCB0aGF0IHdvdWxkIGJlIGFtYXppbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7em9sa2tZb2xra0lvbGtrYW9sa2t6b2xra0FvbGtrZG9sa2tqJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN6b2xra1lvbGtrSW9sa2thb2xra3pvbGtrQW9sa2tkb2xra2omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIHRoaW5rIEhhaWxleSB3b3VsZCBoYXZlIHRvIHNuZWFrIG91dCB0byBnbyBhbmQgY29tZSBiYWNrJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDNfMl84JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSB0aGluayBIYWlsZXkgd291bGQgaGF2ZSB0byBzbmVhayBvdXQgdG8gZ28gYW5kIGNvbWUgYmFjayZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwM18yXzgmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTc2IiBuYW1lPSJBbm5pZUNoYXRFcDNfMl84IiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsMjIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAzXzJfOCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIHRoaW5rIEhhaWxleSB3b3VsZCBoYXZlIHRvIHNuZWFrIG91dCB0byBnbyBhbmQgY29tZSBiYWNrJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB0aGluayBIYWlsZXkgd291bGQgaGF2ZSB0byBzbmVhayBvdXQgdG8gZ28gYW5kIGNvbWUgYmFjayZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSB0aGluayBIYWlsZXkgd291bGQgaGF2ZSB0byBzbmVhayBvdXQgdG8gZ28gYW5kIGNvbWUgYmFjayZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtObyB3b3JyaWVzLCB3ZeKAmXJlIGhhdmluZyBhIHF1aWV0IGRheSBoZXJlJnF1b3Q7ICZxdW90O3JvbGtrT29sa2tFb2xra2ZvbGtreW9sa2tRb2xra3hvbGtrRW9sa2tUb2xra0JvbGtrdW9sa2tWb2xra3hvbGtrbW9sa2tFb2xra0EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm8gd29ycmllcywgd2XigJlyZSBoYXZpbmcgYSBxdWlldCBkYXkgaGVyZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7Tm8gd29ycmllcywgd2XigJlyZSBoYXZpbmcgYSBxdWlldCBkYXkgaGVyZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QmVzaWRlcywgeW91IGtub3cgdGhleSBsZXQgdXMgbGVhdmUgdGhlIG9mZmljZSB3aGVuIHdlIG5lZWQgdG8gdmlzaXQgc3VwcGxpZXJzJnF1b3Q7ICZxdW90O01vbGtrbW9sa2t4b2xra0FvbGtrQ29sa2tjb2xra0dvbGtrZW9sa2tYb2xra3ZvbGtrTW9sa2tTb2xra0NvbGtrYW9sa2tFb2xra2cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QmVzaWRlcywgeW91IGtub3cgdGhleSBsZXQgdXMgbGVhdmUgdGhlIG9mZmljZSB3aGVuIHdlIG5lZWQgdG8gdmlzaXQgc3VwcGxpZXJzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtCZXNpZGVzLCB5b3Uga25vdyB0aGV5IGxldCB1cyBsZWF2ZSB0aGUgb2ZmaWNlIHdoZW4gd2UgbmVlZCB0byB2aXNpdCBzdXBwbGllcnMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJlsbCBqdXN0IHNjaGVkdWxlIGEgdmlzaXQsIGFuZCBJ4oCZbGwgaGF2ZSBwbGVudHkgb2YgdGltZSBmb3IgZXZlcnl0aGluZyZxdW90OyAmcXVvdDtFb2xra0lvbGtrYW9sa2t0b2xra21vbGtrUW9sa2tGb2xra1BvbGtrT29sa2t3b2xra0hvbGtram9sa2txb2xra3FvbGtrS29sa2toJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJlsbCBqdXN0IHNjaGVkdWxlIGEgdmlzaXQsIGFuZCBJ4oCZbGwgaGF2ZSBwbGVudHkgb2YgdGltZSBmb3IgZXZlcnl0aGluZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmWxsIGp1c3Qgc2NoZWR1bGUgYSB2aXNpdCwgYW5kIEnigJlsbCBoYXZlIHBsZW50eSBvZiB0aW1lIGZvciBldmVyeXRoaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7dm9sa2t3b2xra0NvbGtrc29sa2trb2xra01vbGtra29sa2tvJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA1LjdzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN2b2xra3dvbGtrQ29sa2tzb2xra2tvbGtrTW9sa2trb2xra28mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3XigJlyZSBteSBndWFyZGlhbiBhbmdlbCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAzXzJfOSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdeKAmXJlIG15IGd1YXJkaWFuIGFuZ2VsJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAzXzJfOSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxNzciIG5hbWU9IkFubmllQ2hhdEVwM18yXzkiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCwyMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDNfMl85JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdeKAmXJlIG15IGd1YXJkaWFuIGFuZ2VsJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW914oCZcmUgbXkgZ3VhcmRpYW4gYW5nZWwmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdeKAmXJlIG15IGd1YXJkaWFuIGFuZ2VsJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0p1c3QgdGVsbCBtZSwgd2hlcmUgYXJlIHRoZXNlIGZpbGVzIGV4YWN0bHk/JnF1b3Q7ICZxdW90O3BvbGtrY29sa2tMb2xra3RvbGtram9sa2trb2xra1pvbGtrbm9sa2tKb2xra2hvbGtrb29sa2twb2xra1FvbGtrd29sa2tkb2xra3gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SnVzdCB0ZWxsIG1lLCB3aGVyZSBhcmUgdGhlc2UgZmlsZXMgZXhhY3RseT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0p1c3QgdGVsbCBtZSwgd2hlcmUgYXJlIHRoZXNlIGZpbGVzIGV4YWN0bHk/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7Zm9sa2tQb2xra3pvbGtrdG9sa2tXb2xra2pvbGtrY29sa2tJJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjdzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNmb2xra1BvbGtrem9sa2t0b2xra1dvbGtram9sa2tjb2xra0kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJbiB0aGUgc2Vjb25kIGRyYXdlciBvZiBteSBkZXNrLCBpZiBJIHJlbWVtYmVyIGNvcnJlY3RseSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAzXzJfMTAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJbiB0aGUgc2Vjb25kIGRyYXdlciBvZiBteSBkZXNrLCBpZiBJIHJlbWVtYmVyIGNvcnJlY3RseSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwM18yXzEwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE3OCIgbmFtZT0iQW5uaWVDaGF0RXAzXzJfMTAiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSwyMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDNfMl8xMCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJbiB0aGUgc2Vjb25kIGRyYXdlciBvZiBteSBkZXNrLCBpZiBJIHJlbWVtYmVyIGNvcnJlY3RseSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0luIHRoZSBzZWNvbmQgZHJhd2VyIG9mIG15IGRlc2ssIGlmIEkgcmVtZW1iZXIgY29ycmVjdGx5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJbiB0aGUgc2Vjb25kIGRyYXdlciBvZiBteSBkZXNrLCBpZiBJIHJlbWVtYmVyIGNvcnJlY3RseSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtnb2xra0tvbGtrVW9sa2tDb2xra3RvbGtreG9sa2tPb2xra2gmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2dvbGtrS29sa2tVb2xra0NvbGtrdG9sa2t4b2xra09vbGtraCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0lmIG5vdCwgdGhlbiB0aGUgdGhpcmQgb25lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDNfMl8xMSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0lmIG5vdCwgdGhlbiB0aGUgdGhpcmQgb25lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXAzXzJfMTEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTc5IiBuYW1lPSJBbm5pZUNoYXRFcDNfMl8xMSIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwyMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDNfMl8xMSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJZiBub3QsIHRoZW4gdGhlIHRoaXJkIG9uZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0lmIG5vdCwgdGhlbiB0aGUgdGhpcmQgb25lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJZiBub3QsIHRoZW4gdGhlIHRoaXJkIG9uZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtMb2xra3RvbGtrU29sa2thb2xra3BvbGtrZm9sa2tWb2xra2ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0xvbGtrdG9sa2tTb2xra2FvbGtrcG9sa2tmb2xra1ZvbGtrYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoZXkmIzM5O3JlIGluc2lkZSBhIHllbGxvdyBmb2xkZXImcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwM18yXzEyJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhleSYjMzk7cmUgaW5zaWRlIGEgeWVsbG93IGZvbGRlciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwM18yXzEyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE4MCIgbmFtZT0iQW5uaWVDaGF0RXAzXzJfMTIiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMjIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAzXzJfMTImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhleeKAmXJlIGluc2lkZSBhIHllbGxvdyBmb2xkZXImcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGV54oCZcmUgaW5zaWRlIGEgeWVsbG93IGZvbGRlciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhleeKAmXJlIGluc2lkZSBhIHllbGxvdyBmb2xkZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7dW9sa2tWb2xra3FvbGtrZm9sa2tRb2xra0RvbGtrUm9sa2tCJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN1b2xra1ZvbGtrcW9sa2tmb2xra1FvbGtrRG9sa2tSb2xra0ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtKdXN0IHRha2UgdGhlIHdob2xlIGZvbGRlciZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXAzXzJfMTMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtKdXN0IHRha2UgdGhlIHdob2xlIGZvbGRlciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwM18yXzEzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE4MSIgbmFtZT0iQW5uaWVDaGF0RXAzXzJfMTMiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCwyMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDNfMl8xMyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtKdXN0IHRha2UgdGhlIHdob2xlIGZvbGRlciZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0p1c3QgdGFrZSB0aGUgd2hvbGUgZm9sZGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtKdXN0IHRha2UgdGhlIHdob2xlIGZvbGRlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtQZXJmZWN0LCBJ4oCZbGwgc3RvcCBieSBhcm91bmQgbm9vbiZxdW90OyAmcXVvdDtlb2xra0dvbGtrQW9sa2tSb2xra0hvbGtrWm9sa2tRb2xra3pvbGtram9sa2tYb2xra0VvbGtrcG9sa2tHb2xra3NvbGtrd29sa2tkJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1BlcmZlY3QsIEnigJlsbCBzdG9wIGJ5IGFyb3VuZCBub29uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtQZXJmZWN0LCBJ4oCZbGwgc3RvcCBieSBhcm91bmQgbm9vbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O25vbGtrU29sa2tCb2xra1ZvbGtrb29sa2tWb2xra0dvbGtrTiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS41cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjbm9sa2tTb2xra0JvbGtrVm9sa2tvb2xra1ZvbGtrR29sa2tOJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhhbmtzIGJhYmUsIEkgbG92ZSB5b3UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwM18yXzE0JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhhbmtzIGJhYmUsIEkgbG92ZSB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDNfMl8xNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxODIiIG5hbWU9IkFubmllQ2hhdEVwM18yXzE0IiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsMjM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXAzXzJfMTQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhhbmtzIGJhYmUsIEkgbG92ZSB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGFua3MgYmFiZSwgSSBsb3ZlIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhhbmtzIGJhYmUsIEkgbG92ZSB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBsb3ZlIHlvdSBtb3JlJnF1b3Q7ICZxdW90O3NvbGtrcm9sa2tsb2xra1RvbGtrZG9sa2tRb2xra21vbGtrZ29sa2tLb2xra1ZvbGtrc29sa2tob2xra0ZvbGtrV29sa2tSb2xra3MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBsb3ZlIHlvdSBtb3JlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGxvdmUgeW91IG1vcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS44cyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9pbWcgJnF1b3Q7YXNzZXRzL2ltZy9lcDMvYW5uaWVfcGhvdG9fNS53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7bG9sa2tib2xra29vbGtreG9sa2tUb2xra1lvbGtrUW9sa2tBb2xra3RvbGtram9sa2tFb2xra2VvbGtrdG9sa2tNb2xra2ZvbGtrcCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAyLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2VwMy9hbm5pZV9waG90b181LndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRwaG90b3MucHVzaCgmcXVvdDthc3NldHMvaW1nL2VwMy9hbm5pZV9waG90b181LndlYnAmcXVvdDspJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuOHMmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgbG92ZSB5b3UgbW9yZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgPSAmcXVvdDtBbm5pZUNoYXRFcDNfMl8xNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0X2hvdXIgPSAmcXVvdDswOTo1NSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkaG91ciA9ICZxdW90OzA5OjU1JnF1b3Q7Jmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtvZmZsaW5lLXRleHQmcXVvdDsmZ3Q7QW5uaWUgaXMgb2ZmbGluZSZsdDsvZGl2Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjhzJmd0OyZndDsKJmx0OyZsdDtzZXQgJFBoaWxsaXBzX25vdGVzLnB1c2goJnF1b3Q7SGUgdG9sZCBtZSBJIG5lZWQgdG8gYnJpbmcgdG8gdGhlIG9mZmljZSBzb21lIGZpbGVzIEkgYWNjaWRlbnRhbGx5IHRvb2sgaG9tZSBhbmQgZm9yZ290IHRvIHJldHVybi4gSSBoYXZlIHVudGlsIDYgb+KAmWNsb2NrLCBvciBteSBqb2IgY291bGQgYmUgYXQgcmlzay4gTHVja2lseSwgQW5uaWUgb2ZmZXJlZCB0byByZXR1cm4gdGhlbS4mcXVvdDspJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjhzJmd0OyZndDsmbHQ7Jmx0O3NldCAkZW5kT2ZDb250ZW50ID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjhzJmd0OyZndDsmbHQ7Jmx0O3NldCAkZXAzID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxODMiIG5hbWU9IkFubmllQ2hhdEVwNF8xXzEiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCwyMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0hleSBob25leSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGV5IGhvbmV5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIZXkgaG9uZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtKdXN0IHdhbnRlZCB0byBsZXQgeW91IGtub3cgSSBqdXN0IHRvb2sgYSB0YXhpIGFuZCBJ4oCZbSBvbiBteSB3YXkgaG9tZSZxdW90OyAmcXVvdDtMb2xra1RvbGtrRm9sa2tVb2xra1ZvbGtrd29sa2tLb2xra2lvbGtrZG9sa2tlb2xra3BvbGtrUG9sa2tkb2xra3ZvbGtrZG9sa2tGJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0p1c3Qgd2FudGVkIHRvIGxldCB5b3Uga25vdyBJIGp1c3QgdG9vayBhIHRheGkgYW5kIEnigJltIG9uIG15IHdheSBob21lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtKdXN0IHdhbnRlZCB0byBsZXQgeW91IGtub3cgSSBqdXN0IHRvb2sgYSB0YXhpIGFuZCBJ4oCZbSBvbiBteSB3YXkgaG9tZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSB3aWxsIGJlIGF0IHlvdXIgb2ZmaWNlIGluIGhhbGYgYW4gaG91ciwgdG9wcyZxdW90OyAmcXVvdDt5b2xra0xvbGtrcm9sa2tOb2xra25vbGtrQ29sa2tKb2xra3BvbGtrZG9sa2t4b2xra1ZvbGtrZG9sa2thb2xra3BvbGtrQ29sa2tCJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgd2lsbCBiZSBhdCB5b3VyIG9mZmljZSBpbiBoYWxmIGFuIGhvdXIsIHRvcHMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgd2lsbCBiZSBhdCB5b3VyIG9mZmljZSBpbiBoYWxmIGFuIGhvdXIsIHRvcHMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Rm9sa2tab2xra2FvbGtrb29sa2t2b2xra0RvbGtrSW9sa2t5JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjZzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNGb2xra1pvbGtrYW9sa2tvb2xra3ZvbGtrRG9sa2tJb2xra3kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtBbHJpZ2h0IGJhYmUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8xXzImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtBbHJpZ2h0IGJhYmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfMV8yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTg0IiBuYW1lPSJBbm5pZUNoYXRFcDRfMV8yIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMjM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzFfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtBbHJpZ2h0IGJhYmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbHJpZ2h0IGJhYmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0FscmlnaHQgYmFiZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtob2xra1BvbGtrTW9sa2tqb2xra0lvbGtrZm9sa2tjb2xra2omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2hvbGtrUG9sa2tNb2xra2pvbGtrSW9sa2tmb2xra2NvbGtraiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0hhaWxleSB0b2xkIG1lIHRvIGxldCBoZXIga25vdyB3aGVuIHlvdeKAmXJlIGF0IHRoZSBidWlsZGluZyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzFfMyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0hhaWxleSB0b2xkIG1lIHRvIGxldCBoZXIga25vdyB3aGVuIHlvdeKAmXJlIGF0IHRoZSBidWlsZGluZyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8xXzMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTg1IiBuYW1lPSJBbm5pZUNoYXRFcDRfMV8zIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsMjM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzFfMyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtIYWlsZXkgdG9sZCBtZSB0byBsZXQgaGVyIGtub3cgd2hlbiB5b3XigJlyZSBhdCB0aGUgYnVpbGRpbmcmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIYWlsZXkgdG9sZCBtZSB0byBsZXQgaGVyIGtub3cgd2hlbiB5b3XigJlyZSBhdCB0aGUgYnVpbGRpbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hhaWxleSB0b2xkIG1lIHRvIGxldCBoZXIga25vdyB3aGVuIHlvdeKAmXJlIGF0IHRoZSBidWlsZGluZyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtJb2xra1pvbGtrYW9sa2tSb2xra0pvbGtrc29sa2tTb2xra1AmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0lvbGtrWm9sa2thb2xra1JvbGtrSm9sa2tzb2xra1NvbGtrUCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1NoZeKAmWxsIGNvbWUgZG93biB0byB0aGUgbG9iYnkgdG8gcGljayB1cCB0aGUgZmlsZXMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8xXzQmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtTaGXigJlsbCBjb21lIGRvd24gdG8gdGhlIGxvYmJ5IHRvIHBpY2sgdXAgdGhlIGZpbGVzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzFfNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxODYiIG5hbWU9IkFubmllQ2hhdEVwNF8xXzQiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwyMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfMV80JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1NoZeKAmWxsIGNvbWUgZG93biB0byB0aGUgbG9iYnkgdG8gcGljayB1cCB0aGUgZmlsZXMmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTaGXigJlsbCBjb21lIGRvd24gdG8gdGhlIGxvYmJ5IHRvIHBpY2sgdXAgdGhlIGZpbGVzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtTaGXigJlsbCBjb21lIGRvd24gdG8gdGhlIGxvYmJ5IHRvIHBpY2sgdXAgdGhlIGZpbGVzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfdG9uZ3VlLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV90b25ndWUud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjFzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0F3ZXNvbWUmcXVvdDsgJnF1b3Q7Ym9sa2tpb2xra2tvbGtrYm9sa2tIb2xra1VvbGtrdm9sa2tmb2xra2tvbGtrcW9sa2tWb2xra2pvbGtrYm9sa2tyb2xra2VvbGtrRiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBd2Vzb21lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtBd2Vzb21lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJdOKAmXMgYmVlbiBhIHdoaWxlIHNpbmNlIEnigJl2ZSBzZWVuIEhhaWxleSB0b28sIG1heWJlIHdlIGNhbiBjYXRjaCB1cCZxdW90OyAmcXVvdDtGb2xra3hvbGtrY29sa2tSb2xra0hvbGtram9sa2tZb2xra2RvbGtrcG9sa2tMb2xra0ZvbGtrQm9sa2tXb2xra1JvbGtrVW9sa2tWJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0l04oCZcyBiZWVuIGEgd2hpbGUgc2luY2UgSeKAmXZlIHNlZW4gSGFpbGV5IHRvbywgbWF5YmUgd2UgY2FuIGNhdGNoIHVwJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJdOKAmXMgYmVlbiBhIHdoaWxlIHNpbmNlIEnigJl2ZSBzZWVuIEhhaWxleSB0b28sIG1heWJlIHdlIGNhbiBjYXRjaCB1cCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt0b2xra0FvbGtrZG9sa2t6b2xra3lvbGtrWW9sa2tsb2xra0UmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuMHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3RvbGtrQW9sa2tkb2xra3pvbGtreW9sa2tZb2xra2xvbGtrRSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1NoZeKAmXMgcHJvYmFibHkgcmVhbGx5IGJ1c3kgd2l0aCB3b3JrJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfMV81YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1NoZeKAmXMgcHJvYmFibHkgcmVhbGx5IGJ1c3kgd2l0aCB3b3JrJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzFfNWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjdG9sa2tBb2xra2RvbGtrem9sa2t5b2xra1lvbGtrbG9sa2tFJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WWVhaCwgbWF5YmUgeW91IHR3byBjb3VsZCBncmFiIGx1bmNoIHRvZ2V0aGVyJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfMV81YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1llYWgsIG1heWJlIHlvdSB0d28gY291bGQgZ3JhYiBsdW5jaCB0b2dldGhlciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8xXzViJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE4NyIgbmFtZT0iQW5uaWVDaGF0RXA0XzFfNWEiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCwyMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfMV81YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtTaGXigJlzIHByb2JhYmx5IHJlYWxseSBidXN5IHdpdGggd29yayZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1NoZeKAmXMgcHJvYmFibHkgcmVhbGx5IGJ1c3kgd2l0aCB3b3JrJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtTaGXigJlzIHByb2JhYmx5IHJlYWxseSBidXN5IHdpdGggd29yayZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtFb2xra2RvbGtraG9sa2tab2xra1pvbGtrTG9sa2tYb2xra0smcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0VvbGtrZG9sa2tob2xra1pvbGtrWm9sa2tMb2xra1hvbGtrSyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0l0IG1pZ2h0IGJlIGJldHRlciBub3QgdG8gcHV0IGhlciBvbiB0aGUgc3BvdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzFfNmEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJdCBtaWdodCBiZSBiZXR0ZXIgbm90IHRvIHB1dCBoZXIgb24gdGhlIHNwb3QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfMV82YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxODgiIG5hbWU9IkFubmllQ2hhdEVwNF8xXzViIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMjM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzFfNWImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WWVhaCwgbWF5YmUgeW91IHR3byBjb3VsZCBncmFiIGx1bmNoIHRvZ2V0aGVyJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WWVhaCwgbWF5YmUgeW91IHR3byBjb3VsZCBncmFiIGx1bmNoIHRvZ2V0aGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtZZWFoLCBtYXliZSB5b3UgdHdvIGNvdWxkIGdyYWIgbHVuY2ggdG9nZXRoZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Z29sa2twb2xra3hvbGtrVm9sa2tMb2xra0ZvbGtrUm9sa2tIJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNnb2xra3BvbGtreG9sa2tWb2xra0xvbGtrRm9sa2tSb2xra0gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtIYWlsZXkgdXN1YWxseSBnb2VzIG91dCB0byBlYXQgYXJvdW5kIHRoaXMgdGltZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzFfNmImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtIYWlsZXkgdXN1YWxseSBnb2VzIG91dCB0byBlYXQgYXJvdW5kIHRoaXMgdGltZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8xXzZiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE4OSIgbmFtZT0iQW5uaWVDaGF0RXA0XzFfNmEiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsMjM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzFfNmEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SXQgbWlnaHQgYmUgYmV0dGVyIG5vdCB0byBwdXQgaGVyIG9uIHRoZSBzcG90JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXQgbWlnaHQgYmUgYmV0dGVyIG5vdCB0byBwdXQgaGVyIG9uIHRoZSBzcG90JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJdCBtaWdodCBiZSBiZXR0ZXIgbm90IHRvIHB1dCBoZXIgb24gdGhlIHNwb3QmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O09oLCB5b3XigJlyZSByaWdodCZxdW90OyAmcXVvdDtKb2xra2tvbGtram9sa2tBb2xra2xvbGtrbG9sa2tYb2xra2pvbGtrQW9sa2tYb2xra3FvbGtrZ29sa2tRb2xra3ZvbGtrU29sa2tYJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09oLCB5b3XigJlyZSByaWdodCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7T2gsIHlvdeKAmXJlIHJpZ2h0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGZvcmdvdCB5b3VyIGJvc3MgaXMgYSBqZXJrJnF1b3Q7ICZxdW90O2lvbGtrZ29sa2t3b2xra1pvbGtrbG9sa2tSb2xra1ZvbGtrTm9sa2tPb2xra2tvbGtrSm9sa2tWb2xra1pvbGtrQW9sa2tUb2xra08mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBmb3Jnb3QgeW91ciBib3NzIGlzIGEgamVyayZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBmb3Jnb3QgeW91ciBib3NzIGlzIGEgamVyayZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjVzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2RvdWJ0LndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9kb3VidC53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAzLjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SGUgcHJvYmFibHkgZ290IGhlciBzdXBlciBzdHJlc3NlZCB3aXRoIGEgdG9uIG9mIHdvcmsmcXVvdDsgJnF1b3Q7Rm9sa2t1b2xra1pvbGtreG9sa2txb2xra0pvbGtraG9sa2txb2xra05vbGtrbG9sa2tNb2xra01vbGtrSm9sa2tMb2xra25vbGtrUSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZSBwcm9iYWJseSBnb3QgaGVyIHN1cGVyIHN0cmVzc2VkIHdpdGggYSB0b24gb2Ygd29yayZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SGUgcHJvYmFibHkgZ290IGhlciBzdXBlciBzdHJlc3NlZCB3aXRoIGEgdG9uIG9mIHdvcmsmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNS4ycyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJlsbCB0cnkgdG8ga2VlcCBpdCBicmllZiB0aGVuJnF1b3Q7ICZxdW90O2hvbGtrZG9sa2thb2xra2VvbGtrQ29sa2tJb2xra1hvbGtrbG9sa2twb2xra1dvbGtrbm9sa2tVb2xra3BvbGtrbG9sa2txb2xra1UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmWxsIHRyeSB0byBrZWVwIGl0IGJyaWVmIHRoZW4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJlsbCB0cnkgdG8ga2VlcCBpdCBicmllZiB0aGVuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3dvbGtrSW9sa2tFb2xra25vbGtrSG9sa2tBb2xra0pvbGtrVCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNi41cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjd29sa2tJb2xra0VvbGtrbm9sa2tIb2xra0FvbGtrSm9sa2tUJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WWVhaCwgSSB0aGluayB0aGF04oCZcyBmb3IgdGhlIGJlc3QmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8xXzdhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WWVhaCwgSSB0aGluayB0aGF04oCZcyBmb3IgdGhlIGJlc3QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfMV83YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxOTAiIG5hbWU9IkFubmllQ2hhdEVwNF8xXzZiIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDIzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8xXzZiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0hhaWxleSB1c3VhbGx5IGdvZXMgb3V0IHRvIGVhdCBhcm91bmQgdGhpcyB0aW1lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGFpbGV5IHVzdWFsbHkgZ29lcyBvdXQgdG8gZWF0IGFyb3VuZCB0aGlzIHRpbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hhaWxleSB1c3VhbGx5IGdvZXMgb3V0IHRvIGVhdCBhcm91bmQgdGhpcyB0aW1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtZb3Uga25vdywgdGhhdOKAmXMgbm90IGEgYmFkIGlkZWEmcXVvdDsgJnF1b3Q7V29sa2tUb2xra21vbGtraG9sa2ttb2xra1dvbGtra29sa2tjb2xra2NvbGtrUG9sa2tub2xra01vbGtrTG9sa2tZb2xra1lvbGtreCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3Uga25vdywgdGhhdOKAmXMgbm90IGEgYmFkIGlkZWEmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdSBrbm93LCB0aGF04oCZcyBub3QgYSBiYWQgaWRlYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SeKAmW0gZ2V0dGluZyBodW5ncnkgYW55d2F5JnF1b3Q7ICZxdW90O29vbGtrZW9sa2tqb2xra1ZvbGtra29sa2tvb2xra3hvbGtrem9sa2tHb2xra0FvbGtrSm9sa2tVb2xra0pvbGtrdm9sa2tFb2xra04mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gZ2V0dGluZyBodW5ncnkgYW55d2F5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJ4oCZbSBnZXR0aW5nIGh1bmdyeSBhbnl3YXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV90b25ndWUud2VicCZxdW90OyB0cnVlICZxdW90O0FubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X3Rvbmd1ZS53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtkb2xra3ZvbGtraG9sa2t3b2xra2JvbGtrc29sa2tub2xra28mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuNnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2RvbGtrdm9sa2tob2xra3dvbGtrYm9sa2tzb2xra25vbGtrbyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1llYWgsIEkgdGhpbmsgaXQgd291bGQgYmUgYSBnb29kIGlkZWEuJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfMV83YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1llYWgsIEkgdGhpbmsgaXQgd291bGQgYmUgYSBnb29kIGlkZWEuJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzFfN2ImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTkxIiBuYW1lPSJBbm5pZUNoYXRFcDRfMV83YSIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDI0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8xXzdhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1llYWgsIEkgdGhpbmsgdGhhdOKAmXMgZm9yIHRoZSBiZXN0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WWVhaCwgSSB0aGluayB0aGF04oCZcyBmb3IgdGhlIGJlc3QmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1llYWgsIEkgdGhpbmsgdGhhdOKAmXMgZm9yIHRoZSBiZXN0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2VvbGtrdG9sa2t2b2xra29vbGtrbW9sa2tXb2xra3NvbGtrdSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjZW9sa2t0b2xra3ZvbGtrb29sa2ttb2xra1dvbGtrc29sa2t1JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SGV5LCBub3cgdGhhdCBJIHRoaW5rIGFib3V0IGl0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfMV84JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SGV5LCBub3cgdGhhdCBJIHRoaW5rIGFib3V0IGl0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzFfOCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxOTIiIG5hbWU9IkFubmllQ2hhdEVwNF8xXzdiIiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsMjQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzFfN2ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WWVhaCwgSSB0aGluayBpdCB3b3VsZCBiZSBhIGdvb2QgaWRlYS4mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFoLCBJIHRoaW5rIGl0IHdvdWxkIGJlIGEgZ29vZCBpZGVhLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WWVhaCwgSSB0aGluayBpdCB3b3VsZCBiZSBhIGdvb2QgaWRlYS4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7eW9sa2txb2xra2NvbGtra29sa2tpb2xra0NvbGtraW9sa2tpJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN5b2xra3FvbGtrY29sa2trb2xra2lvbGtrQ29sa2tpb2xra2kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtIZXksIG5vdyB0aGF0IEkgdGhpbmsgYWJvdXQgaXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8xXzgmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtIZXksIG5vdyB0aGF0IEkgdGhpbmsgYWJvdXQgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfMV84JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE5MyIgbmFtZT0iQW5uaWVDaGF0RXA0XzFfOCIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDI0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8xXzgmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SGV5LCBub3cgdGhhdCBJIHRoaW5rIGFib3V0IGl0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGV5LCBub3cgdGhhdCBJIHRoaW5rIGFib3V0IGl0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIZXksIG5vdyB0aGF0IEkgdGhpbmsgYWJvdXQgaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7dG9sa2tPb2xra1JvbGtrVW9sa2tjb2xra1RvbGtrcG9sa2tPJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN0b2xra09vbGtrUm9sa2tVb2xra2NvbGtrVG9sa2twb2xra08mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIG1pc3Mgc2VlaW5nIHlvdXIgZmFjZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzFfOSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgbWlzcyBzZWVpbmcgeW91ciBmYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzFfOSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxOTQiIG5hbWU9IkFubmllQ2hhdEVwNF8xXzkiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwyNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfMV85JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgbWlzcyBzZWVpbmcgeW91ciBmYWNlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBtaXNzIHNlZWluZyB5b3VyIGZhY2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgbWlzcyBzZWVpbmcgeW91ciBmYWNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O21vbGtrVG9sa2tqb2xra2tvbGtrUm9sa2tab2xra2ZvbGtrRSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjbW9sa2tUb2xra2pvbGtra29sa2tSb2xra1pvbGtrZm9sa2tFJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QW5kIHlvdXIgYm9keS4uLiZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzFfMTAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtBbmQgeW91ciBib2R5Li4uJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzFfMTAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTk1IiBuYW1lPSJBbm5pZUNoYXRFcDRfMV8xMCIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDI0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8xXzEwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0FuZCB5b3VyIGJvZHkuLi4mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbmQgeW91ciBib2R5Li4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtBbmQgeW91ciBib2R5Li4uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1VvbGtraW9sa2tDb2xra25vbGtraW9sa2tVb2xra1JvbGtreSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjVW9sa2tpb2xra0NvbGtrbm9sa2tpb2xra1VvbGtrUm9sa2t5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7TWF5YmUgeW91IGNvdWxkIHNlbmQgbWUgYSBwaG90byBvciB0d28uJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfMV8xMSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O01heWJlIHlvdSBjb3VsZCBzZW5kIG1lIGEgcGhvdG8gb3IgdHdvLiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8xXzExJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE5NiIgbmFtZT0iQW5uaWVDaGF0RXA0XzFfMTEiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwyNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfMV8xMSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtNYXliZSB5b3UgY291bGQgc2VuZCBtZSBhIHBob3RvIG9yIHR3by4mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtNYXliZSB5b3UgY291bGQgc2VuZCBtZSBhIHBob3RvIG9yIHR3by4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O01heWJlIHlvdSBjb3VsZCBzZW5kIG1lIGEgcGhvdG8gb3IgdHdvLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtJb2xra3pvbGtrc29sa2tOb2xra1NvbGtrY29sa2tCb2xra3kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0lvbGtrem9sa2tzb2xra05vbGtrU29sa2tjb2xra0JvbGtreSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O/CfmI8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8xXzEyJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q78J+YjyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8xXzEyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjE5NyIgbmFtZT0iQW5uaWVDaGF0RXA0XzFfMTIiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCwyNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfMV8xMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2NvbmZpZGVuY2Uud2VicCZxdW90OyB0cnVlICZxdW90O1lvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfY29uZmlkZW5jZS53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SeKAmW0gaW4gYSB0YXhpIHJpZ2h0IG5vdyZxdW90OyAmcXVvdDtxb2xra0NvbGtrZG9sa2t0b2xra0FvbGtrRG9sa2tPb2xra2VvbGtrU29sa2tBb2xra2dvbGtrVG9sa2ttb2xra1lvbGtrSW9sa2ttJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJltIGluIGEgdGF4aSByaWdodCBub3cmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJltIGluIGEgdGF4aSByaWdodCBub3cmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4ycyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0FsbCBJIGNhbiBzZW5kIHlvdSBmb3Igbm93IGlzIHRoaXMmcXVvdDsgJnF1b3Q7T29sa2tab2xra0NvbGtrYm9sa2t3b2xra3ZvbGtra29sa2tFb2xra01vbGtrdG9sa2tkb2xra3RvbGtrWW9sa2tNb2xra1NvbGtrTSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbGwgSSBjYW4gc2VuZCB5b3UgZm9yIG5vdyBpcyB0aGlzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtBbGwgSSBjYW4gc2VuZCB5b3UgZm9yIG5vdyBpcyB0aGlzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuMnMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfaW1nICZxdW90O2Fzc2V0cy9pbWcvZXA0L2FubmllX3Bob3RvXzYud2VicCZxdW90OyB0cnVlICZxdW90O1pvbGtrZG9sa2tqb2xra3VvbGtraG9sa2tib2xra2NvbGtrem9sa2tzb2xra0FvbGtrSG9sa2t5b2xra3FvbGtrQm9sa2tkb2xra00mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMiwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lcDQvYW5uaWVfcGhvdG9fNi53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkcGhvdG9zLnB1c2goJnF1b3Q7YXNzZXRzL2ltZy9lcDQvYW5uaWVfcGhvdG9fNi53ZWJwJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt3b2xra0dvbGtrWm9sa2tBb2xra3RvbGtrT29sa2t5b2xra1cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDUuMnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3dvbGtrR29sa2tab2xra0FvbGtrdG9sa2tPb2xra3lvbGtrVyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1lvdSBsb29rIGJlYXV0aWZ1bC4mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8xXzEzYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdSBsb29rIGJlYXV0aWZ1bC4mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfMV8xM2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjd29sa2tHb2xra1pvbGtrQW9sa2t0b2xra09vbGtreW9sa2tXJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SeKAmWQgbG92ZSB0byBoYXZlIHlvdSBuYWtlZCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzFfMTNiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SeKAmWQgbG92ZSB0byBoYXZlIHlvdSBuYWtlZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8xXzEzYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIxOTgiIG5hbWU9IkFubmllQ2hhdEVwNF8xXzEzYSIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDI0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8xXzEzYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZb3UgbG9vayBiZWF1dGlmdWwuJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGxvb2sgYmVhdXRpZnVsLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW91IGxvb2sgYmVhdXRpZnVsLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtHb2xra2hvbGtrbG9sa2tXb2xra0lvbGtrVm9sa2tob2xra0UmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0dvbGtraG9sa2tsb2xra1dvbGtrSW9sa2tWb2xra2hvbGtrRSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O/CfmI0mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8xXzE0YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O/CfmI0mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfMV8xNGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMTk5IiBuYW1lPSJBbm5pZUNoYXRFcDRfMV8xM2IiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsMjQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzFfMTNiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0nigJlkIGxvdmUgdG8gaGF2ZSB5b3UgbmFrZWQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZZCBsb3ZlIHRvIGhhdmUgeW91IG5ha2VkJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJ4oCZZCBsb3ZlIHRvIGhhdmUgeW91IG5ha2VkJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O25vbGtrdG9sa2tpb2xra1RvbGtraW9sa2tMb2xra1JvbGtrVCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjbm9sa2t0b2xra2lvbGtrVG9sa2tpb2xra0xvbGtrUm9sa2tUJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SGVyZSwgcmlnaHQgbm93JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfMV8xNGImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtIZXJlLCByaWdodCBub3cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfMV8xNGImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjAwIiBuYW1lPSJBbm5pZUNoYXRFcDRfMV8xNGEiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMjQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzFfMTRhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGVhcnRfZXllcy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7WW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oZWFydF9leWVzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O0FvbGtrTm9sa2tDb2xra3pvbGtrcW9sa2t2b2xra2JvbGtrQiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjQW9sa2tOb2xra0NvbGtrem9sa2txb2xra3ZvbGtrYm9sa2tCJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhhbmtzLCBob25leSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzFfMTVhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhhbmtzLCBob25leSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8xXzE1YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMDEiIG5hbWU9IkFubmllQ2hhdEVwNF8xXzE1YSIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDI2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8xXzE1YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGFua3MsIGhvbmV5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhbmtzLCBob25leSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhhbmtzLCBob25leSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X2hlYXJ0cy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtPaCBubywgd2FpdCBhIHNlY29uZC4uLiZxdW90OyAmcXVvdDtCb2xra25vbGtrUW9sa2tjb2xra0VvbGtrQm9sa2tNb2xra0RvbGtrVm9sa2t2b2xra3BvbGtrem9sa2tRb2xra0FvbGtrWW9sa2tJJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09oIG5vLCB3YWl0IGEgc2Vjb25kLi4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtPaCBubywgd2FpdCBhIHNlY29uZC4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt2b2xra0dvbGtrWW9sa2tEb2xra3ZvbGtrRm9sa2tnb2xra1kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuNHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3ZvbGtrR29sa2tZb2xra0RvbGtrdm9sa2tGb2xra2dvbGtrWSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1doYXTigJlzIHdyb25nPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzFfMjAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXaGF04oCZcyB3cm9uZz8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfMV8yMCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMDIiIG5hbWU9IkFubmllQ2hhdEVwNF8xXzE0YiIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDI2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8xXzE0YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtIZXJlLCByaWdodCBub3cmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZXJlLCByaWdodCBub3cmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hlcmUsIHJpZ2h0IG5vdyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7WW91IGtub3csIEnigJlkIGxvdmUgdG8gaGF2ZSB5b3UgbGlrZSB0aGF0IHRvbyZxdW90OyAmcXVvdDtMb2xra0RvbGtrWW9sa2tjb2xra2VvbGtrS29sa2tab2xra2VvbGtrbW9sa2tob2xra3VvbGtreG9sa2tob2xra0tvbGtrY29sa2tXJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBrbm93LCBJ4oCZZCBsb3ZlIHRvIGhhdmUgeW91IGxpa2UgdGhhdCB0b28mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdSBrbm93LCBJ4oCZZCBsb3ZlIHRvIGhhdmUgeW91IGxpa2UgdGhhdCB0b28mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS45cyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV94ZC53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfeGQud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMi45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O09oIG5vLCB3YWl0IGEgc2Vjb25kLi4uJnF1b3Q7ICZxdW90O3RvbGtrWm9sa2t1b2xra21vbGtrb29sa2tib2xra0ZvbGtrWW9sa2t2b2xra0pvbGtrYm9sa2tEb2xra01vbGtrTG9sa2tXb2xra1UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2ggbm8sIHdhaXQgYSBzZWNvbmQuLi4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O09oIG5vLCB3YWl0IGEgc2Vjb25kLi4uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1NvbGtrTm9sa2tDb2xra1pvbGtrQm9sa2tOb2xra0FvbGtrcSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC4wcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjU29sa2tOb2xra0NvbGtrWm9sa2tCb2xra05vbGtrQW9sa2txJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7V2hhdOKAmXMgd3Jvbmc/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfMV8yMCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1doYXTigJlzIHdyb25nPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8xXzIwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIwMyIgbmFtZT0iQW5uaWVDaGF0RXA0XzFfMjAiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCwyNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfMV8yMCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtXaGF04oCZcyB3cm9uZz8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXaGF04oCZcyB3cm9uZz8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1doYXTigJlzIHdyb25nPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SXTigJlzIGp1c3QgdGhhdC4uLiZxdW90OyAmcXVvdDtHb2xra2RvbGtrem9sa2tFb2xra21vbGtrRW9sa2tMb2xra2NvbGtraW9sa2t6b2xra0FvbGtrSm9sa2tmb2xra3pvbGtrRW9sa2tSJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0l04oCZcyBqdXN0IHRoYXQuLi4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0l04oCZcyBqdXN0IHRoYXQuLi4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4ycyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgdGhpbmsgdGhlIHRheGkgZHJpdmVyIGtlZXBzIGdsYW5jaW5nIGF0IG1lJnF1b3Q7ICZxdW90O2pvbGtrbW9sa2tjb2xra0JvbGtrWm9sa2tqb2xra0hvbGtrU29sa2t4b2xra0FvbGtrem9sa2tNb2xra1pvbGtrUG9sa2tyb2xra0YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB0aGluayB0aGUgdGF4aSBkcml2ZXIga2VlcHMgZ2xhbmNpbmcgYXQgbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgdGhpbmsgdGhlIHRheGkgZHJpdmVyIGtlZXBzIGdsYW5jaW5nIGF0IG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIHRoaW5rIGhl4oCZcyBzb21lIGtpbmQgb2YgY3JlZXAmcXVvdDsgJnF1b3Q7cG9sa2t2b2xra3pvbGtrVm9sa2tub2xra29vbGtra29sa2tLb2xra3VvbGtrVG9sa2tZb2xra2VvbGtrQm9sa2t6b2xra2dvbGtrTyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHRoaW5rIGhl4oCZcyBzb21lIGtpbmQgb2YgY3JlZXAmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgdGhpbmsgaGXigJlzIHNvbWUga2luZCBvZiBjcmVlcCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2RvdWJ0LndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9kb3VidC53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtFb2xra0lvbGtreW9sa2tBb2xra0xvbGtrR29sa2tVb2xra2kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDUuMHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0VvbGtrSW9sa2t5b2xra0FvbGtrTG9sa2tHb2xra1VvbGtraSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0FyZSB5b3Ugc3VyZT8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8xXzIxJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QXJlIHlvdSBzdXJlPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8xXzIxJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIwNCIgbmFtZT0iQW5uaWVDaGF0RXA0XzFfMjEiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSwyNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfMV8yMSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtBcmUgeW91IHN1cmU/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QXJlIHlvdSBzdXJlPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QXJlIHlvdSBzdXJlPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBkb27igJl0IGtub3cmcXVvdDsgJnF1b3Q7V29sa2ttb2xra0tvbGtrQW9sa2tyb2xra0lvbGtrZm9sa2tlb2xra21vbGtrZW9sa2tvb2xra25vbGtrbG9sa2t2b2xra1RvbGtrVyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGRvbuKAmXQga25vdyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBkb27igJl0IGtub3cmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4ycyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O01heWJlIGl04oCZcyBqdXN0IG15IGltYWdpbmF0aW9uJnF1b3Q7ICZxdW90O2RvbGtrcW9sa2tUb2xra0NvbGtrS29sa2tTb2xra3VvbGtrTG9sa2twb2xra1NvbGtreW9sa2tyb2xra1ZvbGtrUG9sa2tQb2xra00mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TWF5YmUgaXTigJlzIGp1c3QgbXkgaW1hZ2luYXRpb24mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O01heWJlIGl04oCZcyBqdXN0IG15IGltYWdpbmF0aW9uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtIb2xkIG9uLCBnaXZlIG1lIGEgc2Vjb25kJnF1b3Q7ICZxdW90O05vbGtrdG9sa2tDb2xra0dvbGtrUW9sa2t1b2xra3JvbGtrZm9sa2tCb2xra3VvbGtreG9sa2t2b2xra0ZvbGtrdW9sa2tJb2xra0cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SG9sZCBvbiwgZ2l2ZSBtZSBhIHNlY29uZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SG9sZCBvbiwgZ2l2ZSBtZSBhIHNlY29uZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7WWVhaOKApiBJIHRoaW5rIGhl4oCZcyB3YXRjaGluZyBtZSB0aHJvdWdoIHRoZSByZWFydmlldyBtaXJyb3IgYWdhaW4uLi4mcXVvdDsgJnF1b3Q7c29sa2t3b2xra2JvbGtrSW9sa2tKb2xra0VvbGtrU29sa2tMb2xra0RvbGtrem9sa2tJb2xra29vbGtrT29sa2tQb2xra0ZvbGtrQSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFo4oCmIEkgdGhpbmsgaGXigJlzIHdhdGNoaW5nIG1lIHRocm91Z2ggdGhlIHJlYXJ2aWV3IG1pcnJvciBhZ2Fpbi4uLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WWVhaOKApiBJIHRoaW5rIGhl4oCZcyB3YXRjaGluZyBtZSB0aHJvdWdoIHRoZSByZWFydmlldyBtaXJyb3IgYWdhaW4uLi4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7VG9sa2tOb2xra1hvbGtrRm9sa2tJb2xra0NvbGtrVW9sa2tJJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA1LjJzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNUb2xra05vbGtrWG9sa2tGb2xra0lvbGtrQ29sa2tVb2xra0kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3Uga25vdywgbWF5YmUgeW91IGNvdWxkIHBheSBmb3IgdGhlIHJpZGUgd2l0aCBzZXgmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8xXzIyYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdSBrbm93LCBtYXliZSB5b3UgY291bGQgcGF5IGZvciB0aGUgcmlkZSB3aXRoIHNleCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8xXzIyYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNUb2xra05vbGtrWG9sa2tGb2xra0lvbGtrQ29sa2tVb2xra0kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJdOKAmXMgcHJvYmFibHkgbm9ybWFsJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfMV8yMmImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJdOKAmXMgcHJvYmFibHkgbm9ybWFsJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzFfMjJiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIwNSIgbmFtZT0iQW5uaWVDaGF0RXA0XzFfMjJhIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsMjYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzFfMjJhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdSBrbm93LCBtYXliZSB5b3UgY291bGQgcGF5IGZvciB0aGUgcmlkZSB3aXRoIHNleCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBrbm93LCBtYXliZSB5b3UgY291bGQgcGF5IGZvciB0aGUgcmlkZSB3aXRoIHNleCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW91IGtub3csIG1heWJlIHlvdSBjb3VsZCBwYXkgZm9yIHRoZSByaWRlIHdpdGggc2V4JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRhbm5pZV9sZXdkID0gJGFubmllX2xld2QrMSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtCb2xra1VvbGtrbW9sa2tYb2xra0hvbGtrT29sa2tRb2xra28mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0JvbGtrVW9sa2ttb2xra1hvbGtrSG9sa2tPb2xra1FvbGtrbyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgdGhpbmsgdGhhdCB3b3VsZCBiZSByZWFsbHkgaG90JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfMV8yM2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIHRoaW5rIHRoYXQgd291bGQgYmUgcmVhbGx5IGhvdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8xXzIzYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMDYiIG5hbWU9IkFubmllQ2hhdEVwNF8xXzIyYiIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDI2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8xXzIyYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJdOKAmXMgcHJvYmFibHkgbm9ybWFsJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXTigJlzIHByb2JhYmx5IG5vcm1hbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SXTigJlzIHByb2JhYmx5IG5vcm1hbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtUb2xra2RvbGtrdW9sa2tTb2xra2RvbGtrSm9sa2tCb2xra1UmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1RvbGtrZG9sa2t1b2xra1NvbGtrZG9sa2tKb2xra0JvbGtrVSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoZSBndXnigJlzIGRyaXZpbmcgYSB0YXhpIGFsbCBkYXkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8xXzIzYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoZSBndXnigJlzIGRyaXZpbmcgYSB0YXhpIGFsbCBkYXkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfMV8yM2ImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjA3IiBuYW1lPSJBbm5pZUNoYXRFcDRfMV8yM2EiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCwyNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfMV8yM2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSB0aGluayB0aGF0IHdvdWxkIGJlIHJlYWxseSBob3QmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHRoaW5rIHRoYXQgd291bGQgYmUgcmVhbGx5IGhvdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSB0aGluayB0aGF0IHdvdWxkIGJlIHJlYWxseSBob3QmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9ub193b3Jkcy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbm9fd29yZHMud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0FyZSB5b3Ugc2VyaW91cz8mcXVvdDsgJnF1b3Q7Tm9sa2twb2xra3FvbGtrWG9sa2tlb2xra1NvbGtrdW9sa2tJb2xra1FvbGtra29sa2tqb2xra29vbGtrZG9sa2t0b2xra3NvbGtrbyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBcmUgeW91IHNlcmlvdXM/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtBcmUgeW91IHNlcmlvdXM/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0pvbGtrWm9sa2tVb2xra0NvbGtrdm9sa2tob2xra2VvbGtrRCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjSm9sa2tab2xra1VvbGtrQ29sa2t2b2xra2hvbGtrZW9sa2tEJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WWVhaCwgSSB0aGluayB3ZeKAmXZlIHRhbGtlZCBhYm91dCBob3cgSeKAmW0gaW50byB0aGlzIGtpbmQgb2YgdGhpbmcmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8xXzI0YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1llYWgsIEkgdGhpbmsgd2XigJl2ZSB0YWxrZWQgYWJvdXQgaG93IEnigJltIGludG8gdGhpcyBraW5kIG9mIHRoaW5nJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzFfMjRhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIwOCIgbmFtZT0iQW5uaWVDaGF0RXA0XzFfMjRhIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMjYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzFfMjRhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1llYWgsIEkgdGhpbmsgd2XigJl2ZSB0YWxrZWQgYWJvdXQgaG93IEnigJltIGludG8gdGhpcyBraW5kIG9mIHRoaW5nJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WWVhaCwgSSB0aGluayB3ZeKAmXZlIHRhbGtlZCBhYm91dCBob3cgSeKAmW0gaW50byB0aGlzIGtpbmQgb2YgdGhpbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1llYWgsIEkgdGhpbmsgd2XigJl2ZSB0YWxrZWQgYWJvdXQgaG93IEnigJltIGludG8gdGhpcyBraW5kIG9mIHRoaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGd1ZXNzLCBJIGZvcmdvdCBmb3IgYSBtb21lbnQmcXVvdDsgJnF1b3Q7ZW9sa2thb2xra1VvbGtrbW9sa2t3b2xra0NvbGtrY29sa2tVb2xra1BvbGtrQW9sa2tab2xra1lvbGtrVm9sa2tkb2xra2ZvbGtrbiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGd1ZXNzLCBJIGZvcmdvdCBmb3IgYSBtb21lbnQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgZ3Vlc3MsIEkgZm9yZ290IGZvciBhIG1vbWVudCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7VGhvdWdoIEkgYWxyZWFkeSB0b2xkIHlvdSBteSBwbGFuIGlzIHRvIHRha2UgdGhpbmdzIHN0ZXAgYnkgc3RlcCZxdW90OyAmcXVvdDtTb2xra09vbGtrTW9sa2tGb2xra3pvbGtrWW9sa2tPb2xra3FvbGtrVG9sa2tHb2xra1ZvbGtraG9sa2tEb2xra21vbGtrQW9sa2t1JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1Rob3VnaCBJIGFscmVhZHkgdG9sZCB5b3UgbXkgcGxhbiBpcyB0byB0YWtlIHRoaW5ncyBzdGVwIGJ5IHN0ZXAmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1Rob3VnaCBJIGFscmVhZHkgdG9sZCB5b3UgbXkgcGxhbiBpcyB0byB0YWtlIHRoaW5ncyBzdGVwIGJ5IHN0ZXAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJltIG5vdCBzdXJlIEnigJlkIGRvIHNvbWV0aGluZyBsaWtlIHRoYXQmcXVvdDsgJnF1b3Q7WG9sa2tpb2xra0FvbGtrQW9sa2tTb2xra2NvbGtrQ29sa2t5b2xra2VvbGtreW9sa2twb2xra3dvbGtrcG9sa2tob2xra0FvbGtrbyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBub3Qgc3VyZSBJ4oCZZCBkbyBzb21ldGhpbmcgbGlrZSB0aGF0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJ4oCZbSBub3Qgc3VyZSBJ4oCZZCBkbyBzb21ldGhpbmcgbGlrZSB0aGF0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3FvbGtrdm9sa2tKb2xra2pvbGtrbW9sa2tMb2xra1JvbGtrZCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNS4wcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjcW9sa2t2b2xra0pvbGtram9sa2ttb2xra0xvbGtrUm9sa2tkJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WWVhaCwgSSBrbm93JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfMV8yNWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZZWFoLCBJIGtub3cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfMV8yNWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjA5IiBuYW1lPSJBbm5pZUNoYXRFcDRfMV8yNWEiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsMjYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzFfMjVhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1llYWgsIEkga25vdyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1llYWgsIEkga25vdyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WWVhaCwgSSBrbm93JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0RvbGtrRm9sa2t0b2xra1hvbGtrdW9sa2t0b2xra3JvbGtrZCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjRG9sa2tGb2xra3RvbGtrWG9sa2t1b2xra3RvbGtrcm9sa2tkJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7TGV04oCZcyB0YWtlIGl0IHNsb3cgYW5kIHNlZSB3aGVyZSBpdCBnb2VzJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfMV8yNmEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtMZXTigJlzIHRha2UgaXQgc2xvdyBhbmQgc2VlIHdoZXJlIGl0IGdvZXMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfMV8yNmEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjEwIiBuYW1lPSJBbm5pZUNoYXRFcDRfMV8yNmEiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsMjYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzFfMjZhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0xldOKAmXMgdGFrZSBpdCBzbG93IGFuZCBzZWUgd2hlcmUgaXQgZ29lcyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0xldOKAmXMgdGFrZSBpdCBzbG93IGFuZCBzZWUgd2hlcmUgaXQgZ29lcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7TGV04oCZcyB0YWtlIGl0IHNsb3cgYW5kIHNlZSB3aGVyZSBpdCBnb2VzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtIZXkgaG9uZXksIEnigJltIGFsbW9zdCB0aGVyZSwgdGhhbmtmdWxseS4uLiZxdW90OyAmcXVvdDtYb2xra1FvbGtrV29sa2tQb2xra01vbGtrWG9sa2t4b2xra0FvbGtrU29sa2tWb2xra3ZvbGtrRW9sa2tqb2xra0tvbGtrTG9sa2tRJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hleSBob25leSwgSeKAmW0gYWxtb3N0IHRoZXJlLCB0aGFua2Z1bGx5Li4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIZXkgaG9uZXksIEnigJltIGFsbW9zdCB0aGVyZSwgdGhhbmtmdWxseS4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SeKAmWxsIGdyYWIgdGhlIGZpbGVzLCBnaXZlIG1lIHNvbWUgbWludXRlcyZxdW90OyAmcXVvdDtGb2xra2xvbGtrRG9sa2tvb2xra0ZvbGtrVm9sa2tyb2xra0NvbGtrbm9sa2tyb2xra3hvbGtrd29sa2tPb2xra29vbGtrTW9sa2tqJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJlsbCBncmFiIHRoZSBmaWxlcywgZ2l2ZSBtZSBzb21lIG1pbnV0ZXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJlsbCBncmFiIHRoZSBmaWxlcywgZ2l2ZSBtZSBzb21lIG1pbnV0ZXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7YW9sa2tGb2xra0FvbGtrem9sa2tQb2xra3dvbGtrcm9sa2twJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjlzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNhb2xra0ZvbGtrQW9sa2t6b2xra1BvbGtrd29sa2tyb2xra3AmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtTdXJlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfMV8zMCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1N1cmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfMV8zMCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMTEiIG5hbWU9IkFubmllQ2hhdEVwNF8xXzIzYiIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDI3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8xXzIzYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGUgZ3V54oCZcyBkcml2aW5nIGEgdGF4aSBhbGwgZGF5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhlIGd1eeKAmXMgZHJpdmluZyBhIHRheGkgYWxsIGRheSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhlIGd1eeKAmXMgZHJpdmluZyBhIHRheGkgYWxsIGRheSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtYb2xra2RvbGtrUG9sa2tmb2xra2VvbGtrRW9sa2t4b2xra0wmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1hvbGtrZG9sa2tQb2xra2ZvbGtrZW9sa2tFb2xra3hvbGtrTCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoZW4gYSBnb3JnZW91cyByZWRoZWFkIGdldHMgaW4mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8xXzI0YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoZW4gYSBnb3JnZW91cyByZWRoZWFkIGdldHMgaW4mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfMV8yNGImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjEyIiBuYW1lPSJBbm5pZUNoYXRFcDRfMV8yNGIiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSwyNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfMV8yNGImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhlbiBhIGdvcmdlb3VzIHJlZGhlYWQgZ2V0cyBpbiZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoZW4gYSBnb3JnZW91cyByZWRoZWFkIGdldHMgaW4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1RoZW4gYSBnb3JnZW91cyByZWRoZWFkIGdldHMgaW4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Vm9sa2tob2xra0lvbGtraW9sa2t5b2xra1FvbGtram9sa2tBJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNWb2xra2hvbGtrSW9sa2tpb2xra3lvbGtrUW9sa2tqb2xra0EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtPZiBjb3Vyc2UgaGXigJlzIGdvaW5nIHRvIGxvb2smcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8xXzI1YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O09mIGNvdXJzZSBoZeKAmXMgZ29pbmcgdG8gbG9vayZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8xXzI1YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMTMiIG5hbWU9IkFubmllQ2hhdEVwNF8xXzI1YiIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDI3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8xXzI1YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtPZiBjb3Vyc2UgaGXigJlzIGdvaW5nIHRvIGxvb2smcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPZiBjb3Vyc2UgaGXigJlzIGdvaW5nIHRvIGxvb2smcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O09mIGNvdXJzZSBoZeKAmXMgZ29pbmcgdG8gbG9vayZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtYb2xra0NvbGtrbG9sa2tub2xra3NvbGtrZG9sa2tzb2xra3omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1hvbGtrQ29sa2tsb2xra25vbGtrc29sa2tkb2xra3NvbGtreiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0FzIGxvbmcgYXMgaGXigJlzIG5vdCBib3RoZXJpbmcgeW91LCBpdOKAmXMgZmluZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzFfMjZiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QXMgbG9uZyBhcyBoZeKAmXMgbm90IGJvdGhlcmluZyB5b3UsIGl04oCZcyBmaW5lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzFfMjZiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIxNCIgbmFtZT0iQW5uaWVDaGF0RXA0XzFfMjZiIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMjcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzFfMjZiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0FzIGxvbmcgYXMgaGXigJlzIG5vdCBib3RoZXJpbmcgeW91LCBpdOKAmXMgZmluZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FzIGxvbmcgYXMgaGXigJlzIG5vdCBib3RoZXJpbmcgeW91LCBpdOKAmXMgZmluZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QXMgbG9uZyBhcyBoZeKAmXMgbm90IGJvdGhlcmluZyB5b3UsIGl04oCZcyBmaW5lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGd1ZXNzIHlvdeKAmXJlIHJpZ2h0JnF1b3Q7ICZxdW90O25vbGtrbW9sa2tZb2xra2JvbGtrZ29sa2tUb2xra01vbGtrS29sa2tFb2xra1lvbGtrWW9sa2txb2xra0tvbGtrcm9sa2tTb2xra0omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBndWVzcyB5b3XigJlyZSByaWdodCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBndWVzcyB5b3XigJlyZSByaWdodCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SXTigJlzIG5vdCBsaWtlIHBlb3BsZSBkb27igJl0IHN0YXJlIGF0IG1lIG9uIHRoZSBzdHJlZXQgdG9vLiZxdW90OyAmcXVvdDtib2xra3lvbGtrVW9sa2t4b2xra29vbGtrTW9sa2t6b2xra1hvbGtrbG9sa2tpb2xra1hvbGtraG9sa2tFb2xra3RvbGtreW9sa2tVJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0l04oCZcyBub3QgbGlrZSBwZW9wbGUgZG9u4oCZdCBzdGFyZSBhdCBtZSBvbiB0aGUgc3RyZWV0IHRvby4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0l04oCZcyBub3QgbGlrZSBwZW9wbGUgZG9u4oCZdCBzdGFyZSBhdCBtZSBvbiB0aGUgc3RyZWV0IHRvby4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7SG9sa2txb2xra3dvbGtrbW9sa2tkb2xra2dvbGtrZ29sa2tpJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjFzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNIb2xra3FvbGtrd29sa2ttb2xra2RvbGtrZ29sa2tnb2xra2kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDvwn6W1JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfMV8yN2ImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDvwn6W1JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzFfMjdiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIxNSIgbmFtZT0iQW5uaWVDaGF0RXA0XzFfMjdiIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsMjcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzFfMjdiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbGV3ZF9mYWNlLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xld2RfZmFjZS53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7T2ggR29kLCBJIGZvcmdvdCBob3cgbXVjaCB0aGlzIHR1cm5zIHlvdSBvbiZxdW90OyAmcXVvdDtUb2xra29vbGtrbW9sa2twb2xra1NvbGtrcm9sa2tLb2xra0tvbGtrVW9sa2tsb2xra3pvbGtrcW9sa2t3b2xra0tvbGtrU29sa2tUJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09oIEdvZCwgSSBmb3Jnb3QgaG93IG11Y2ggdGhpcyB0dXJucyB5b3Ugb24mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O09oIEdvZCwgSSBmb3Jnb3QgaG93IG11Y2ggdGhpcyB0dXJucyB5b3Ugb24mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9sbWFvLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9sbWFvLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1FvbGtrS29sa2ttb2xra0dvbGtrWm9sa2tub2xra3dvbGtrVyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjUW9sa2tLb2xra21vbGtrR29sa2tab2xra25vbGtrd29sa2tXJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q78J+YnSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzFfMjhiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q78J+YnSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8xXzI4YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMTYiIG5hbWU9IkFubmllQ2hhdEVwNF8xXzI4YiIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDI3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8xXzI4YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX3hkLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX3hkLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtIZXkgaG9uZXksIEnigJltIGFsbW9zdCB0aGVyZSwgdGhhbmtmdWxseS4uLiZxdW90OyAmcXVvdDtSb2xra3lvbGtrcm9sa2tob2xra3BvbGtrUW9sa2tSb2xra1pvbGtrRW9sa2t4b2xra2ZvbGtrTW9sa2tLb2xra21vbGtrQW9sa2trJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hleSBob25leSwgSeKAmW0gYWxtb3N0IHRoZXJlLCB0aGFua2Z1bGx5Li4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIZXkgaG9uZXksIEnigJltIGFsbW9zdCB0aGVyZSwgdGhhbmtmdWxseS4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SeKAmWxsIGdyYWIgdGhlIGZpbGVzLCBnaXZlIG1lIHNvbWUgbWludXRlcyZxdW90OyAmcXVvdDtxb2xra2VvbGtrYm9sa2tnb2xra3hvbGtrc29sa2tBb2xra1RvbGtrdG9sa2tnb2xra1NvbGtrTG9sa2tLb2xra3hvbGtrbm9sa2tYJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJlsbCBncmFiIHRoZSBmaWxlcywgZ2l2ZSBtZSBzb21lIG1pbnV0ZXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJlsbCBncmFiIHRoZSBmaWxlcywgZ2l2ZSBtZSBzb21lIG1pbnV0ZXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7b29sa2thb2xra3ZvbGtrWW9sa2tOb2xra2tvbGtraG9sa2tpJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjZzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNvb2xra2FvbGtrdm9sa2tZb2xra05vbGtra29sa2tob2xra2kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtTdXJlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfMV8zMCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1N1cmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfMV8zMCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMTciIG5hbWU9IkFubmllQ2hhdEVwNF8xXzMwIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMjcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzFfMzAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7U3VyZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1N1cmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1N1cmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhhbmtzIGFnYWluJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSA9ICZxdW90O0FubmllQ2hhdEVwNF8xXzMwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2xhc3RfaG91ciA9ICZxdW90OzExOjQ5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXQgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRob3VyID0gJnF1b3Q7MTE6NDkmcXVvdDsmZ3Q7Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O29mZmxpbmUtdGV4dCZxdW90OyZndDtBbm5pZSBpcyBvZmZsaW5lJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzJfMSZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O09rYXkgaG9uZXksIEnigJl2ZSBnb3QgdGhlIGZpbGVzJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIxOCIgbmFtZT0iQW5uaWVDaGF0RXA0XzJfMSIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDI3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7T2theSBob25leSwgSeKAmXZlIGdvdCB0aGUgZmlsZXMmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09rYXkgaG9uZXksIEnigJl2ZSBnb3QgdGhlIGZpbGVzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtPa2F5IGhvbmV5LCBJ4oCZdmUgZ290IHRoZSBmaWxlcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kganVzdCB0b29rIGEgY2FiIG9uIG15IHdheSB0byB5b3VyIG9mZmljZSZxdW90OyAmcXVvdDtkb2xra2xvbGtrQ29sa2t4b2xra3lvbGtrTW9sa2tYb2xra21vbGtrRm9sa2tTb2xra1JvbGtrZ29sa2t1b2xra1ZvbGtrT29sa2tlJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kganVzdCB0b29rIGEgY2FiIG9uIG15IHdheSB0byB5b3VyIG9mZmljZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBqdXN0IHRvb2sgYSBjYWIgb24gbXkgd2F5IHRvIHlvdXIgb2ZmaWNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7VG9sa2tqb2xra2hvbGtrWG9sa2t6b2xra0hvbGtrbG9sa2tFJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNUb2xra2pvbGtraG9sa2tYb2xra3pvbGtrSG9sa2tsb2xra0UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtHcmVhdCBiYWJlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfMl8yJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7R3JlYXQgYmFiZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8yXzImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMTkiIG5hbWU9IkFubmllQ2hhdEVwNF8yXzIiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsMjcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzJfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtHcmVhdCBiYWJlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7R3JlYXQgYmFiZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7R3JlYXQgYmFiZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtmb2xra3ZvbGtrcm9sa2tOb2xra2ZvbGtrSG9sa2tvb2xra3YmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2ZvbGtrdm9sa2tyb2xra05vbGtrZm9sa2tIb2xra29vbGtrdiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0FyZSB5b3Ugd2l0aCB0aGUgc2FtZSBkcml2ZXI/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfMl8zJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QXJlIHlvdSB3aXRoIHRoZSBzYW1lIGRyaXZlcj8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfMl8zJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIyMCIgbmFtZT0iQW5uaWVDaGF0RXA0XzJfMyIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSwyNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfMl8zJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0FyZSB5b3Ugd2l0aCB0aGUgc2FtZSBkcml2ZXI/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QXJlIHlvdSB3aXRoIHRoZSBzYW1lIGRyaXZlcj8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0FyZSB5b3Ugd2l0aCB0aGUgc2FtZSBkcml2ZXI/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O05vLCBvZiBjb3Vyc2Ugbm90JnF1b3Q7ICZxdW90O29vbGtram9sa2tHb2xra0hvbGtrWW9sa2tUb2xra2dvbGtrcW9sa2tmb2xra2pvbGtrZG9sa2tyb2xra1dvbGtrVm9sa2tob2xra3gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm8sIG9mIGNvdXJzZSBub3QmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O05vLCBvZiBjb3Vyc2Ugbm90JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtUaGF0IG90aGVyIGd1eSB3YXMgbWFraW5nIG1lIG5lcnZvdXMmcXVvdDsgJnF1b3Q7Rm9sa2thb2xra3pvbGtrQm9sa2tIb2xra0hvbGtreW9sa2tEb2xra0tvbGtrS29sa2tUb2xra2JvbGtrYm9sa2tMb2xra1lvbGtrbCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGF0IG90aGVyIGd1eSB3YXMgbWFraW5nIG1lIG5lcnZvdXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1RoYXQgb3RoZXIgZ3V5IHdhcyBtYWtpbmcgbWUgbmVydm91cyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O2JvbGtrT29sa2trb2xra0JvbGtrWm9sa2txb2xra3lvbGtrRyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjYm9sa2tPb2xra2tvbGtrQm9sa2tab2xra3FvbGtreW9sa2tHJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q78J+koyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzJfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O/CfpKMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfMl80JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIyMSIgbmFtZT0iQW5uaWVDaGF0RXA0XzJfNCIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDI4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8yXzQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9sbWFvLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xtYW8ud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgIAogICAgJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SGV5LCBkb27igJl0IGxhdWdoJnF1b3Q7ICZxdW90O1NvbGtrbW9sa2tkb2xra0FvbGtrbm9sa2tNb2xra0tvbGtrWm9sa2tUb2xra2VvbGtrZ29sa2t0b2xra2dvbGtrVG9sa2thb2xra0kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGV5LCBkb27igJl0IGxhdWdoJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIZXksIGRvbuKAmXQgbGF1Z2gmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0hlIGtlcHQgbG9va2luZyBhdCBteSBza2lydCBpbiB0aGUgcmVhcnZpZXcgbWlycm9yIHRoZSB3aG9sZSByaWRlJnF1b3Q7ICZxdW90O2tvbGtrQm9sa2tKb2xra2JvbGtrWW9sa2t3b2xra09vbGtrc29sa2tqb2xra1dvbGtrd29sa2tYb2xra3RvbGtrSm9sa2tDb2xra2ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGUga2VwdCBsb29raW5nIGF0IG15IHNraXJ0IGluIHRoZSByZWFydmlldyBtaXJyb3IgdGhlIHdob2xlIHJpZGUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hlIGtlcHQgbG9va2luZyBhdCBteSBza2lydCBpbiB0aGUgcmVhcnZpZXcgbWlycm9yIHRoZSB3aG9sZSByaWRlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7R29sa2ttb2xra3ZvbGtrSG9sa2tFb2xra0JvbGtrdm9sa2t2JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjhzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNHb2xra21vbGtrdm9sa2tIb2xra0VvbGtrQm9sa2t2b2xra3YmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIHNlZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzJfNSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgc2VlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzJfNSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMjIiIG5hbWU9IkFubmllQ2hhdEVwNF8yXzUiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSwyODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfMl81JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgc2VlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBzZWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgc2VlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O09vbGtrc29sa2tub2xra29vbGtrTG9sa2tPb2xra0JvbGtrUyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjT29sa2tzb2xra25vbGtrb29sa2tMb2xra09vbGtrQm9sa2tTJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SGUgZGlkbuKAmXQgc2F5IGFueXRoaW5nIHdoZW4geW91IGdvdCBvdXQ/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfMl82JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SGUgZGlkbuKAmXQgc2F5IGFueXRoaW5nIHdoZW4geW91IGdvdCBvdXQ/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzJfNiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMjMiIG5hbWU9IkFubmllQ2hhdEVwNF8yXzYiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCwyODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfMl82JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0hlIGRpZG7igJl0IHNheSBhbnl0aGluZyB3aGVuIHlvdSBnb3Qgb3V0PyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hlIGRpZG7igJl0IHNheSBhbnl0aGluZyB3aGVuIHlvdSBnb3Qgb3V0PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SGUgZGlkbuKAmXQgc2F5IGFueXRoaW5nIHdoZW4geW91IGdvdCBvdXQ/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1N1cnByaXNpbmdseSwgbm8mcXVvdDsgJnF1b3Q7dW9sa2tmb2xra2pvbGtrU29sa2t1b2xra1pvbGtrbG9sa2t5b2xra2xvbGtrY29sa2t6b2xra3NvbGtrcm9sa2tlb2xra0FvbGtrTCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTdXJwcmlzaW5nbHksIG5vJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtTdXJwcmlzaW5nbHksIG5vJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMi4wcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIGd1ZXNzIHRoZSBkaXNndXN0ZWQgbG9vayBvbiBteSBmYWNlIHdoZW5ldmVyIHdlIG1hZGUgZXllIGNvbnRhY3Qgd2FzIGVub3VnaCB0byBnZXQgdGhlIG1lc3NhZ2UgYWNyb3NzJnF1b3Q7ICZxdW90O3ZvbGtrUG9sa2tpb2xra1hvbGtrRm9sa2tXb2xra3dvbGtrR29sa2tIb2xra3NvbGtrVW9sa2tIb2xra1RvbGtrWm9sa2tsb2xra0EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBndWVzcyB0aGUgZGlzZ3VzdGVkIGxvb2sgb24gbXkgZmFjZSB3aGVuZXZlciB3ZSBtYWRlIGV5ZSBjb250YWN0IHdhcyBlbm91Z2ggdG8gZ2V0IHRoZSBtZXNzYWdlIGFjcm9zcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBndWVzcyB0aGUgZGlzZ3VzdGVkIGxvb2sgb24gbXkgZmFjZSB3aGVuZXZlciB3ZSBtYWRlIGV5ZSBjb250YWN0IHdhcyBlbm91Z2ggdG8gZ2V0IHRoZSBtZXNzYWdlIGFjcm9zcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O3FvbGtra29sa2tyb2xra0VvbGtrSm9sa2tOb2xra2lvbGtreSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy43cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjcW9sa2trb2xra3JvbGtrRW9sa2tKb2xra05vbGtraW9sa2t5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7V293LCB5b3XigJlyZSByZWFsbHkgcGlja3kmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8yXzcmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXb3csIHlvdeKAmXJlIHJlYWxseSBwaWNreSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8yXzcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjI0IiBuYW1lPSJBbm5pZUNoYXRFcDRfMl83IiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMjg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzJfNyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtXb3csIHlvdeKAmXJlIHJlYWxseSBwaWNreSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dvdywgeW914oCZcmUgcmVhbGx5IHBpY2t5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtXb3csIHlvdeKAmXJlIHJlYWxseSBwaWNreSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtXYWl0LCB0ZWxsIG1lIG9uZSB0aGluZyZxdW90OyAmcXVvdDt2b2xra1VvbGtrdW9sa2t5b2xra1hvbGtrb29sa2t4b2xra2NvbGtrQW9sa2tKb2xra3lvbGtrVG9sa2trb2xra3BvbGtrc29sa2tQJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dhaXQsIHRlbGwgbWUgb25lIHRoaW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtXYWl0LCB0ZWxsIG1lIG9uZSB0aGluZyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjRzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SW4geW91ciBmYW50YXNpZXMsIGRvIEkgc2xlZXAgd2l0aCB1Z2x5IGd1eXMgbGlrZSB0aGF0IG9uZT8mcXVvdDsgJnF1b3Q7VG9sa2tJb2xra3BvbGtrTW9sa2tHb2xra29vbGtrdW9sa2tpb2xra3RvbGtrSW9sa2tib2xra2VvbGtrVG9sa2tKb2xra3RvbGtrRiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJbiB5b3VyIGZhbnRhc2llcywgZG8gSSBzbGVlcCB3aXRoIHVnbHkgZ3V5cyBsaWtlIHRoYXQgb25lPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SW4geW91ciBmYW50YXNpZXMsIGRvIEkgc2xlZXAgd2l0aCB1Z2x5IGd1eXMgbGlrZSB0aGF0IG9uZT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4ycyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0lzIHRoYXQgc29tZXRoaW5nIHlvdeKAmWQgbGlrZT8mcXVvdDsgJnF1b3Q7U29sa2t1b2xra3BvbGtrYW9sa2tZb2xra1dvbGtrTm9sa2tXb2xra0dvbGtrWG9sa2tGb2xra3pvbGtrS29sa2tXb2xra2RvbGtrTyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJcyB0aGF0IHNvbWV0aGluZyB5b3XigJlkIGxpa2U/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJcyB0aGF0IHNvbWV0aGluZyB5b3XigJlkIGxpa2U/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7S29sa2tLb2xra3ZvbGtrTW9sa2tOb2xra2NvbGtrVm9sa2tMJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNLb2xra0tvbGtrdm9sa2tNb2xra05vbGtrY29sa2tWb2xra0wmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZZXMsIGl0IHJlYWxseSB0dXJucyBtZSBvbiB0byB0aGluayBvZiB5b3UgYmVpbmcgd2l0aCBndXlzIHlvdSBkb27igJl0IGZpbmQgYXR0cmFjdGl2ZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzJfOGEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZZXMsIGl0IHJlYWxseSB0dXJucyBtZSBvbiB0byB0aGluayBvZiB5b3UgYmVpbmcgd2l0aCBndXlzIHlvdSBkb27igJl0IGZpbmQgYXR0cmFjdGl2ZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8yXzhhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0tvbGtrS29sa2t2b2xra01vbGtrTm9sa2tjb2xra1ZvbGtrTCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O05vLCBJIHdvdWxkIHByZWZlciBpdCB0byBiZSBzb21lb25lIHdlIGJvdGggY2hvb3NlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfMl84YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O05vLCBJIHdvdWxkIHByZWZlciBpdCB0byBiZSBzb21lb25lIHdlIGJvdGggY2hvb3NlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzJfOGImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjI1IiBuYW1lPSJBbm5pZUNoYXRFcDRfMl84YSIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDI4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8yXzhhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1llcywgaXQgcmVhbGx5IHR1cm5zIG1lIG9uIHRvIHRoaW5rIG9mIHlvdSBiZWluZyB3aXRoIGd1eXMgeW91IGRvbuKAmXQgZmluZCBhdHRyYWN0aXZlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WWVzLCBpdCByZWFsbHkgdHVybnMgbWUgb24gdG8gdGhpbmsgb2YgeW91IGJlaW5nIHdpdGggZ3V5cyB5b3UgZG9u4oCZdCBmaW5kIGF0dHJhY3RpdmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1llcywgaXQgcmVhbGx5IHR1cm5zIG1lIG9uIHRvIHRoaW5rIG9mIHlvdSBiZWluZyB3aXRoIGd1eXMgeW91IGRvbuKAmXQgZmluZCBhdHRyYWN0aXZlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRhbm5pZV9sZXdkID0gJGFubmllX2xld2QrMSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtpb2xra3hvbGtrQW9sa2tSb2xra2JvbGtrSW9sa2tNb2xra0UmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2lvbGtreG9sa2tBb2xra1JvbGtrYm9sa2tJb2xra01vbGtrRSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgd291bGQgbG92ZSB0byBzZWUgaXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8yXzlhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSB3b3VsZCBsb3ZlIHRvIHNlZSBpdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8yXzlhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIyNiIgbmFtZT0iQW5uaWVDaGF0RXA0XzJfOGIiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwyODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfMl84YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtObywgSSB3b3VsZCBwcmVmZXIgaXQgdG8gYmUgc29tZW9uZSB3ZSBib3RoIGNob29zZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O05vLCBJIHdvdWxkIHByZWZlciBpdCB0byBiZSBzb21lb25lIHdlIGJvdGggY2hvb3NlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtObywgSSB3b3VsZCBwcmVmZXIgaXQgdG8gYmUgc29tZW9uZSB3ZSBib3RoIGNob29zZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtvb2xra0hvbGtrUm9sa2t6b2xra3hvbGtrUG9sa2tzb2xra00mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I29vbGtrSG9sa2tSb2xra3pvbGtreG9sa2tQb2xra3NvbGtrTSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoZXJl4oCZcyBubyBuZWVkIGZvciB5b3UgdG8gYmUgd2l0aCBzb21lb25lIHlvdSBkb27igJl0IGxpa2UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8yXzliJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhlcmXigJlzIG5vIG5lZWQgZm9yIHlvdSB0byBiZSB3aXRoIHNvbWVvbmUgeW91IGRvbuKAmXQgbGlrZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8yXzliJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIyNyIgbmFtZT0iQW5uaWVDaGF0RXA0XzJfOWEiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCwyODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfMl85YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIHdvdWxkIGxvdmUgdG8gc2VlIGl0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB3b3VsZCBsb3ZlIHRvIHNlZSBpdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSB3b3VsZCBsb3ZlIHRvIHNlZSBpdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbm9fd29yZHMud2VicCZxdW90OyB0cnVlICZxdW90O0FubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX25vX3dvcmRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtFdmVyeSB0aW1lIEkgdGhpbmsgSSBrbm93IHlvdSwgc29tZXRoaW5nIGRlZXBlciBjb21lcyB1cCZxdW90OyAmcXVvdDtyb2xra3BvbGtrVW9sa2tKb2xra1JvbGtrYm9sa2tQb2xra2pvbGtrTm9sa2tVb2xra2VvbGtrYm9sa2tZb2xra2xvbGtrdm9sa2tYJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0V2ZXJ5IHRpbWUgSSB0aGluayBJIGtub3cgeW91LCBzb21ldGhpbmcgZGVlcGVyIGNvbWVzIHVwJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtFdmVyeSB0aW1lIEkgdGhpbmsgSSBrbm93IHlvdSwgc29tZXRoaW5nIGRlZXBlciBjb21lcyB1cCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O0JvbGtrSG9sa2tib2xra1hvbGtrTW9sa2tVb2xra0xvbGtrZSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy4wcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjQm9sa2tIb2xra2JvbGtrWG9sa2tNb2xra1VvbGtrTG9sa2tlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q78J+koyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzJfMTBhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q78J+koyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8yXzEwYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMjgiIG5hbWU9IkFubmllQ2hhdEVwNF8yXzEwYSIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDI4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8yXzEwYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xtYW8ud2VicCZxdW90OyB0cnVlICZxdW90O1lvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbG1hby53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDt1b2xra2lvbGtrUm9sa2tYb2xra1NvbGtrdm9sa2tyb2xra24mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuMHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3VvbGtraW9sa2tSb2xra1hvbGtrU29sa2t2b2xra3JvbGtrbiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgY2Fu4oCZdCBoZWxwIGl0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfMl8xMWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGNhbuKAmXQgaGVscCBpdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8yXzExYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMjkiIG5hbWU9IkFubmllQ2hhdEVwNF8yXzExYSIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwyODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfMl8xMWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBjYW7igJl0IGhlbHAgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGNhbuKAmXQgaGVscCBpdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBjYW7igJl0IGhlbHAgaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7R29sa2tPb2xra1lvbGtrSW9sa2tub2xra0FvbGtrQm9sa2tNJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNHb2xra09vbGtrWW9sa2tJb2xra25vbGtrQW9sa2tCb2xra00mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIHRoaW5rIGl0IHdvdWxkIGJlIHNvIGhvdCB0byBzZWUgbXkgcGVyZmVjdCBnaXJsZnJpZW5kIGdldHRpbmcgY29tcGxldGVseSB0YWtlbiBieSBzb21lIHN3ZWF0eSwgdWdseSBndXkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8yXzEyYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgdGhpbmsgaXQgd291bGQgYmUgc28gaG90IHRvIHNlZSBteSBwZXJmZWN0IGdpcmxmcmllbmQgZ2V0dGluZyBjb21wbGV0ZWx5IHRha2VuIGJ5IHNvbWUgc3dlYXR5LCB1Z2x5IGd1eSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8yXzEyYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMzAiIG5hbWU9IkFubmllQ2hhdEVwNF8yXzEyYSIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSwyODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfMl8xMmEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSB0aGluayBpdCB3b3VsZCBiZSBzbyBob3QgdG8gc2VlIG15IHBlcmZlY3QgZ2lybGZyaWVuZCBnZXR0aW5nIGNvbXBsZXRlbHkgdGFrZW4gYnkgc29tZSBzd2VhdHksIHVnbHkgZ3V5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB0aGluayBpdCB3b3VsZCBiZSBzbyBob3QgdG8gc2VlIG15IHBlcmZlY3QgZ2lybGZyaWVuZCBnZXR0aW5nIGNvbXBsZXRlbHkgdGFrZW4gYnkgc29tZSBzd2VhdHksIHVnbHkgZ3V5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIHRoaW5rIGl0IHdvdWxkIGJlIHNvIGhvdCB0byBzZWUgbXkgcGVyZmVjdCBnaXJsZnJpZW5kIGdldHRpbmcgY29tcGxldGVseSB0YWtlbiBieSBzb21lIHN3ZWF0eSwgdWdseSBndXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7WW91IHRoaW5rIEnigJltIHBlcmZlY3Q/JnF1b3Q7ICZxdW90O2pvbGtrTG9sa2tsb2xra1RvbGtrQm9sa2tub2xra0xvbGtrTW9sa2tEb2xra3ZvbGtreW9sa2tJb2xra3NvbGtrR29sa2tkb2xra3ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IHRoaW5rIEnigJltIHBlcmZlY3Q/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtZb3UgdGhpbmsgSeKAmW0gcGVyZmVjdD8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtzb2xra0FvbGtrWW9sa2trb2xra0tvbGtrRG9sa2tCb2xra0EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3NvbGtrQW9sa2tZb2xra2tvbGtrS29sa2tEb2xra0JvbGtrQSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O09mIGNvdXJzZS4mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8yXzEzYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O09mIGNvdXJzZS4mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfMl8xM2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjMxIiBuYW1lPSJBbm5pZUNoYXRFcDRfMl8xM2EiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCwyOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfMl8xM2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7T2YgY291cnNlLiZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09mIGNvdXJzZS4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O09mIGNvdXJzZS4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7R29sa2t3b2xra1pvbGtrUW9sa2tzb2xra2JvbGtrbW9sa2tyJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNHb2xra3dvbGtrWm9sa2tRb2xra3NvbGtrYm9sa2ttb2xra3ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGF04oCZcyB3aHkgaXTigJlzIHN1Y2ggYSB0dXJuIG9uIHRvIGltYWdpbmUgc29tZW9uZSB3aG/igJlzIHRoZSBjb21wbGV0ZSBvcHBvc2l0ZSB3aXRoIHNvbWVvbmUgbGlrZSB5b3UuJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfMl8xNGEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaGF04oCZcyB3aHkgaXTigJlzIHN1Y2ggYSB0dXJuIG9uIHRvIGltYWdpbmUgc29tZW9uZSB3aG/igJlzIHRoZSBjb21wbGV0ZSBvcHBvc2l0ZSB3aXRoIHNvbWVvbmUgbGlrZSB5b3UuJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzJfMTRhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIzMiIgbmFtZT0iQW5uaWVDaGF0RXA0XzJfMTRhIiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsMjk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzJfMTRhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RoYXTigJlzIHdoeSBpdOKAmXMgc3VjaCBhIHR1cm4gb24gdG8gaW1hZ2luZSBzb21lb25lIHdob+KAmXMgdGhlIGNvbXBsZXRlIG9wcG9zaXRlIHdpdGggc29tZW9uZSBsaWtlIHlvdS4mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGF04oCZcyB3aHkgaXTigJlzIHN1Y2ggYSB0dXJuIG9uIHRvIGltYWdpbmUgc29tZW9uZSB3aG/igJlzIHRoZSBjb21wbGV0ZSBvcHBvc2l0ZSB3aXRoIHNvbWVvbmUgbGlrZSB5b3UuJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUaGF04oCZcyB3aHkgaXTigJlzIHN1Y2ggYSB0dXJuIG9uIHRvIGltYWdpbmUgc29tZW9uZSB3aG/igJlzIHRoZSBjb21wbGV0ZSBvcHBvc2l0ZSB3aXRoIHNvbWVvbmUgbGlrZSB5b3UuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9mbHVzaC53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfZmx1c2gud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgZG9u4oCZdCBrbm93LCB3ZeKAmWxsIHNlZSB3aGVuIHRoZSB0aW1lIGNvbWVzJnF1b3Q7ICZxdW90O0RvbGtrSW9sa2tZb2xra3lvbGtrdW9sa2tvb2xra2RvbGtrRW9sa2tpb2xra1ZvbGtraG9sa2tCb2xra1ZvbGtrWm9sa2tMb2xra3QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBkb27igJl0IGtub3csIHdl4oCZbGwgc2VlIHdoZW4gdGhlIHRpbWUgY29tZXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgZG9u4oCZdCBrbm93LCB3ZeKAmWxsIHNlZSB3aGVuIHRoZSB0aW1lIGNvbWVzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7Vm9sa2tUb2xra0VvbGtrQW9sa2tVb2xra1dvbGtrZm9sa2tjJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjhzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNWb2xra1RvbGtrRW9sa2tBb2xra1VvbGtrV29sa2tmb2xra2MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtPZiBjb3Vyc2UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8yXzE1YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O09mIGNvdXJzZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8yXzE1YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMzMiIG5hbWU9IkFubmllQ2hhdEVwNF8yXzE1YSIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDI5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8yXzE1YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtPZiBjb3Vyc2UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPZiBjb3Vyc2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O09mIGNvdXJzZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtCdXQgdGVsbCBtZSwgc2luY2Ugd2XigJlyZSBvbiB0aGUgdG9waWMuLi4mcXVvdDsgJnF1b3Q7em9sa2tRb2xra0pvbGtrdW9sa2tXb2xra1hvbGtrT29sa2tUb2xra0ZvbGtrWm9sa2tlb2xra05vbGtraW9sa2tob2xra3JvbGtrcCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgdGVsbCBtZSwgc2luY2Ugd2XigJlyZSBvbiB0aGUgdG9waWMuLi4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0J1dCB0ZWxsIG1lLCBzaW5jZSB3ZeKAmXJlIG9uIHRoZSB0b3BpYy4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SG93IG11Y2ggb2YgYSBzbHV0IGRvIHlvdSB3YW50IG1lIHRvIGJlIGF0IHRoZSBuaWdodGNsdWIgdG9uaWdodD8mcXVvdDsgJnF1b3Q7Um9sa2ttb2xra3NvbGtrSm9sa2tab2xra0dvbGtrR29sa2tRb2xra3FvbGtrRG9sa2tyb2xra25vbGtrVm9sa2tvb2xra0JvbGtreSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIb3cgbXVjaCBvZiBhIHNsdXQgZG8geW91IHdhbnQgbWUgdG8gYmUgYXQgdGhlIG5pZ2h0Y2x1YiB0b25pZ2h0PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SG93IG11Y2ggb2YgYSBzbHV0IGRvIHlvdSB3YW50IG1lIHRvIGJlIGF0IHRoZSBuaWdodGNsdWIgdG9uaWdodD8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1dl4oCZcmUgZ29pbmcgb3V0IHdpdGggdGhlIGdpcmxzLCByZW1lbWJlcj8mcXVvdDsgJnF1b3Q7b29sa2tab2xra3dvbGtreG9sa2tBb2xra1hvbGtrTW9sa2tPb2xra2hvbGtrVG9sa2t0b2xra01vbGtrQW9sa2tBb2xra3ZvbGtrbCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZeKAmXJlIGdvaW5nIG91dCB3aXRoIHRoZSBnaXJscywgcmVtZW1iZXI/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtXZeKAmXJlIGdvaW5nIG91dCB3aXRoIHRoZSBnaXJscywgcmVtZW1iZXI/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7bG9sa2tNb2xra1VvbGtrY29sa2tNb2xra09vbGtrUm9sa2tBJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA1LjFzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNsb2xra01vbGtrVW9sa2tjb2xra01vbGtrT29sa2tSb2xra0EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtPaCwgdGhhdOKAmXMgcmlnaHQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8yXzIwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7T2gsIHRoYXTigJlzIHJpZ2h0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzJfMjAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjM0IiBuYW1lPSJBbm5pZUNoYXRFcDRfMl85YiIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDI5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8yXzliJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RoZXJl4oCZcyBubyBuZWVkIGZvciB5b3UgdG8gYmUgd2l0aCBzb21lb25lIHlvdSBkb27igJl0IGxpa2UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGVyZeKAmXMgbm8gbmVlZCBmb3IgeW91IHRvIGJlIHdpdGggc29tZW9uZSB5b3UgZG9u4oCZdCBsaWtlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUaGVyZeKAmXMgbm8gbmVlZCBmb3IgeW91IHRvIGJlIHdpdGggc29tZW9uZSB5b3UgZG9u4oCZdCBsaWtlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0FoLCBva2F5JnF1b3Q7ICZxdW90O0dvbGtrTW9sa2tjb2xra29vbGtrUW9sa2t2b2xra1hvbGtrd29sa2tHb2xra1JvbGtra29sa2twb2xra0hvbGtrcm9sa2tub2xra1ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QWgsIG9rYXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0FoLCBva2F5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtUaGF04oCZcyBhIHJlbGllZiZxdW90OyAmcXVvdDtZb2xra05vbGtrRm9sa2tob2xra0VvbGtrdW9sa2tBb2xra1dvbGtrSG9sa2t6b2xra1VvbGtrc29sa2tkb2xra2ZvbGtrZG9sa2tOJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYXTigJlzIGEgcmVsaWVmJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUaGF04oCZcyBhIHJlbGllZiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBkb27igJl0IHRoaW5rIEkgY291bGQgYmUgd2l0aCBhIGd1eSBsaWtlIHRoZSBvbmUgZnJvbSBlYXJsaWVyJnF1b3Q7ICZxdW90O3BvbGtram9sa2t0b2xra2VvbGtrZW9sa2t4b2xra2dvbGtraW9sa2tBb2xra2JvbGtraG9sa2tWb2xra01vbGtrUW9sa2tVb2xra0EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBkb27igJl0IHRoaW5rIEkgY291bGQgYmUgd2l0aCBhIGd1eSBsaWtlIHRoZSBvbmUgZnJvbSBlYXJsaWVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGRvbuKAmXQgdGhpbmsgSSBjb3VsZCBiZSB3aXRoIGEgZ3V5IGxpa2UgdGhlIG9uZSBmcm9tIGVhcmxpZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtXb2xra3RvbGtrTm9sa2tLb2xra0RvbGtrUm9sa2tYb2xra00mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuMHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1dvbGtrdG9sa2tOb2xra0tvbGtrRG9sa2tSb2xra1hvbGtrTSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1llYWgsIGRvbuKAmXQgd29ycnkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8yXzEwYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1llYWgsIGRvbuKAmXQgd29ycnkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfMl8xMGImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjM1IiBuYW1lPSJBbm5pZUNoYXRFcDRfMl8xMGIiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCwyOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfMl8xMGImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WWVhaCwgZG9u4oCZdCB3b3JyeSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1llYWgsIGRvbuKAmXQgd29ycnkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1llYWgsIGRvbuKAmXQgd29ycnkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Rm9sa2tWb2xra25vbGtrTm9sa2tCb2xra3VvbGtrWm9sa2twJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNGb2xra1ZvbGtrbm9sa2tOb2xra0JvbGtrdW9sa2tab2xra3AmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtXZeKAmXJlIG5vdCBnb2luZyB0byBkbyBhbnl0aGluZyB5b3UgZG9u4oCZdCB3YW50IHRvJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfMl8xMWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXZeKAmXJlIG5vdCBnb2luZyB0byBkbyBhbnl0aGluZyB5b3UgZG9u4oCZdCB3YW50IHRvJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzJfMTFiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIzNiIgbmFtZT0iQW5uaWVDaGF0RXA0XzJfMTFiIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsMjk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzJfMTFiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1dl4oCZcmUgbm90IGdvaW5nIHRvIGRvIGFueXRoaW5nIHlvdSBkb27igJl0IHdhbnQgdG8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZeKAmXJlIG5vdCBnb2luZyB0byBkbyBhbnl0aGluZyB5b3UgZG9u4oCZdCB3YW50IHRvJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtXZeKAmXJlIG5vdCBnb2luZyB0byBkbyBhbnl0aGluZyB5b3UgZG9u4oCZdCB3YW50IHRvJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0J1dCB0ZWxsIG1lLCBzaW5jZSB3ZeKAmXJlIG9uIHRoZSB0b3BpYy4uLiZxdW90OyAmcXVvdDtub2xra29vbGtrV29sa2tub2xra0FvbGtrVG9sa2tLb2xra0JvbGtrVG9sa2tJb2xra2lvbGtrZ29sa2tJb2xra3JvbGtrdW9sa2tPJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCB0ZWxsIG1lLCBzaW5jZSB3ZeKAmXJlIG9uIHRoZSB0b3BpYy4uLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QnV0IHRlbGwgbWUsIHNpbmNlIHdl4oCZcmUgb24gdGhlIHRvcGljLi4uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS41cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtIb3cgbXVjaCBvZiBhIHNsdXQgZG8geW91IHdhbnQgbWUgdG8gYmUgYXQgdGhlIG5pZ2h0Y2x1YiB0b25pZ2h0PyZxdW90OyAmcXVvdDt6b2xra1VvbGtrUW9sa2tFb2xra0tvbGtrTm9sa2tHb2xra0ZvbGtrb29sa2tPb2xra2ZvbGtrVm9sa2tlb2xra1hvbGtrT29sa2tkJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvdyBtdWNoIG9mIGEgc2x1dCBkbyB5b3Ugd2FudCBtZSB0byBiZSBhdCB0aGUgbmlnaHRjbHViIHRvbmlnaHQ/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIb3cgbXVjaCBvZiBhIHNsdXQgZG8geW91IHdhbnQgbWUgdG8gYmUgYXQgdGhlIG5pZ2h0Y2x1YiB0b25pZ2h0PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjhzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7V2XigJlyZSBnb2luZyBvdXQgd2l0aCB0aGUgZ2lybHMsIHJlbWVtYmVyPyZxdW90OyAmcXVvdDt0b2xra01vbGtraW9sa2tjb2xra0JvbGtrUW9sa2tEb2xra2VvbGtrZ29sa2ttb2xra2RvbGtrT29sa2tCb2xra3VvbGtrbG9sa2twJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dl4oCZcmUgZ29pbmcgb3V0IHdpdGggdGhlIGdpcmxzLCByZW1lbWJlcj8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1dl4oCZcmUgZ29pbmcgb3V0IHdpdGggdGhlIGdpcmxzLCByZW1lbWJlcj8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtrb2xra1BvbGtrT29sa2tSb2xra1ZvbGtrbG9sa2thb2xra3cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDUuMXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2tvbGtrUG9sa2tPb2xra1JvbGtrVm9sa2tsb2xra2FvbGtrdyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O09oLCB0aGF04oCZcyByaWdodCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzJfMjAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtPaCwgdGhhdOKAmXMgcmlnaHQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfMl8yMCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMzciIG5hbWU9IkFubmllQ2hhdEVwNF8yXzIwIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMjk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzJfMjAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7T2gsIHRoYXTigJlzIHJpZ2h0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2gsIHRoYXTigJlzIHJpZ2h0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtPaCwgdGhhdOKAmXMgcmlnaHQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7cW9sa2tab2xra0VvbGtrYW9sa2tFb2xra0tvbGtram9sa2tqJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNxb2xra1pvbGtrRW9sa2thb2xra0VvbGtrS29sa2tqb2xra2omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtBcyBtdWNoIG9mIGEgc2x1dCBhcyBwb3NzaWJsZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzJfMjFhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QXMgbXVjaCBvZiBhIHNsdXQgYXMgcG9zc2libGUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfMl8yMWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjcW9sa2tab2xra0VvbGtrYW9sa2tFb2xra0tvbGtram9sa2tqJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SG93ZXZlciB5b3UgZmVlbCBjb21mb3J0YWJsZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzJfMjFiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SG93ZXZlciB5b3UgZmVlbCBjb21mb3J0YWJsZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8yXzIxYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyMzgiIG5hbWU9IkFubmllQ2hhdEVwNF8yXzIxYSIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDI5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8yXzIxYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtBcyBtdWNoIG9mIGEgc2x1dCBhcyBwb3NzaWJsZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FzIG11Y2ggb2YgYSBzbHV0IGFzIHBvc3NpYmxlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtBcyBtdWNoIG9mIGEgc2x1dCBhcyBwb3NzaWJsZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkYW5uaWVfbGV3ZCA9ICRhbm5pZV9sZXdkKzEmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Ym9sa2tnb2xra1RvbGtrem9sa2twb2xra1NvbGtraW9sa2trJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNib2xra2dvbGtrVG9sa2t6b2xra3BvbGtrU29sa2tpb2xra2smcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIHdhbnQgZXZlcnlvbmUgYXQgdGhhdCBuaWdodGNsdWIgdG8ga25vdyBob3cgZWFzeSB5b3UgYXJlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfMl8yMmEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIHdhbnQgZXZlcnlvbmUgYXQgdGhhdCBuaWdodGNsdWIgdG8ga25vdyBob3cgZWFzeSB5b3UgYXJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzJfMjJhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjIzOSIgbmFtZT0iQW5uaWVDaGF0RXA0XzJfMjJhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDI5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8yXzIyYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIHdhbnQgZXZlcnlvbmUgYXQgdGhhdCBuaWdodGNsdWIgdG8ga25vdyBob3cgZWFzeSB5b3UgYXJlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB3YW50IGV2ZXJ5b25lIGF0IHRoYXQgbmlnaHRjbHViIHRvIGtub3cgaG93IGVhc3kgeW91IGFyZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSB3YW50IGV2ZXJ5b25lIGF0IHRoYXQgbmlnaHRjbHViIHRvIGtub3cgaG93IGVhc3kgeW91IGFyZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtZb3Uga25vdywgeW914oCZcmUgdHVybmluZyBtZSBvbiZxdW90OyAmcXVvdDtVb2xra0lvbGtrWW9sa2tTb2xra3ZvbGtrZm9sa2trb2xra05vbGtrc29sa2tzb2xra2lvbGtrdm9sa2tUb2xra1hvbGtreG9sa2tMJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBrbm93LCB5b3XigJlyZSB0dXJuaW5nIG1lIG9uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtZb3Uga25vdywgeW914oCZcmUgdHVybmluZyBtZSBvbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjVzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX3hkLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV94ZC53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgCgombHQ7ZGl2IGlkPSZxdW90O2VvbGtrS29sa2tVb2xra0pvbGtrcW9sa2tjb2xra1lvbGtrYyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi41cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjZW9sa2tLb2xra1VvbGtrSm9sa2txb2xra2NvbGtrWW9sa2tjJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q78J+YjyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzJfMjNhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q78J+YjyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8yXzIzYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNDAiIG5hbWU9IkFubmllQ2hhdEVwNF8yXzIzYSIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSwyOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfMl8yM2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9jb25maWRlbmNlLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2NvbmZpZGVuY2Uud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgIAogICAgJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SGV5LCBhZnRlciB3b3JrLCB3ZeKAmXJlIGdvaW5nIHRvIGEgY2xvdGhpbmcgc3RvcmUgd2l0aCB0aGUgZ2lybHMmcXVvdDsgJnF1b3Q7SG9sa2tRb2xra3NvbGtrTG9sa2tIb2xra3pvbGtreW9sa2tlb2xra2lvbGtra29sa2tRb2xra0JvbGtrWm9sa2tWb2xra0hvbGtraiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZXksIGFmdGVyIHdvcmssIHdl4oCZcmUgZ29pbmcgdG8gYSBjbG90aGluZyBzdG9yZSB3aXRoIHRoZSBnaXJscyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SGV5LCBhZnRlciB3b3JrLCB3ZeKAmXJlIGdvaW5nIHRvIGEgY2xvdGhpbmcgc3RvcmUgd2l0aCB0aGUgZ2lybHMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJlsbCB0ZXh0IHlvdSBzbyB5b3UgY2FuIGhlbHAgbWUgcGljayBvdXQgYSBkcmVzcyBmb3IgdG9uaWdodCZxdW90OyAmcXVvdDtmb2xra1FvbGtrUW9sa2tYb2xra3ZvbGtrSm9sa2txb2xra21vbGtrWG9sa2tpb2xra0VvbGtrc29sa2tBb2xra0tvbGtrR29sa2tCJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJlsbCB0ZXh0IHlvdSBzbyB5b3UgY2FuIGhlbHAgbWUgcGljayBvdXQgYSBkcmVzcyBmb3IgdG9uaWdodCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmWxsIHRleHQgeW91IHNvIHlvdSBjYW4gaGVscCBtZSBwaWNrIG91dCBhIGRyZXNzIGZvciB0b25pZ2h0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7VW9sa2t4b2xra2RvbGtraG9sa2tzb2xra1pvbGtrdm9sa2tHJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjhzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNVb2xra3hvbGtrZG9sa2tob2xra3NvbGtrWm9sa2t2b2xra0cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtTb3VuZHMgZ29vZCwgSeKAmWxsIGJlIHdhaXRpbmcgZm9yIHlvdXIgbWVzc2FnZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzJfMzAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtTb3VuZHMgZ29vZCwgSeKAmWxsIGJlIHdhaXRpbmcgZm9yIHlvdXIgbWVzc2FnZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8yXzMwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI0MSIgbmFtZT0iQW5uaWVDaGF0RXA0XzJfMzAiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCwzMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfMl8zMCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtTb3VuZHMgZ29vZCwgSeKAmWxsIGJlIHdhaXRpbmcgZm9yIHlvdXIgbWVzc2FnZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1NvdW5kcyBnb29kLCBJ4oCZbGwgYmUgd2FpdGluZyBmb3IgeW91ciBtZXNzYWdlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtTb3VuZHMgZ29vZCwgSeKAmWxsIGJlIHdhaXRpbmcgZm9yIHlvdXIgbWVzc2FnZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4xcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtHcmVhdCZxdW90OyAmcXVvdDtYb2xra1lvbGtra29sa2tYb2xra3lvbGtrRW9sa2tob2xra3NvbGtrSm9sa2tvb2xra01vbGtrVG9sa2tsb2xra0dvbGtrc29sa2tuJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0dyZWF0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtHcmVhdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SG9uZXksIEnigJltIGFsbW9zdCBhdCB5b3VyIG9mZmljZSZxdW90OyAmcXVvdDtub2xra0dvbGtrUG9sa2t0b2xra3JvbGtrbW9sa2tDb2xra2lvbGtrd29sa2tDb2xra3RvbGtrem9sa2t4b2xra3NvbGtrWm9sa2tFJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvbmV5LCBJ4oCZbSBhbG1vc3QgYXQgeW91ciBvZmZpY2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hvbmV5LCBJ4oCZbSBhbG1vc3QgYXQgeW91ciBvZmZpY2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4ycyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0xldOKAmXMgdGFsayBsYXRlciZxdW90OyAmcXVvdDtlb2xra3hvbGtrWm9sa2t6b2xra3dvbGtrZ29sa2tnb2xra2dvbGtrQW9sa2ttb2xra2dvbGtrWG9sa2tab2xra21vbGtrS29sa2tCJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0xldOKAmXMgdGFsayBsYXRlciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7TGV04oCZcyB0YWxrIGxhdGVyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7bm9sa2t2b2xra1JvbGtrUm9sa2t6b2xra2pvbGtram9sa2tuJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjFzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNub2xra3ZvbGtrUm9sa2tSb2xra3pvbGtram9sa2tqb2xra24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtPa2F5IGJhYmUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8yXzMxJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7T2theSBiYWJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzJfMzEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjQyIiBuYW1lPSJBbm5pZUNoYXRFcDRfMl8zMSIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDMxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8yXzMxJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O09rYXkgYmFiZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09rYXkgYmFiZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7T2theSBiYWJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1RoYW5rcyBhZ2FpbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgPSAmcXVvdDtBbm5pZUNoYXRFcDRfMl8zMSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0X2hvdXIgPSAmcXVvdDsxMjoxNyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkaG91ciA9ICZxdW90OzEyOjE3JnF1b3Q7Jmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtvZmZsaW5lLXRleHQmcXVvdDsmZ3Q7QW5uaWUgaXMgb2ZmbGluZSZsdDsvZGl2Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdCA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRTdGF0ZSA9ICZxdW90O1BoaWxsaXBzQ2hhdEVwNF8xXzEmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtZb3VyIGdpcmxmcmllbmQgaXMgZmFyIG1vcmUgcmVzcG9uc2libGUgdGhhbiB5b3UgYXJlLiZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNDMiIG5hbWU9IkFubmllQ2hhdEVwNF8yXzIxYiIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDMxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8yXzIxYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtIb3dldmVyIHlvdSBmZWVsIGNvbWZvcnRhYmxlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SG93ZXZlciB5b3UgZmVlbCBjb21mb3J0YWJsZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SG93ZXZlciB5b3UgZmVlbCBjb21mb3J0YWJsZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtrb2xra29vbGtrem9sa2tkb2xra3lvbGtrR29sa2tBb2xra0EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2tvbGtrb29sa2t6b2xra2RvbGtreW9sa2tHb2xra0FvbGtrQSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoZSBpZGVhLCBhcyB3ZeKAmXZlIHNhaWQsIGlzIHRvIHRha2UgaXQgc3RlcCBieSBzdGVwJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfMl8yMmImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaGUgaWRlYSwgYXMgd2XigJl2ZSBzYWlkLCBpcyB0byB0YWtlIGl0IHN0ZXAgYnkgc3RlcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8yXzIyYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNDQiIG5hbWU9IkFubmllQ2hhdEVwNF8yXzIyYiIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDMxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8yXzIyYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGUgaWRlYSwgYXMgd2XigJl2ZSBzYWlkLCBpcyB0byB0YWtlIGl0IHN0ZXAgYnkgc3RlcCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoZSBpZGVhLCBhcyB3ZeKAmXZlIHNhaWQsIGlzIHRvIHRha2UgaXQgc3RlcCBieSBzdGVwJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUaGUgaWRlYSwgYXMgd2XigJl2ZSBzYWlkLCBpcyB0byB0YWtlIGl0IHN0ZXAgYnkgc3RlcCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtGb2xra3NvbGtrQm9sa2t3b2xra1NvbGtrT29sa2t3b2xra2gmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0ZvbGtrc29sa2tCb2xra3dvbGtrU29sa2tPb2xra3dvbGtraCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O05vIG5lZWQgdG8gZ28gb3ZlcmJvYXJkIG9uIHRoZSBmaXJzdCBuaWdodCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzJfMjNiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7Tm8gbmVlZCB0byBnbyBvdmVyYm9hcmQgb24gdGhlIGZpcnN0IG5pZ2h0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzJfMjNiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI0NSIgbmFtZT0iQW5uaWVDaGF0RXA0XzJfMjNiIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsMzEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzJfMjNiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O05vIG5lZWQgdG8gZ28gb3ZlcmJvYXJkIG9uIHRoZSBmaXJzdCBuaWdodCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O05vIG5lZWQgdG8gZ28gb3ZlcmJvYXJkIG9uIHRoZSBmaXJzdCBuaWdodCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7Tm8gbmVlZCB0byBnbyBvdmVyYm9hcmQgb24gdGhlIGZpcnN0IG5pZ2h0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1RoYW5rcywgaG9uZXkmcXVvdDsgJnF1b3Q7aG9sa2tGb2xra3FvbGtraW9sa2thb2xra0JvbGtraG9sa2t6b2xra01vbGtra29sa2tNb2xra1JvbGtrZW9sa2t2b2xra01vbGtraiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGFua3MsIGhvbmV5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUaGFua3MsIGhvbmV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMXMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDttb2xra3VvbGtrS29sa2t5b2xra01vbGtrRG9sa2tzb2xra0omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuMXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I21vbGtrdW9sa2tLb2xra3lvbGtrTW9sa2tEb2xra3NvbGtrSiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O/CfmJwmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8yXzI0YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O/CfmJwmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfMl8yNGImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjQ2IiBuYW1lPSJBbm5pZUNoYXRFcDRfMl8yNGIiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwzMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfMl8yNGImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV93aW5rLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X3dpbmsud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgIAogICAgJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SGV5LCBhZnRlciB3b3JrLCB3ZeKAmXJlIGdvaW5nIHRvIGEgY2xvdGhpbmcgc3RvcmUgd2l0aCB0aGUgZ2lybHMmcXVvdDsgJnF1b3Q7am9sa2ttb2xra1RvbGtrR29sa2tGb2xra0JvbGtraG9sa2tkb2xra3VvbGtrSm9sa2tEb2xra2hvbGtrdG9sa2t1b2xra1hvbGtrWCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZXksIGFmdGVyIHdvcmssIHdl4oCZcmUgZ29pbmcgdG8gYSBjbG90aGluZyBzdG9yZSB3aXRoIHRoZSBnaXJscyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SGV5LCBhZnRlciB3b3JrLCB3ZeKAmXJlIGdvaW5nIHRvIGEgY2xvdGhpbmcgc3RvcmUgd2l0aCB0aGUgZ2lybHMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0nigJlsbCB0ZXh0IHlvdSBzbyB5b3UgY2FuIGhlbHAgbWUgcGljayBvdXQgYSBkcmVzcyBmb3IgdG9uaWdodCZxdW90OyAmcXVvdDt6b2xra0JvbGtreG9sa2t6b2xra0tvbGtrSW9sa2tsb2xra1VvbGtrdW9sa2tjb2xra2ZvbGtrZW9sa2tYb2xra1VvbGtrc29sa2tNJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJlsbCB0ZXh0IHlvdSBzbyB5b3UgY2FuIGhlbHAgbWUgcGljayBvdXQgYSBkcmVzcyBmb3IgdG9uaWdodCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmWxsIHRleHQgeW91IHNvIHlvdSBjYW4gaGVscCBtZSBwaWNrIG91dCBhIGRyZXNzIGZvciB0b25pZ2h0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7S29sa2ttb2xra0ZvbGtrcW9sa2t5b2xra1FvbGtraG9sa2t3JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjhzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNLb2xra21vbGtrRm9sa2txb2xra3lvbGtrUW9sa2tob2xra3cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtTb3VuZHMgZ29vZCwgSeKAmWxsIGJlIHdhaXRpbmcgZm9yIHlvdXIgbWVzc2FnZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzJfMzAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtTb3VuZHMgZ29vZCwgSeKAmWxsIGJlIHdhaXRpbmcgZm9yIHlvdXIgbWVzc2FnZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8yXzMwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI0NyIgbmFtZT0iQW5uaWVDaGF0RXA0XzNfMSIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDMxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7SG9sa2tjb2xra3hvbGtrbG9sa2tHb2xra0hvbGtrVW9sa2twJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjSG9sa2tjb2xra3hvbGtrbG9sa2tHb2xra0hvbGtrVW9sa2twJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SGV5LCBldmVyeXRoaW5nIG9rYXk/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfM18yJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SGV5LCBldmVyeXRoaW5nIG9rYXk/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzNfMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI0OCIgbmFtZT0iQW5uaWVDaGF0RXA0XzNfMiIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDMxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8zXzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SGV5LCBldmVyeXRoaW5nIG9rYXk/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGV5LCBldmVyeXRoaW5nIG9rYXk/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIZXksIGV2ZXJ5dGhpbmcgb2theT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7em9sa2tyb2xra2JvbGtrQ29sa2tPb2xra0pvbGtrV29sa2tHJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN6b2xra3JvbGtrYm9sa2tDb2xra09vbGtrSm9sa2tXb2xra0cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtNeSBib3NzIHRleHRlZCBtZSwgYW5kIGhlIHdhcyBhY3Rpbmcgd2VpcmQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8zXzMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtNeSBib3NzIHRleHRlZCBtZSwgYW5kIGhlIHdhcyBhY3Rpbmcgd2VpcmQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfM18zJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI0OSIgbmFtZT0iQW5uaWVDaGF0RXA0XzNfMyIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwzMTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfM18zJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O015IGJvc3MgdGV4dGVkIG1lLCBhbmQgaGUgd2FzIGFjdGluZyB3ZWlyZCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O015IGJvc3MgdGV4dGVkIG1lLCBhbmQgaGUgd2FzIGFjdGluZyB3ZWlyZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7TXkgYm9zcyB0ZXh0ZWQgbWUsIGFuZCBoZSB3YXMgYWN0aW5nIHdlaXJkJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0VvbGtrVG9sa2tKb2xra1NvbGtraG9sa2tpb2xra01vbGtrYiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjRW9sa2tUb2xra0pvbGtrU29sa2tob2xra2lvbGtrTW9sa2tiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSB0aGluayBmb3Igb25jZSBoZSB3YXMga2luZCBvZiBuaWNlLWlzaCB0byBtZSxvciB0byB5b3UuLi4mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8zXzQmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIHRoaW5rIGZvciBvbmNlIGhlIHdhcyBraW5kIG9mIG5pY2UtaXNoIHRvIG1lLG9yIHRvIHlvdS4uLiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8zXzQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjUwIiBuYW1lPSJBbm5pZUNoYXRFcDRfM180IiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDMxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8zXzQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSB0aGluayBmb3Igb25jZSBoZSB3YXMga2luZCBvZiBuaWNlLWlzaCB0byBtZSxvciB0byB5b3UuLi4mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHRoaW5rIGZvciBvbmNlIGhlIHdhcyBraW5kIG9mIG5pY2UtaXNoIHRvIG1lLG9yIHRvIHlvdS4uLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSB0aGluayBmb3Igb25jZSBoZSB3YXMga2luZCBvZiBuaWNlLWlzaCB0byBtZSxvciB0byB5b3UuLi4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7SG9sa2tkb2xra3FvbGtrQW9sa2tvb2xra1hvbGtrWm9sa2tmJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNIb2xra2RvbGtrcW9sa2tBb2xra29vbGtrWG9sa2tab2xra2YmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGRpZG7igJl0IHJlYWxseSBnZXQgaXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8zXzUmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGRpZG7igJl0IHJlYWxseSBnZXQgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfM181JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI1MSIgbmFtZT0iQW5uaWVDaGF0RXA0XzNfNSIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDMyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8zXzUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBkaWRu4oCZdCByZWFsbHkgZ2V0IGl0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBkaWRu4oCZdCByZWFsbHkgZ2V0IGl0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIGRpZG7igJl0IHJlYWxseSBnZXQgaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7RW9sa2tOb2xra0VvbGtraW9sa2tDb2xra1JvbGtrcm9sa2tzJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNFb2xra05vbGtrRW9sa2tpb2xra0NvbGtrUm9sa2tyb2xra3MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtXaGF0IGhhcHBlbmVkPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzNfNiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1doYXQgaGFwcGVuZWQ/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzNfNiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNTIiIG5hbWU9IkFubmllQ2hhdEVwNF8zXzYiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSwzMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfM182JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1doYXQgaGFwcGVuZWQ/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2hhdCBoYXBwZW5lZD8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1doYXQgaGFwcGVuZWQ/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0hleSBob25leSZxdW90OyAmcXVvdDtEb2xra3BvbGtrS29sa2t2b2xra1JvbGtrUG9sa2tib2xra1NvbGtrVW9sa2txb2xra0dvbGtrRm9sa2tUb2xra2RvbGtrbW9sa2tCJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hleSBob25leSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SGV5IGhvbmV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMi41cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtXaGVuIEkgZ290IHRvIHRoZSBsb2JieSBvZiB0aGUgYnVpbGRpbmcsIEkgd2FzIGFib3V0IHRvIHRleHQgSGFpbGV5LCBidXQgdGhlIHJlY2VwdGlvbmlzdCBhc2tlZCBtZSBmaXJzdCB3aHkgSSB3YXMgdGhlcmUmcXVvdDsgJnF1b3Q7eW9sa2t0b2xra0tvbGtrQm9sa2t6b2xra0lvbGtraG9sa2tMb2xra0pvbGtrUm9sa2tkb2xra0pvbGtraG9sa2tOb2xra3ZvbGtrRCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXaGVuIEkgZ290IHRvIHRoZSBsb2JieSBvZiB0aGUgYnVpbGRpbmcsIEkgd2FzIGFib3V0IHRvIHRleHQgSGFpbGV5LCBidXQgdGhlIHJlY2VwdGlvbmlzdCBhc2tlZCBtZSBmaXJzdCB3aHkgSSB3YXMgdGhlcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1doZW4gSSBnb3QgdG8gdGhlIGxvYmJ5IG9mIHRoZSBidWlsZGluZywgSSB3YXMgYWJvdXQgdG8gdGV4dCBIYWlsZXksIGJ1dCB0aGUgcmVjZXB0aW9uaXN0IGFza2VkIG1lIGZpcnN0IHdoeSBJIHdhcyB0aGVyZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDIuNXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QW5kIGl0IHR1cm5zIG91dCB5b3VyIGJvc3Mgd2FzIGp1c3Qgd2Fsa2luZyBpbiwgc28gc2hlIHRvbGQgaGltIEkgd2FzIHRoZXJlIHRvIGRyb3Agb2ZmIHNvbWUgZmlsZXMgaW4gaGlzIG9mZmljZSZxdW90OyAmcXVvdDtPb2xra1dvbGtrRW9sa2tDb2xra1ZvbGtrem9sa2tHb2xra1RvbGtrZ29sa2tsb2xra3NvbGtrem9sa2trb2xra05vbGtrWG9sa2tYJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FuZCBpdCB0dXJucyBvdXQgeW91ciBib3NzIHdhcyBqdXN0IHdhbGtpbmcgaW4sIHNvIHNoZSB0b2xkIGhpbSBJIHdhcyB0aGVyZSB0byBkcm9wIG9mZiBzb21lIGZpbGVzIGluIGhpcyBvZmZpY2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0FuZCBpdCB0dXJucyBvdXQgeW91ciBib3NzIHdhcyBqdXN0IHdhbGtpbmcgaW4sIHNvIHNoZSB0b2xkIGhpbSBJIHdhcyB0aGVyZSB0byBkcm9wIG9mZiBzb21lIGZpbGVzIGluIGhpcyBvZmZpY2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNy4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1NvIHdlIGNoYXR0ZWQgZm9yIGEgYml0JnF1b3Q7ICZxdW90O0RvbGtrbW9sa2tEb2xra0FvbGtrR29sa2t4b2xra3NvbGtrZW9sa2tlb2xra1NvbGtrTW9sa2t2b2xra2VvbGtrTm9sa2tnb2xra3kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U28gd2UgY2hhdHRlZCBmb3IgYSBiaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1NvIHdlIGNoYXR0ZWQgZm9yIGEgYml0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7UW9sa2tYb2xra25vbGtrd29sa2tIb2xra3BvbGtreG9sa2tVJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA4LjVzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNRb2xra1hvbGtrbm9sa2t3b2xra0hvbGtrcG9sa2t4b2xra1UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIHNlZSwgc291bmRzIGxpa2UgeW91IG1hZGUgYSBnb29kIGltcHJlc3Npb24mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8zXzcmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIHNlZSwgc291bmRzIGxpa2UgeW91IG1hZGUgYSBnb29kIGltcHJlc3Npb24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfM183JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI1MyIgbmFtZT0iQW5uaWVDaGF0RXA0XzNfNyIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDMyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8zXzcmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBzZWUsIHNvdW5kcyBsaWtlIHlvdSBtYWRlIGEgZ29vZCBpbXByZXNzaW9uJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBzZWUsIHNvdW5kcyBsaWtlIHlvdSBtYWRlIGEgZ29vZCBpbXByZXNzaW9uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIHNlZSwgc291bmRzIGxpa2UgeW91IG1hZGUgYSBnb29kIGltcHJlc3Npb24mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7V2VsbCwgaGUgd2FzIHJlYWxseSBuaWNlIHRvIG1lJnF1b3Q7ICZxdW90O0JvbGtraG9sa2tib2xra0JvbGtrUm9sa2t1b2xra1NvbGtraG9sa2tNb2xra3dvbGtrTW9sa2tyb2xra21vbGtra29sa2tJb2xra2MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2VsbCwgaGUgd2FzIHJlYWxseSBuaWNlIHRvIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtXZWxsLCBoZSB3YXMgcmVhbGx5IG5pY2UgdG8gbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0hlIGFsc28gc2FpZCByZWRoZWFkcyBhcmUgdGhlIGNsb3Nlc3QgdGhpbmcgdG8gZ29kZGVzc2VzIG9uIEVhcnRoJnF1b3Q7ICZxdW90O3hvbGtrT29sa2tGb2xra2VvbGtrU29sa2tXb2xra3FvbGtreG9sa2tLb2xra2dvbGtrRm9sa2tVb2xra05vbGtrU29sa2tvb2xra1gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGUgYWxzbyBzYWlkIHJlZGhlYWRzIGFyZSB0aGUgY2xvc2VzdCB0aGluZyB0byBnb2RkZXNzZXMgb24gRWFydGgmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hlIGFsc28gc2FpZCByZWRoZWFkcyBhcmUgdGhlIGNsb3Nlc3QgdGhpbmcgdG8gZ29kZGVzc2VzIG9uIEVhcnRoJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7aG9sa2tRb2xra1hvbGtrTm9sa2tGb2xra2JvbGtrVm9sa2thJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjRzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNob2xra1FvbGtrWG9sa2tOb2xra0ZvbGtrYm9sa2tWb2xra2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtPaCwgSSBzZWUuJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfM184JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7T2gsIEkgc2VlLiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8zXzgmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjU0IiBuYW1lPSJBbm5pZUNoYXRFcDRfM184IiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMzIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzNfOCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtPaCwgSSBzZWUuJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2gsIEkgc2VlLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7T2gsIEkgc2VlLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt4b2xra1lvbGtrZG9sa2tTb2xra1VvbGtrdW9sa2tUb2xra0MmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3hvbGtrWW9sa2tkb2xra1NvbGtrVW9sa2t1b2xra1RvbGtrQyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1NvIGhlIHdhcyBjaGVja2luZyB5b3Ugb3V0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfM185JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7U28gaGUgd2FzIGNoZWNraW5nIHlvdSBvdXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfM185JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI1NSIgbmFtZT0iQW5uaWVDaGF0RXA0XzNfOSIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDMyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8zXzkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7U28gaGUgd2FzIGNoZWNraW5nIHlvdSBvdXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTbyBoZSB3YXMgY2hlY2tpbmcgeW91IG91dCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7U28gaGUgd2FzIGNoZWNraW5nIHlvdSBvdXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBkb27igJl0IGtub3csIEkgd291bGRu4oCZdCBzYXkgdGhhdCZxdW90OyAmcXVvdDtXb2xra1RvbGtrYm9sa2ttb2xra2pvbGtrRG9sa2t2b2xra2VvbGtrbW9sa2t0b2xra3JvbGtra29sa2tzb2xra0lvbGtrYm9sa2tVJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZG9u4oCZdCBrbm93LCBJIHdvdWxkbuKAmXQgc2F5IHRoYXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgZG9u4oCZdCBrbm93LCBJIHdvdWxkbuKAmXQgc2F5IHRoYXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0hlIHdhcyBqdXN0IGJlaW5nIGZyaWVuZGx5JnF1b3Q7ICZxdW90O1VvbGtrUm9sa2tDb2xra2FvbGtrQm9sa2tib2xra1JvbGtrd29sa2tnb2xra3hvbGtrTG9sa2tMb2xra1JvbGtrcW9sa2tTb2xra1QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGUgd2FzIGp1c3QgYmVpbmcgZnJpZW5kbHkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hlIHdhcyBqdXN0IGJlaW5nIGZyaWVuZGx5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7RG9sa2tjb2xra2VvbGtrS29sa2t4b2xra3VvbGtrdm9sa2tHJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjdzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNEb2xra2NvbGtrZW9sa2tLb2xra3hvbGtrdW9sa2t2b2xra0cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtGcmllbmRseT8gVGhhdCBndXk/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfM18xMCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0ZyaWVuZGx5PyBUaGF0IGd1eT8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfM18xMCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNTYiIG5hbWU9IkFubmllQ2hhdEVwNF8zXzEwIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsMzIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzNfMTAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7RnJpZW5kbHk/IFRoYXQgZ3V5PyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0ZyaWVuZGx5PyBUaGF0IGd1eT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0ZyaWVuZGx5PyBUaGF0IGd1eT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7eG9sa2tUb2xra0pvbGtrbW9sa2tHb2xra0FvbGtrRm9sa2tuJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyN4b2xra1RvbGtrSm9sa2ttb2xra0dvbGtrQW9sa2tGb2xra24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZZWFoLCByaWdodC4uLiZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzNfMTEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZZWFoLCByaWdodC4uLiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8zXzExJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI1NyIgbmFtZT0iQW5uaWVDaGF0RXA0XzNfMTEiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCwzMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfM18xMSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZZWFoLCByaWdodC4uLiZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1llYWgsIHJpZ2h0Li4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtZZWFoLCByaWdodC4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtQb2xra0NvbGtrUm9sa2t3b2xra3dvbGtrY29sa2t1b2xra3MmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1BvbGtrQ29sa2tSb2xra3dvbGtrd29sa2tjb2xra3VvbGtrcyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0hlIHByb2JhYmx5IGp1c3Qgd2FudGVkIHRvIGZ1Y2sgeW91JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfM18xMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0hlIHByb2JhYmx5IGp1c3Qgd2FudGVkIHRvIGZ1Y2sgeW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzNfMTImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjU4IiBuYW1lPSJBbm5pZUNoYXRFcDRfM18xMiIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDMyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8zXzEyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0hlIHByb2JhYmx5IGp1c3Qgd2FudGVkIHRvIGZ1Y2sgeW91JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGUgcHJvYmFibHkganVzdCB3YW50ZWQgdG8gZnVjayB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hlIHByb2JhYmx5IGp1c3Qgd2FudGVkIHRvIGZ1Y2sgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1lvdSBzb3VuZCBhbmdyeSZxdW90OyAmcXVvdDtQb2xra1lvbGtrdG9sa2tmb2xra2NvbGtrTW9sa2tTb2xra0tvbGtrWm9sa2tjb2xra0JvbGtrc29sa2trb2xra0xvbGtrQW9sa2tZJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBzb3VuZCBhbmdyeSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW91IHNvdW5kIGFuZ3J5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJc27igJl0IHRoYXQgd2hhdCB5b3Ugd2FudD8mcXVvdDsgJnF1b3Q7aW9sa2tmb2xra1lvbGtrbm9sa2t1b2xra1ZvbGtraG9sa2tFb2xra1lvbGtrc29sa2t0b2xra1hvbGtrcm9sa2trb2xra2dvbGtrTSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJc27igJl0IHRoYXQgd2hhdCB5b3Ugd2FudD8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0lzbuKAmXQgdGhhdCB3aGF0IHlvdSB3YW50PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1RvbGtrUW9sa2tCb2xra3BvbGtrTm9sa2tob2xra2hvbGtrbCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjVG9sa2tRb2xra0JvbGtrcG9sa2tOb2xra2hvbGtraG9sa2tsJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7V2VsbCwgaXTigJlzIHRydWUuJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfM18xM2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXZWxsLCBpdOKAmXMgdHJ1ZS4mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfM18xM2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjVG9sa2tRb2xra0JvbGtrcG9sa2tOb2xra2hvbGtraG9sa2tsJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7Tm8sIG5vdCB0aGF0IG9sZCBndXkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8zXzEzYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O05vLCBub3QgdGhhdCBvbGQgZ3V5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzNfMTNiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI1OSIgbmFtZT0iQW5uaWVDaGF0RXA0XzNfMTNhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDMyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8zXzEzYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtXZWxsLCBpdOKAmXMgdHJ1ZS4mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZWxsLCBpdOKAmXMgdHJ1ZS4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1dlbGwsIGl04oCZcyB0cnVlLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkcGhpbGxpcHNfdGFzdGUgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfbm90ZXMucHVzaCgmcXVvdDt0b2xkIGhlciB0aGF0IEkgZm91bmQgdGhlIHBvc3NpYmlsaXR5IG9mIGhlciBmdWNraW5nIG15IGJvc3MgaW50ZXJlc3RpbmcuJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7bm9sa2tTb2xra0VvbGtrR29sa2tBb2xra1dvbGtrV29sa2tyJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNub2xra1NvbGtrRW9sa2tHb2xra0FvbGtrV29sa2tXb2xra3ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJdOKAmXMganVzdCB0aGF0IHRoYXQgb2xkIGd1eSBzdGlycyBzb21ldGhpbmcgaW4gbWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8zXzE0YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0l04oCZcyBqdXN0IHRoYXQgdGhhdCBvbGQgZ3V5IHN0aXJzIHNvbWV0aGluZyBpbiBtZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8zXzE0YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNjAiIG5hbWU9IkFubmllQ2hhdEVwNF8zXzEzYiIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSwzMjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfM18xM2ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7Tm8sIG5vdCB0aGF0IG9sZCBndXkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtObywgbm90IHRoYXQgb2xkIGd1eSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7Tm8sIG5vdCB0aGF0IG9sZCBndXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9ub3Rlcy5wdXNoKCZxdW90O0kgbWFkZSBpdCBjbGVhciB0aGF0IEkgd291bGRu4oCZdCBsaWtlIGl0IGF0IGFsbCBpZiBteSBib3NzIGZ1Y2tlZCBoZXIsIEkgY2Fu4oCZdCBzdGFuZCB0aGF0IGd1eS4mcXVvdDspJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkcGhpbGxpcHNfdGFzdGUgPSBmYWxzZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtBb2xra2tvbGtrSm9sa2trb2xra0NvbGtrZ29sa2tab2xra2cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0FvbGtra29sa2tKb2xra2tvbGtrQ29sa2tnb2xra1pvbGtrZyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgaGF0ZSBoaW0sIGhlIGRvZXNu4oCZdCBkZXNlcnZlIHRvIHRvdWNoIG15IGdpcmwmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8zXzE0YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgaGF0ZSBoaW0sIGhlIGRvZXNu4oCZdCBkZXNlcnZlIHRvIHRvdWNoIG15IGdpcmwmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfM18xNGImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjYxIiBuYW1lPSJBbm5pZUNoYXRFcDRfM18xNGEiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCwzMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfM18xNGEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SXTigJlzIGp1c3QgdGhhdCB0aGF0IG9sZCBndXkgc3RpcnMgc29tZXRoaW5nIGluIG1lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXTigJlzIGp1c3QgdGhhdCB0aGF0IG9sZCBndXkgc3RpcnMgc29tZXRoaW5nIGluIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJdOKAmXMganVzdCB0aGF0IHRoYXQgb2xkIGd1eSBzdGlycyBzb21ldGhpbmcgaW4gbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Rm9sa2t1b2xra3RvbGtreW9sa2tIb2xra05vbGtrS29sa2tYJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNGb2xra3VvbGtrdG9sa2t5b2xra0hvbGtrTm9sa2tLb2xra1gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtCdXQgSSB0aGluayBpdCBjb3VsZCBiZSBpbnRlcmVzdGluZyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzNfMTVhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QnV0IEkgdGhpbmsgaXQgY291bGQgYmUgaW50ZXJlc3RpbmcmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfM18xNWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjYyIiBuYW1lPSJBbm5pZUNoYXRFcDRfM18xNWEiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSwzMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfM18xNWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7QnV0IEkgdGhpbmsgaXQgY291bGQgYmUgaW50ZXJlc3RpbmcmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgSSB0aGluayBpdCBjb3VsZCBiZSBpbnRlcmVzdGluZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QnV0IEkgdGhpbmsgaXQgY291bGQgYmUgaW50ZXJlc3RpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QXJlIHlvdSBzZXJpb3VzPyZxdW90OyAmcXVvdDtxb2xra2ZvbGtrVG9sa2t4b2xra3RvbGtrRm9sa2tXb2xra3hvbGtraW9sa2tvb2xra0tvbGtrem9sa2tQb2xra0ZvbGtrSW9sa2tpJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FyZSB5b3Ugc2VyaW91cz8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0FyZSB5b3Ugc2VyaW91cz8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtmb2xra25vbGtrZm9sa2tTb2xra1hvbGtrcm9sa2tEb2xra00mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuMnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2ZvbGtrbm9sa2tmb2xra1NvbGtrWG9sa2tyb2xra0RvbGtrTSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1llYWgsIG9mIGNvdXJzZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzNfMTZhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WWVhaCwgb2YgY291cnNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzNfMTZhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI2MyIgbmFtZT0iQW5uaWVDaGF0RXA0XzNfMTZhIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsMzM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzNfMTZhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1llYWgsIG9mIGNvdXJzZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1llYWgsIG9mIGNvdXJzZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WWVhaCwgb2YgY291cnNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O01vbGtrVm9sa2tvb2xra0NvbGtrUG9sa2tEb2xra1BvbGtrTSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjTW9sa2tWb2xra29vbGtrQ29sa2tQb2xra0RvbGtrUG9sa2tNJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSB0aGluayBpdCB3b3VsZCB0dXJuIG1lIG9uIGlmIGFuIG9sZCBndXkgSSBoYXRlIHNsZXB0IHdpdGggbXkgZ2lybGZyaWVuZCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzNfMTdhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSB0aGluayBpdCB3b3VsZCB0dXJuIG1lIG9uIGlmIGFuIG9sZCBndXkgSSBoYXRlIHNsZXB0IHdpdGggbXkgZ2lybGZyaWVuZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8zXzE3YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNjQiIG5hbWU9IkFubmllQ2hhdEVwNF8zXzE3YSIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDMzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8zXzE3YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIHRoaW5rIGl0IHdvdWxkIHR1cm4gbWUgb24gaWYgYW4gb2xkIGd1eSBJIGhhdGUgc2xlcHQgd2l0aCBteSBnaXJsZnJpZW5kJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB0aGluayBpdCB3b3VsZCB0dXJuIG1lIG9uIGlmIGFuIG9sZCBndXkgSSBoYXRlIHNsZXB0IHdpdGggbXkgZ2lybGZyaWVuZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSB0aGluayBpdCB3b3VsZCB0dXJuIG1lIG9uIGlmIGFuIG9sZCBndXkgSSBoYXRlIHNsZXB0IHdpdGggbXkgZ2lybGZyaWVuZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC45cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtZb3UganVzdCB3YW50IGV2ZXJ5b25lIHRvIHVzZSBtZSwgZG9u4oCZdCB5b3U/JnF1b3Q7ICZxdW90O29vbGtrTW9sa2t2b2xra1pvbGtrUG9sa2tlb2xra0VvbGtrSW9sa2t6b2xra3hvbGtrVG9sa2tOb2xra0lvbGtrdm9sa2tJb2xra3ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGp1c3Qgd2FudCBldmVyeW9uZSB0byB1c2UgbWUsIGRvbuKAmXQgeW91PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WW91IGp1c3Qgd2FudCBldmVyeW9uZSB0byB1c2UgbWUsIGRvbuKAmXQgeW91PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O0pvbGtrdW9sa2tUb2xra2ZvbGtraG9sa2tlb2xra0lvbGtrYSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS44cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjSm9sa2t1b2xra1RvbGtrZm9sa2tob2xra2VvbGtrSW9sa2thJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7RXhhY3RseSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzNfMThhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7RXhhY3RseSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF8zXzE4YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNjUiIG5hbWU9IkFubmllQ2hhdEVwNF8zXzE4YSIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDMzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8zXzE4YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtFeGFjdGx5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RXhhY3RseSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7RXhhY3RseSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtSb2xra2FvbGtrY29sa2t1b2xra1VvbGtrV29sa2tEb2xra3MmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1JvbGtrYW9sa2tjb2xra3VvbGtrVW9sa2tXb2xra0RvbGtrcyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O/CfpKMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8zXzE5YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O/CfpKMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfM18xOWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjY2IiBuYW1lPSJBbm5pZUNoYXRFcDRfM18xOWEiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwzMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfM18xOWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9sbWFvLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtZb3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xtYW8ud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgIAogICAgJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2NyeWluZy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfY3J5aW5nLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtTb3JyeSwgaG9uZXksIEnigJl2ZSB0byBnbyBiYWNrIHRvIHdvcmsmcXVvdDsgJnF1b3Q7d29sa2tYb2xra3pvbGtrWW9sa2tQb2xra1pvbGtrTG9sa2tLb2xra2lvbGtrYm9sa2tYb2xra1ZvbGtrU29sa2tBb2xra0hvbGtrUCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTb3JyeSwgaG9uZXksIEnigJl2ZSB0byBnbyBiYWNrIHRvIHdvcmsmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1NvcnJ5LCBob25leSwgSeKAmXZlIHRvIGdvIGJhY2sgdG8gd29yayZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjRzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7TGV04oCZcyB0YWxrIGxhdGVyJnF1b3Q7ICZxdW90O1dvbGtrZ29sa2tSb2xra1NvbGtraW9sa2tXb2xra2NvbGtrd29sa2tub2xra0dvbGtrTm9sa2tZb2xra2tvbGtrUW9sa2tPb2xra0YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGV04oCZcyB0YWxrIGxhdGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtMZXTigJlzIHRhbGsgbGF0ZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDt5b2xra0hvbGtrbG9sa2tNb2xra1hvbGtrZ29sa2tDb2xra3EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3lvbGtrSG9sa2tsb2xra01vbGtrWG9sa2tnb2xra0NvbGtrcSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1N1cmUgYmFiZSwgdGFrZSBjYXJlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfM18zMCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1N1cmUgYmFiZSwgdGFrZSBjYXJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzNfMzAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjY3IiBuYW1lPSJBbm5pZUNoYXRFcDRfM18xNGIiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCwzMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfM18xNGImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBoYXRlIGhpbSwgaGUgZG9lc27igJl0IGRlc2VydmUgdG8gdG91Y2ggbXkgZ2lybCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgaGF0ZSBoaW0sIGhlIGRvZXNu4oCZdCBkZXNlcnZlIHRvIHRvdWNoIG15IGdpcmwmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgaGF0ZSBoaW0sIGhlIGRvZXNu4oCZdCBkZXNlcnZlIHRvIHRvdWNoIG15IGdpcmwmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuMnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7T2gsIG9rYXkmcXVvdDsgJnF1b3Q7WG9sa2tab2xra25vbGtrbG9sa2tTb2xra0xvbGtrZG9sa2tFb2xra2JvbGtrV29sa2tFb2xra2FvbGtrQW9sa2tOb2xra2VvbGtrbCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPaCwgb2theSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7T2gsIG9rYXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtMb2xra0tvbGtrUm9sa2tlb2xra2dvbGtrTG9sa2tMb2xra24mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuMXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0xvbGtrS29sa2tSb2xra2VvbGtrZ29sa2tMb2xra0xvbGtrbiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1dvdWxkIHlvdSBldmVuIHdhbnQgdGhhdD8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8zXzE1YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1dvdWxkIHlvdSBldmVuIHdhbnQgdGhhdD8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfM18xNWImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjY4IiBuYW1lPSJBbm5pZUNoYXRFcDRfM18xNWIiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSwzMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfM18xNWImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7V291bGQgeW91IGV2ZW4gd2FudCB0aGF0PyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dvdWxkIHlvdSBldmVuIHdhbnQgdGhhdD8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1dvdWxkIHlvdSBldmVuIHdhbnQgdGhhdD8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuMnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7Tm8sIG5vJnF1b3Q7ICZxdW90O0RvbGtrV29sa2tob2xra0lvbGtrSG9sa2tGb2xra2FvbGtrRW9sa2tjb2xra0dvbGtrWm9sa2tlb2xra1FvbGtrdm9sa2trb2xra0cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm8sIG5vJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtObywgbm8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0l0IGp1c3Qgc3VycHJpc2VzIG1lLCB0aGF04oCZcyBhbGwmcXVvdDsgJnF1b3Q7c29sa2tqb2xra3FvbGtreW9sa2tXb2xra3dvbGtram9sa2tVb2xra2JvbGtrU29sa2tIb2xra1JvbGtrZG9sa2trb2xra05vbGtrTyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdCBqdXN0IHN1cnByaXNlcyBtZSwgdGhhdOKAmXMgYWxsJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJdCBqdXN0IHN1cnByaXNlcyBtZSwgdGhhdOKAmXMgYWxsJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIHNlZSB5b3UgaGF2ZSB5b3VyIGxpbWl0cyZxdW90OyAmcXVvdDtvb2xra29vbGtrWW9sa2tSb2xra0FvbGtrdG9sa2t1b2xra3VvbGtrT29sa2tvb2xra2lvbGtrRW9sa2tab2xra1NvbGtreW9sa2tuJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgc2VlIHlvdSBoYXZlIHlvdXIgbGltaXRzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIHNlZSB5b3UgaGF2ZSB5b3VyIGxpbWl0cyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O0dvbGtrdW9sa2tOb2xra0xvbGtrZG9sa2tkb2xra3pvbGtraCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy41cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjR29sa2t1b2xra05vbGtrTG9sa2tkb2xra2RvbGtrem9sa2toJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WWVhaCwgb2YgY291cnNlIEkgZG8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF8zXzE2YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1llYWgsIG9mIGNvdXJzZSBJIGRvJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzNfMTZiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI2OSIgbmFtZT0iQW5uaWVDaGF0RXA0XzNfMTZiIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDMzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF8zXzE2YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZZWFoLCBvZiBjb3Vyc2UgSSBkbyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1llYWgsIG9mIGNvdXJzZSBJIGRvJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtZZWFoLCBvZiBjb3Vyc2UgSSBkbyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtTb3JyeSwgaG9uZXksIEnigJl2ZSB0byBnbyBiYWNrIHRvIHdvcmsmcXVvdDsgJnF1b3Q7dW9sa2tXb2xra3FvbGtra29sa2tmb2xra05vbGtrQm9sa2tQb2xra2JvbGtrU29sa2tjb2xra2lvbGtreW9sa2t3b2xra0dvbGtrcyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTb3JyeSwgaG9uZXksIEnigJl2ZSB0byBnbyBiYWNrIHRvIHdvcmsmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1NvcnJ5LCBob25leSwgSeKAmXZlIHRvIGdvIGJhY2sgdG8gd29yayZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7TGV04oCZcyB0YWxrIGxhdGVyJnF1b3Q7ICZxdW90O0VvbGtra29sa2tTb2xra2tvbGtrTm9sa2tEb2xra0JvbGtreW9sa2t3b2xra1BvbGtrZm9sa2tqb2xra1pvbGtrR29sa2tMb2xra2EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGV04oCZcyB0YWxrIGxhdGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtMZXTigJlzIHRhbGsgbGF0ZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtjb2xra1RvbGtrUm9sa2twb2xra0xvbGtrSm9sa2tMb2xra24mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuNnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2NvbGtrVG9sa2tSb2xra3BvbGtrTG9sa2tKb2xra0xvbGtrbiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1N1cmUgYmFiZSwgdGFrZSBjYXJlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfM18zMCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1N1cmUgYmFiZSwgdGFrZSBjYXJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzNfMzAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjcwIiBuYW1lPSJBbm5pZUNoYXRFcDRfM18zMCIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSwzMzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfM18zMCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtTdXJlIGJhYmUsIHRha2UgY2FyZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1N1cmUgYmFiZSwgdGFrZSBjYXJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtTdXJlIGJhYmUsIHRha2UgY2FyZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtTdXJlIGJhYmUsIHRha2UgY2FyZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgPSAmcXVvdDtBbm5pZUNoYXRFcDRfM18zMCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0X2hvdXIgPSAmcXVvdDsxODozOSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkaG91ciA9ICZxdW90OzE4OjM5JnF1b3Q7Jmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtvZmZsaW5lLXRleHQmcXVvdDsmZ3Q7QW5uaWUgaXMgb2ZmbGluZSZsdDsvZGl2Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdCA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSA9ICZxdW90O0FubmllQ2hhdEVwNF80XzEmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIZXkgaG9uZXkmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJHRyYW5zaXRpb24gPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICR0cmFuc2l0aW9uVGV4dCA9ICZxdW90O2xhdGVyIHRoYXQgZGF5JnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI3MSIgbmFtZT0iQW5uaWVDaGF0RXA0XzRfMSIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDM0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SGV5IGhvbmV5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZXkgaG9uZXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hleSBob25leSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtFb2xra2NvbGtrbm9sa2tYb2xra1JvbGtrYW9sa2tBb2xra3gmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuNnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0VvbGtrY29sa2tub2xra1hvbGtrUm9sa2thb2xra0FvbGtreCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0hpIGJhYmUsIGFyZSB5b3Ugb2ZmIHdvcmsgbm93PyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzRfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0hpIGJhYmUsIGFyZSB5b3Ugb2ZmIHdvcmsgbm93PyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF80XzImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNzIiIG5hbWU9IkFubmllQ2hhdEVwNF80XzIiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSwzNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfNF8yJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0hpIGJhYmUsIGFyZSB5b3Ugb2ZmIHdvcmsgbm93PyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hpIGJhYmUsIGFyZSB5b3Ugb2ZmIHdvcmsgbm93PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SGkgYmFiZSwgYXJlIHlvdSBvZmYgd29yayBub3c/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1llYWgsIHdlIGNhbWUgb3V0IHdpdGggdGhlIGdpcmxzIHRvIGJ1eSBzb21lIGRyZXNzZXMmcXVvdDsgJnF1b3Q7d29sa2t2b2xra1BvbGtrem9sa2tzb2xra3JvbGtrVW9sa2tpb2xra29vbGtraG9sa2tBb2xra2tvbGtrZG9sa2tQb2xra0JvbGtrayZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFoLCB3ZSBjYW1lIG91dCB3aXRoIHRoZSBnaXJscyB0byBidXkgc29tZSBkcmVzc2VzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtZZWFoLCB3ZSBjYW1lIG91dCB3aXRoIHRoZSBnaXJscyB0byBidXkgc29tZSBkcmVzc2VzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtSZW1lbWJlciBJIHRvbGQgeW91IGFib3V0IGl0PyZxdW90OyAmcXVvdDtXb2xra0pvbGtrcW9sa2tmb2xra1lvbGtrd29sa2tEb2xra3VvbGtreG9sa2tnb2xra21vbGtrVm9sa2tYb2xra21vbGtrdG9sa2tOJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1JlbWVtYmVyIEkgdG9sZCB5b3UgYWJvdXQgaXQ/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtSZW1lbWJlciBJIHRvbGQgeW91IGFib3V0IGl0PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O3ZvbGtrd29sa2t6b2xra3RvbGtrTm9sa2tJb2xra3ZvbGtrUiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjdm9sa2t3b2xra3pvbGtrdG9sa2tOb2xra0lvbGtrdm9sa2tSJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7T2gsIHJpZ2h0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfNF8zJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7T2gsIHJpZ2h0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzRfMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNzMiIG5hbWU9IkFubmllQ2hhdEVwNF80XzMiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCwzNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfNF8zJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O09oLCByaWdodCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09oLCByaWdodCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7T2gsIHJpZ2h0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2VvbGtrS29sa2tUb2xra2RvbGtra29sa2tib2xra2VvbGtrZiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjZW9sa2tLb2xra1RvbGtrZG9sa2trb2xra2JvbGtrZW9sa2tmJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7RGlkIHlvdSBmaW5kIGFueXRoaW5nIHlvdSBsaWtlPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzRfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0RpZCB5b3UgZmluZCBhbnl0aGluZyB5b3UgbGlrZT8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfNF80JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI3NCIgbmFtZT0iQW5uaWVDaGF0RXA0XzRfNCIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDM0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF80XzQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7RGlkIHlvdSBmaW5kIGFueXRoaW5nIHlvdSBsaWtlPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0RpZCB5b3UgZmluZCBhbnl0aGluZyB5b3UgbGlrZT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0RpZCB5b3UgZmluZCBhbnl0aGluZyB5b3UgbGlrZT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QWN0dWFsbHksIEkgdGhpbmsgc28mcXVvdDsgJnF1b3Q7dm9sa2tib2xra2lvbGtrem9sa2ttb2xra0dvbGtrZW9sa2ttb2xra1dvbGtram9sa2tTb2xra3JvbGtrV29sa2tyb2xra3BvbGtrWSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBY3R1YWxseSwgSSB0aGluayBzbyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QWN0dWFsbHksIEkgdGhpbmsgc28mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1RoYXTigJlzIHdoeSBJ4oCZbSB0ZXh0aW5nIHlvdSZxdW90OyAmcXVvdDtOb2xra0JvbGtrUm9sa2tGb2xra2pvbGtra29sa2tab2xra2lvbGtrcG9sa2tpb2xra2ZvbGtraW9sa2tlb2xra2FvbGtrUG9sa2t1JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYXTigJlzIHdoeSBJ4oCZbSB0ZXh0aW5nIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhhdOKAmXMgd2h5IEnigJltIHRleHRpbmcgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtUaGVyZSBhcmUgdHdvIGRyZXNzZXMgSSBsaWtlZCwgYnV0IEkgY2Fu4oCZdCBkZWNpZGUgd2hpY2ggb25lIHRvIHBpY2smcXVvdDsgJnF1b3Q7bm9sa2tzb2xra0pvbGtram9sa2tob2xra0xvbGtrS29sa2tmb2xra1NvbGtrRW9sa2thb2xra0pvbGtrT29sa2tzb2xra3ZvbGtrbSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGVyZSBhcmUgdHdvIGRyZXNzZXMgSSBsaWtlZCwgYnV0IEkgY2Fu4oCZdCBkZWNpZGUgd2hpY2ggb25lIHRvIHBpY2smcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1RoZXJlIGFyZSB0d28gZHJlc3NlcyBJIGxpa2VkLCBidXQgSSBjYW7igJl0IGRlY2lkZSB3aGljaCBvbmUgdG8gcGljayZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O0tvbGtraG9sa2thb2xra0ZvbGtrTW9sa2tFb2xra0lvbGtrQSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjS29sa2tob2xra2FvbGtrRm9sa2tNb2xra0VvbGtrSW9sa2tBJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7T2theSBiYWJlLCBzaG93IG1lIGFuZCBJ4oCZbGwgaGVscCB5b3Ugb3V0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfNF81JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7T2theSBiYWJlLCBzaG93IG1lIGFuZCBJ4oCZbGwgaGVscCB5b3Ugb3V0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzRfNSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNzUiIG5hbWU9IkFubmllQ2hhdEVwNF80XzUiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCwzNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfNF81JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O09rYXkgYmFiZSwgc2hvdyBtZSBhbmQgSeKAmWxsIGhlbHAgeW91IG91dCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09rYXkgYmFiZSwgc2hvdyBtZSBhbmQgSeKAmWxsIGhlbHAgeW91IG91dCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7T2theSBiYWJlLCBzaG93IG1lIGFuZCBJ4oCZbGwgaGVscCB5b3Ugb3V0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0dpdmUgbWUgYSBzZWNvbmQsIEnigJlsbCBmb3J3YXJkIHlvdSB0aGUgcGhvdG9zIFZhbmVzc2EgdG9vayBvZiBtZSZxdW90OyAmcXVvdDt0b2xra0hvbGtrRW9sa2tlb2xra3dvbGtrd29sa2tBb2xra0RvbGtrdm9sa2tVb2xra1JvbGtrT29sa2t2b2xra3VvbGtrUW9sa2tkJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0dpdmUgbWUgYSBzZWNvbmQsIEnigJlsbCBmb3J3YXJkIHlvdSB0aGUgcGhvdG9zIFZhbmVzc2EgdG9vayBvZiBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7R2l2ZSBtZSBhIHNlY29uZCwgSeKAmWxsIGZvcndhcmQgeW91IHRoZSBwaG90b3MgVmFuZXNzYSB0b29rIG9mIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuN3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfaW1nICZxdW90O2Fzc2V0cy9pbWcvZXA0L2FubmllX3Bob3RvXzgud2VicCZxdW90OyB0cnVlICZxdW90O0hvbGtrYW9sa2tLb2xra29vbGtrUW9sa2t3b2xra1FvbGtreW9sa2tGb2xra01vbGtrcW9sa2tBb2xra3pvbGtrbG9sa2txb2xra2omcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMiwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lcDQvYW5uaWVfcGhvdG9fOC53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkcGhvdG9zLnB1c2goJnF1b3Q7YXNzZXRzL2ltZy9lcDQvYW5uaWVfcGhvdG9fOC53ZWJwJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjJzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2ltZyAmcXVvdDthc3NldHMvaW1nL2VwNC9hbm5pZV9waG90b185LndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtvb2xra3JvbGtrbW9sa2tLb2xra3RvbGtrVm9sa2tIb2xra3FvbGtrbW9sa2tMb2xra2ZvbGtrVW9sa2tIb2xra0RvbGtrSW9sa2trJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDIsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZXA0L2FubmllX3Bob3RvXzkud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzZXQgJHBob3Rvcy5wdXNoKCZxdW90O2Fzc2V0cy9pbWcvZXA0L2FubmllX3Bob3RvXzkud2VicCZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNS4ycyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1doaWNoIG9uZSBkbyB5b3UgbGlrZSBtb3JlPyZxdW90OyAmcXVvdDtGb2xra2ZvbGtrT29sa2tIb2xra0tvbGtrSW9sa2tab2xra3dvbGtrVG9sa2tkb2xra0VvbGtrTm9sa2tnb2xra1VvbGtrVW9sa2tvJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1doaWNoIG9uZSBkbyB5b3UgbGlrZSBtb3JlPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7V2hpY2ggb25lIGRvIHlvdSBsaWtlIG1vcmU/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7Ym9sa2tob2xra3JvbGtrS29sa2tkb2xra0lvbGtrVW9sa2tGJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA2LjRzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNib2xra2hvbGtrcm9sa2tLb2xra2RvbGtrSW9sa2tVb2xra0YmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGUgd2hpdGUgb25lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfNF82YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoZSB3aGl0ZSBvbmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfNF82YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNib2xra2hvbGtrcm9sa2tLb2xra2RvbGtrSW9sa2tVb2xra0YmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGUgYmxhY2sgb25lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfNF82YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoZSBibGFjayBvbmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfNF82YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNzYiIG5hbWU9IkFubmllQ2hhdEVwNF80XzZhIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsMzQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzRfNmEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhlIHdoaXRlIG9uZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoZSB3aGl0ZSBvbmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1RoZSB3aGl0ZSBvbmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGRyZXNzX2FubmllID0gJnF1b3Q7MSZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtFb2xra3pvbGtrbm9sa2t4b2xra2VvbGtrZG9sa2tPb2xra2ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0VvbGtrem9sa2tub2xra3hvbGtrZW9sa2tkb2xra09vbGtrYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1lvdSBsb29rIGxpa2UgYW4gYW5nZWwgaW4gaXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF80XzdhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WW91IGxvb2sgbGlrZSBhbiBhbmdlbCBpbiBpdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF80XzdhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI3NyIgbmFtZT0iQW5uaWVDaGF0RXA0XzRfNmIiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCwzNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfNF82YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGUgYmxhY2sgb25lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhlIGJsYWNrIG9uZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhlIGJsYWNrIG9uZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkZHJlc3NfYW5uaWUgPSAmcXVvdDsyJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3pvbGtrUm9sa2tJb2xra3RvbGtrUm9sa2tXb2xra1pvbGtrWSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjem9sa2tSb2xra0lvbGtrdG9sa2tSb2xra1dvbGtrWm9sa2tZJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SXQgZ2l2ZXMgeW91IGFuIGF1cmEgb2YgcG93ZXIgYW5kIGNvbmZpZGVuY2UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF80XzdiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SXQgZ2l2ZXMgeW91IGFuIGF1cmEgb2YgcG93ZXIgYW5kIGNvbmZpZGVuY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfNF83YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyNzgiIG5hbWU9IkFubmllQ2hhdEVwNF80XzdhIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsMzQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzRfN2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WW91IGxvb2sgbGlrZSBhbiBhbmdlbCBpbiBpdCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBsb29rIGxpa2UgYW4gYW5nZWwgaW4gaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdSBsb29rIGxpa2UgYW4gYW5nZWwgaW4gaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7R29sa2tEb2xra1BvbGtrdW9sa2tDb2xra2lvbGtram9sa2tyJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNHb2xra0RvbGtrUG9sa2t1b2xra0NvbGtraW9sa2tqb2xra3ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGxvdmUgaXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF80XzhhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBsb3ZlIGl0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzRfOGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjc5IiBuYW1lPSJBbm5pZUNoYXRFcDRfNF84YSIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwzNDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfNF84YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGxvdmUgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGxvdmUgaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgbG92ZSBpdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtZZWFoLCBpdCBsb29rcyByZWFsbHkgcHJldHR5JnF1b3Q7ICZxdW90O0lvbGtrUG9sa2tZb2xra1FvbGtrVm9sa2tTb2xra2FvbGtrUm9sa2tsb2xra1RvbGtrdG9sa2tIb2xra2JvbGtrb29sa2tLb2xra2UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WWVhaCwgaXQgbG9va3MgcmVhbGx5IHByZXR0eSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WWVhaCwgaXQgbG9va3MgcmVhbGx5IHByZXR0eSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjRzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SSBsaWtlZCBpdCBhIGxvdCB0b28mcXVvdDsgJnF1b3Q7Vm9sa2tDb2xra1dvbGtrV29sa2tHb2xra2NvbGtrV29sa2tub2xra0RvbGtrRm9sa2tTb2xra0lvbGtrVW9sa2tXb2xra0JvbGtrQyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGxpa2VkIGl0IGEgbG90IHRvbyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBsaWtlZCBpdCBhIGxvdCB0b28mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0l04oCZcyBkZWNpZGVkIHRoZW4mcXVvdDsgJnF1b3Q7b29sa2t4b2xra2lvbGtrRm9sa2tMb2xra2FvbGtrQW9sa2tOb2xra0VvbGtrdG9sa2t3b2xra2RvbGtrRG9sa2tRb2xra1pvbGtrdCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdOKAmXMgZGVjaWRlZCB0aGVuJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJdOKAmXMgZGVjaWRlZCB0aGVuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuNXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJ4oCZbGwgYnV5IHRoYXQgb25lJnF1b3Q7ICZxdW90O1FvbGtram9sa2tBb2xra3NvbGtrR29sa2tPb2xra2xvbGtrSW9sa2tXb2xra2NvbGtrUG9sa2tsb2xra1ZvbGtram9sa2tnb2xra3QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmWxsIGJ1eSB0aGF0IG9uZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SeKAmWxsIGJ1eSB0aGF0IG9uZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O0hvbGtrWm9sa2tJb2xra2FvbGtrRm9sa2tnb2xra2pvbGtrbSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC41cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjSG9sa2tab2xra0lvbGtrYW9sa2tGb2xra2dvbGtram9sa2ttJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7R3JlYXQsIGJhYmUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF80XzIwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7R3JlYXQsIGJhYmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfNF8yMCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyODAiIG5hbWU9IkFubmllQ2hhdEVwNF80XzdiIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDM0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF80XzdiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0l0IGdpdmVzIHlvdSBhbiBhdXJhIG9mIHBvd2VyIGFuZCBjb25maWRlbmNlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXQgZ2l2ZXMgeW91IGFuIGF1cmEgb2YgcG93ZXIgYW5kIGNvbmZpZGVuY2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0l0IGdpdmVzIHlvdSBhbiBhdXJhIG9mIHBvd2VyIGFuZCBjb25maWRlbmNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O29vbGtrV29sa2tqb2xra3NvbGtrdm9sa2t6b2xra3NvbGtrTSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjb29sa2tXb2xra2pvbGtrc29sa2t2b2xra3pvbGtrc29sa2tNJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7UGx1cywgaXQgbG9va3MgcmVhbGx5IHNleHkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF80XzhiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7UGx1cywgaXQgbG9va3MgcmVhbGx5IHNleHkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfNF84YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyODEiIG5hbWU9IkFubmllQ2hhdEVwNF80XzhiIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMzYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzRfOGImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7UGx1cywgaXQgbG9va3MgcmVhbGx5IHNleHkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtQbHVzLCBpdCBsb29rcyByZWFsbHkgc2V4eSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7UGx1cywgaXQgbG9va3MgcmVhbGx5IHNleHkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7WWVhaCwgeW91IHB1dCBpbnRvIHdvcmRzIGhvdyBJIGZlbHQgd2VhcmluZyBpdCZxdW90OyAmcXVvdDtxb2xra2tvbGtrQW9sa2t4b2xra0JvbGtrcG9sa2tqb2xra0dvbGtrSG9sa2tsb2xra3FvbGtrSG9sa2tjb2xra3JvbGtrdm9sa2tXJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1llYWgsIHlvdSBwdXQgaW50byB3b3JkcyBob3cgSSBmZWx0IHdlYXJpbmcgaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1llYWgsIHlvdSBwdXQgaW50byB3b3JkcyBob3cgSSBmZWx0IHdlYXJpbmcgaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1RvIGJlIGhvbmVzdCwgSSBsb3ZlZCBpdCZxdW90OyAmcXVvdDt1b2xra0dvbGtrc29sa2txb2xra2ZvbGtrVG9sa2t1b2xra1RvbGtrSW9sa2tLb2xra25vbGtrd29sa2tjb2xra1BvbGtrUm9sa2t4JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RvIGJlIGhvbmVzdCwgSSBsb3ZlZCBpdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VG8gYmUgaG9uZXN0LCBJIGxvdmVkIGl0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJdOKAmXMgZGVjaWRlZCB0aGVuJnF1b3Q7ICZxdW90O29vbGtrRm9sa2tHb2xra0ZvbGtrR29sa2tmb2xra1JvbGtrWm9sa2thb2xra1RvbGtrcm9sa2tlb2xra2FvbGtrT29sa2tLb2xra3UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXTigJlzIGRlY2lkZWQgdGhlbiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SXTigJlzIGRlY2lkZWQgdGhlbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SeKAmWxsIGJ1eSB0aGF0IG9uZSZxdW90OyAmcXVvdDtHb2xra2FvbGtrVW9sa2t5b2xra3VvbGtrWG9sa2t4b2xra3RvbGtrSW9sa2tib2xra3lvbGtrU29sa2t1b2xra29vbGtrQW9sa2tVJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJlsbCBidXkgdGhhdCBvbmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJlsbCBidXkgdGhhdCBvbmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtVb2xra3dvbGtreW9sa2tGb2xra2tvbGtrVm9sa2tXb2xra2kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDUuMHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1VvbGtrd29sa2t5b2xra0ZvbGtra29sa2tWb2xra1dvbGtraSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0dyZWF0LCBiYWJlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfNF8yMCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0dyZWF0LCBiYWJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzRfMjAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjgyIiBuYW1lPSJBbm5pZUNoYXRFcDRfNF8yMCIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDM2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF80XzIwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0dyZWF0LCBiYWJlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7R3JlYXQsIGJhYmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0dyZWF0LCBiYWJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0RvbGtrSW9sa2t6b2xra1hvbGtrVW9sa2tFb2xra1VvbGtraCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjRG9sa2tJb2xra3pvbGtrWG9sa2tVb2xra0VvbGtrVW9sa2toJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QW55dGhpbmcgZWxzZSBJIGNhbiBoZWxwIHdpdGg/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfNF8yMSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0FueXRoaW5nIGVsc2UgSSBjYW4gaGVscCB3aXRoPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF80XzIxJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI4MyIgbmFtZT0iQW5uaWVDaGF0RXA0XzRfMjEiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCwzNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfNF8yMSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtBbnl0aGluZyBlbHNlIEkgY2FuIGhlbHAgd2l0aD8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbnl0aGluZyBlbHNlIEkgY2FuIGhlbHAgd2l0aD8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0FueXRoaW5nIGVsc2UgSSBjYW4gaGVscCB3aXRoPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtXZWxsLCBub3QgcmVhbGx5JnF1b3Q7ICZxdW90O0NvbGtrcG9sa2tib2xra1ZvbGtrbm9sa2tKb2xra2RvbGtrSG9sa2tmb2xra2pvbGtrWG9sa2tyb2xra3JvbGtrY29sa2tYb2xra0UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2VsbCwgbm90IHJlYWxseSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7V2VsbCwgbm90IHJlYWxseSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7QnV0IHRlbGwgbWUsIHdoYXQgZG8geW91IHRoaW5rIG9mIGhvdyBOYW9taSBsb29rcz8mcXVvdDsgJnF1b3Q7TG9sa2tjb2xra2JvbGtrc29sa2tub2xra0RvbGtrTW9sa2tnb2xra1NvbGtrc29sa2tzb2xra3JvbGtrRm9sa2tmb2xra3hvbGtrRCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgdGVsbCBtZSwgd2hhdCBkbyB5b3UgdGhpbmsgb2YgaG93IE5hb21pIGxvb2tzPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7QnV0IHRlbGwgbWUsIHdoYXQgZG8geW91IHRoaW5rIG9mIGhvdyBOYW9taSBsb29rcz8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy40cyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9pbWcgJnF1b3Q7YXNzZXRzL2ltZy9lcDQvbmFvbWlfcGhvdG9fMS53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW9sa2t4b2xra2xvbGtrQ29sa2tob2xra2NvbGtrTW9sa2tFb2xra0RvbGtrU29sa2tkb2xra0dvbGtram9sa2t6b2xra3pvbGtraCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAyLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2VwNC9uYW9taV9waG90b18xLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRwaG90b3MucHVzaCgmcXVvdDthc3NldHMvaW1nL2VwNC9uYW9taV9waG90b18xLndlYnAmcXVvdDspJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7am9sa2tzb2xra3RvbGtrUW9sa2t6b2xra2VvbGtrcW9sa2tyJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjRzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNqb2xra3NvbGtrdG9sa2tRb2xra3pvbGtrZW9sa2txb2xra3ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtTaGUgbG9va3MgZ29vZCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzRfMjJhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7U2hlIGxvb2tzIGdvb2QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfNF8yMmEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjam9sa2tzb2xra3RvbGtrUW9sa2t6b2xra2VvbGtrcW9sa2tyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7U2hlIGxvb2tzIGxpa2UgYSB3aXRjaCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzRfMjJiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7U2hlIGxvb2tzIGxpa2UgYSB3aXRjaCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF80XzIyYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyODQiIG5hbWU9IkFubmllQ2hhdEVwNF80XzIyYSIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDM2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF80XzIyYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtTaGUgbG9va3MgZ29vZCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1NoZSBsb29rcyBnb29kJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtTaGUgbG9va3MgZ29vZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7U2hlIHNheXMgc2hlIGFscmVhZHkga25ldyB0aGF0JnF1b3Q7ICZxdW90O2VvbGtrS29sa2tLb2xra1lvbGtrcG9sa2tSb2xra2dvbGtrbW9sa2tLb2xra2FvbGtrYW9sa2tOb2xra3VvbGtrWm9sa2tkb2xra24mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U2hlIHNheXMgc2hlIGFscmVhZHkga25ldyB0aGF0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtTaGUgc2F5cyBzaGUgYWxyZWFkeSBrbmV3IHRoYXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDthb2xra2ZvbGtrd29sa2txb2xra1pvbGtreG9sa2tQb2xra3UmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuNXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I2FvbGtrZm9sa2t3b2xra3FvbGtrWm9sa2t4b2xra1BvbGtrdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0hleSwgeW91IHdhc27igJl0IHN1cHBvc2VkIHRvIHRlbGwgaGVyIHRoYXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF80XzIzJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SGV5LCB5b3Ugd2FzbuKAmXQgc3VwcG9zZWQgdG8gdGVsbCBoZXIgdGhhdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF80XzIzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI4NSIgbmFtZT0iQW5uaWVDaGF0RXA0XzRfMjJiIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsMzYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzRfMjJiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1NoZSBsb29rcyBsaWtlIGEgd2l0Y2gmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTaGUgbG9va3MgbGlrZSBhIHdpdGNoJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtTaGUgbG9va3MgbGlrZSBhIHdpdGNoJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtTaGUgc2F5cyBhdCBsZWFzdCBzaGUgZG9lc27igJl0IGxvb2sgbGlrZSBhIHNjYXJlY3JvdyZxdW90OyAmcXVvdDtjb2xra3lvbGtrVG9sa2tIb2xra3pvbGtrTm9sa2tnb2xra3VvbGtraW9sa2tZb2xra1pvbGtrS29sa2tEb2xra3dvbGtrVm9sa2tmJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1NoZSBzYXlzIGF0IGxlYXN0IHNoZSBkb2VzbuKAmXQgbG9vayBsaWtlIGEgc2NhcmVjcm93JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtTaGUgc2F5cyBhdCBsZWFzdCBzaGUgZG9lc27igJl0IGxvb2sgbGlrZSBhIHNjYXJlY3JvdyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O3hvbGtrWG9sa2thb2xra2JvbGtrbG9sa2tsb2xra1ZvbGtraCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS45cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjeG9sa2tYb2xra2FvbGtrYm9sa2tsb2xra2xvbGtrVm9sa2toJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SGV5LCB5b3Ugd2FzbuKAmXQgc3VwcG9zZWQgdG8gdGVsbCBoZXIgdGhhdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzRfMjMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtIZXksIHlvdSB3YXNu4oCZdCBzdXBwb3NlZCB0byB0ZWxsIGhlciB0aGF0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzRfMjMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjg2IiBuYW1lPSJBbm5pZUNoYXRFcDRfNF8yMyIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDM2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF80XzIzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0hleSwgeW91IHdhc27igJl0IHN1cHBvc2VkIHRvIHRlbGwgaGVyIHRoYXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZXksIHlvdSB3YXNu4oCZdCBzdXBwb3NlZCB0byB0ZWxsIGhlciB0aGF0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIZXksIHlvdSB3YXNu4oCZdCBzdXBwb3NlZCB0byB0ZWxsIGhlciB0aGF0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9sbWFvLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9sbWFvLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4xcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtTb3JyeSZxdW90OyAmcXVvdDtHb2xra2pvbGtrdG9sa2twb2xra05vbGtrd29sa2tGb2xra1ZvbGtram9sa2twb2xra0xvbGtrYm9sa2tUb2xra29vbGtrb29sa2tmJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1NvcnJ5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtTb3JyeSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7WW91IGtub3cgSSBkb27igJl0IGhpZGUgYW55dGhpbmcgZnJvbSBteSBnaXJscyZxdW90OyAmcXVvdDthb2xra1BvbGtrUm9sa2tpb2xra2ZvbGtrUW9sa2t3b2xra3JvbGtrQW9sa2thb2xra09vbGtrbm9sa2tDb2xra2JvbGtreG9sa2tuJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBrbm93IEkgZG9u4oCZdCBoaWRlIGFueXRoaW5nIGZyb20gbXkgZ2lybHMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdSBrbm93IEkgZG9u4oCZdCBoaWRlIGFueXRoaW5nIGZyb20gbXkgZ2lybHMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtEb2xra0ZvbGtrdm9sa2tmb2xra29vbGtrcG9sa2tXb2xra04mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuNXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0RvbGtrRm9sa2t2b2xra2ZvbGtrb29sa2twb2xra1dvbGtrTiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0ZhaXIuLi4mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF80XzI0JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7RmFpci4uLiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF80XzI0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI4NyIgbmFtZT0iQW5uaWVDaGF0RXA0XzRfMjQiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCwzNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfNF8yNCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtGYWlyLi4uJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RmFpci4uLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7RmFpci4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4zcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtWYW5lc3NhIHNheXMgc2hlIHdhbnRzIHRvIGtub3cgd2hhdCB5b3UgdGhpbmsgb2YgaGVyIGRyZXNzIHRvbyZxdW90OyAmcXVvdDt6b2xra2ZvbGtrZm9sa2tsb2xra0hvbGtrcm9sa2tJb2xra0JvbGtrSm9sa2tDb2xra05vbGtrT29sa2tPb2xra0tvbGtrTm9sa2tBJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1ZhbmVzc2Egc2F5cyBzaGUgd2FudHMgdG8ga25vdyB3aGF0IHlvdSB0aGluayBvZiBoZXIgZHJlc3MgdG9vJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtWYW5lc3NhIHNheXMgc2hlIHdhbnRzIHRvIGtub3cgd2hhdCB5b3UgdGhpbmsgb2YgaGVyIGRyZXNzIHRvbyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjdzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2ltZyAmcXVvdDthc3NldHMvaW1nL2VwNC92YW5lc3NhX3Bob3RvXzEud2VicCZxdW90OyB0cnVlICZxdW90O2VvbGtrZW9sa2tMb2xra0RvbGtrQm9sa2tvb2xra0lvbGtrZW9sa2ttb2xra3BvbGtrbm9sa2twb2xra2hvbGtrZG9sa2tFb2xra0QmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMiwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lcDQvdmFuZXNzYV9waG90b18xLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRwaG90b3MucHVzaCgmcXVvdDthc3NldHMvaW1nL2VwNC92YW5lc3NhX3Bob3RvXzEud2VicCZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDt5b2xra2VvbGtrdG9sa2tOb2xra0RvbGtrem9sa2tFb2xra2cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuN3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3lvbGtrZW9sa2t0b2xra05vbGtrRG9sa2t6b2xra0VvbGtrZyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1NoZSBsb29rcyBiZWF1dGlmdWwmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF80XzI1YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1NoZSBsb29rcyBiZWF1dGlmdWwmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfNF8yNWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjeW9sa2tlb2xra3RvbGtrTm9sa2tEb2xra3pvbGtrRW9sa2tnJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7Tm90IGJhZCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzRfMjViJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7Tm90IGJhZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF80XzI1YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyODgiIG5hbWU9IkFubmllQ2hhdEVwNF80XzI1YSIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDM2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF80XzI1YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtTaGUgbG9va3MgYmVhdXRpZnVsJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U2hlIGxvb2tzIGJlYXV0aWZ1bCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7U2hlIGxvb2tzIGJlYXV0aWZ1bCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfZmx1c2gud2VicCZxdW90OyB0cnVlICZxdW90O0FubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2ZsdXNoLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJIHRob3VnaHQgSSB3YXMgdGhlIG1vc3QgYmVhdXRpZnVsPyZxdW90OyAmcXVvdDtGb2xra2dvbGtrWG9sa2tyb2xra1lvbGtrbG9sa2txb2xra2FvbGtrem9sa2tUb2xra3ZvbGtreG9sa2tIb2xra2tvbGtrUm9sa2tVJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgdGhvdWdodCBJIHdhcyB0aGUgbW9zdCBiZWF1dGlmdWw/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJIHRob3VnaHQgSSB3YXMgdGhlIG1vc3QgYmVhdXRpZnVsPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O0tvbGtrdW9sa2t4b2xra2RvbGtrZm9sa2t1b2xra3FvbGtrUSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjS29sa2t1b2xra3hvbGtrZG9sa2tmb2xra3VvbGtrcW9sa2tRJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WW91IGFyZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzRfMjZhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WW91IGFyZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF80XzI2YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyODkiIG5hbWU9IkFubmllQ2hhdEVwNF80XzI1YiIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCwzNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfNF8yNWImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7Tm90IGJhZCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O05vdCBiYWQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O05vdCBiYWQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1NoZSBzYXlzIHRoYW5rcyZxdW90OyAmcXVvdDtzb2xra01vbGtrcG9sa2tjb2xra3NvbGtrdm9sa2txb2xra1FvbGtrd29sa2tJb2xra1hvbGtra29sa2tSb2xra2lvbGtrVG9sa2tVJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1NoZSBzYXlzIHRoYW5rcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7U2hlIHNheXMgdGhhbmtzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC45cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtUaGV5IHdhbnQgdG8ga25vdyB3aG8geW91IHRoaW5rIGxvb2tzIGJldHRlciZxdW90OyAmcXVvdDttb2xra0tvbGtrZG9sa2tMb2xra0tvbGtrT29sa2tmb2xra1FvbGtrYW9sa2tVb2xra2lvbGtrcG9sa2tZb2xra3pvbGtrV29sa2twJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoZXkgd2FudCB0byBrbm93IHdobyB5b3UgdGhpbmsgbG9va3MgYmV0dGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUaGV5IHdhbnQgdG8ga25vdyB3aG8geW91IHRoaW5rIGxvb2tzIGJldHRlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O25vbGtrdm9sa2tqb2xra1dvbGtrcm9sa2tnb2xra2pvbGtrdiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi43cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjbm9sa2t2b2xra2pvbGtrV29sa2tyb2xra2dvbGtram9sa2t2JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7IEJ5ICYjMzk7JiMzOTt0aGV5JiMzOTsmIzM5OyB5b3UgbWVhbiBOYW9taSB3YW50cyB0byBrbm93LCByaWdodD8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF80XzMwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7IEJ5ICYjMzk7JiMzOTt0aGV5JiMzOTsmIzM5OyB5b3UgbWVhbiBOYW9taSB3YW50cyB0byBrbm93LCByaWdodD8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfNF8zMCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyOTAiIG5hbWU9IkFubmllQ2hhdEVwNF80XzI2YSIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSwzNjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfNF8yNmEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WW91IGFyZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBhcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1lvdSBhcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7SG9sa2t0b2xra2JvbGtrYm9sa2tNb2xra0dvbGtrd29sa2tJJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdElkICA9ICZxdW90OyNIb2xra3RvbGtrYm9sa2tib2xra01vbGtrR29sa2t3b2xra0kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJdOKAmXMganVzdCB0aGF0IHNoZSBsb29rcyByZWFsbHkgZ29vZCB0b28mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF80XzI3YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0l04oCZcyBqdXN0IHRoYXQgc2hlIGxvb2tzIHJlYWxseSBnb29kIHRvbyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF80XzI3YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyOTEiIG5hbWU9IkFubmllQ2hhdEVwNF80XzI3YSIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDM3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF80XzI3YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJdOKAmXMganVzdCB0aGF0IHNoZSBsb29rcyByZWFsbHkgZ29vZCB0b28mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdOKAmXMganVzdCB0aGF0IHNoZSBsb29rcyByZWFsbHkgZ29vZCB0b28mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0l04oCZcyBqdXN0IHRoYXQgc2hlIGxvb2tzIHJlYWxseSBnb29kIHRvbyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC45cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtUaGV5IHdhbnQgdG8ga25vdyB3aG8geW91IHRoaW5rIGxvb2tzIGJldHRlciZxdW90OyAmcXVvdDtXb2xra3pvbGtrUW9sa2tlb2xra1BvbGtrem9sa2tFb2xra2xvbGtrdW9sa2t1b2xra09vbGtrSm9sa2tsb2xra1JvbGtrS29sa2t1JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoZXkgd2FudCB0byBrbm93IHdobyB5b3UgdGhpbmsgbG9va3MgYmV0dGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtUaGV5IHdhbnQgdG8ga25vdyB3aG8geW91IHRoaW5rIGxvb2tzIGJldHRlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O0NvbGtrZG9sa2tEb2xra0JvbGtrU29sa2tvb2xra0RvbGtrWCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS44cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjQ29sa2tkb2xra0RvbGtrQm9sa2tTb2xra29vbGtrRG9sa2tYJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7IEJ5ICYjMzk7JiMzOTt0aGV5JiMzOTsmIzM5OyB5b3UgbWVhbiBOYW9taSB3YW50cyB0byBrbm93LCByaWdodD8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF80XzMwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7IEJ5ICYjMzk7JiMzOTt0aGV5JiMzOTsmIzM5OyB5b3UgbWVhbiBOYW9taSB3YW50cyB0byBrbm93LCByaWdodD8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfNF8zMCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyOTIiIG5hbWU9IkFubmllQ2hhdEVwNF80XzMwIiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsMzcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzRfMzAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7Qnkg4oCZ4oCZdGhleeKAmeKAmSB5b3UgbWVhbiBOYW9taSB3YW50cyB0byBrbm93LCByaWdodD8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCeSDigJnigJl0aGV54oCZ4oCZIHlvdSBtZWFuIE5hb21pIHdhbnRzIHRvIGtub3csIHJpZ2h0PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7Qnkg4oCZ4oCZdGhleeKAmeKAmSB5b3UgbWVhbiBOYW9taSB3YW50cyB0byBrbm93LCByaWdodD8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7WWVhaCwgdGhhdOKAmXMgcmlnaHQmcXVvdDsgJnF1b3Q7VW9sa2tNb2xra29vbGtrb29sa2tVb2xra1hvbGtrV29sa2tpb2xra1BvbGtrdG9sa2trb2xra0FvbGtrQW9sa2txb2xra1dvbGtrcCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFoLCB0aGF04oCZcyByaWdodCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7WWVhaCwgdGhhdOKAmXMgcmlnaHQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtzb2xra01vbGtrV29sa2tQb2xra09vbGtrZG9sa2t6b2xra3AmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuMnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3NvbGtrTW9sa2tXb2xra1BvbGtrT29sa2tkb2xra3pvbGtrcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O05hb21pIGxvb2tzIGJldHRlciZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzRfMzFhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7TmFvbWkgbG9va3MgYmV0dGVyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzRfMzFhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I3NvbGtrTW9sa2tXb2xra1BvbGtrT29sa2tkb2xra3pvbGtrcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1ZhbmVzc2EgbG9va3MgYmV0dGVyJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtBbm5pZUNoYXRFcDRfNF8zMWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtWYW5lc3NhIGxvb2tzIGJldHRlciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF80XzMxYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyOTMiIG5hbWU9IkFubmllQ2hhdEVwNF80XzMxYSIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDM3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF80XzMxYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtOYW9taSBsb29rcyBiZXR0ZXImcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtOYW9taSBsb29rcyBiZXR0ZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O05hb21pIGxvb2tzIGJldHRlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkbmFvbWlfcmVsID0gJG5hb21pX3JlbCsxJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0FvbGtraW9sa2twb2xra1lvbGtrZW9sa2trb2xra1NvbGtrVCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjQW9sa2tpb2xra3BvbGtrWW9sa2tlb2xra2tvbGtrU29sa2tUJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhhdOKAmXMgY2xvc2UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF80XzMyYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoYXTigJlzIGNsb3NlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzRfMzJhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI5NCIgbmFtZT0iQW5uaWVDaGF0RXA0XzRfMzFiIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMzcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzRfMzFiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1ZhbmVzc2EgbG9va3MgYmV0dGVyJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VmFuZXNzYSBsb29rcyBiZXR0ZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1ZhbmVzc2EgbG9va3MgYmV0dGVyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICR2YW5lc3NhX3JlbCA9ICR2YW5lc3NhX3JlbCsxJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0ZvbGtra29sa2tQb2xra1ZvbGtrWm9sa2tEb2xra3pvbGtrciZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjRm9sa2trb2xra1BvbGtrVm9sa2tab2xra0RvbGtrem9sa2tyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7Tm8gY29udGVzdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzRfMzJiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7Tm8gY29udGVzdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF80XzMyYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyOTUiIG5hbWU9IkFubmllQ2hhdEVwNF80XzMyYSIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDM3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF80XzMyYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaG91Z2ggaXTigJlzIGNsb3NlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhvdWdoIGl04oCZcyBjbG9zZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGhvdWdoIGl04oCZcyBjbG9zZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtOYW9taSBzYXlzIHNoZSBhbHJlYWR5IGtuZXcgdGhhdCZxdW90OyAmcXVvdDtkb2xra1lvbGtrV29sa2tJb2xra3pvbGtreW9sa2tVb2xra0xvbGtrRW9sa2thb2xra3dvbGtrQW9sa2t5b2xra1hvbGtrSG9sa2tLJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7QW5uaWUmcXVvdDssIG1lc3NhZ2U6ICZxdW90O05hb21pIHNheXMgc2hlIGFscmVhZHkga25ldyB0aGF0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtOYW9taSBzYXlzIHNoZSBhbHJlYWR5IGtuZXcgdGhhdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNnMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7V2VsbCBob25leSwgd2XigJl2ZSBnb3QgdG8gZ28mcXVvdDsgJnF1b3Q7c29sa2tPb2xra2JvbGtrdm9sa2tZb2xra1ZvbGtrUG9sa2trb2xra2FvbGtrVW9sa2t6b2xra2hvbGtrYm9sa2tmb2xra2hvbGtrSiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZWxsIGhvbmV5LCB3ZeKAmXZlIGdvdCB0byBnbyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7V2VsbCBob25leSwgd2XigJl2ZSBnb3QgdG8gZ28mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi43cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjJzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1dlIGhhdmUgYmVlbiB0cnlpbmcgb24gY2xvdGhlcyBmb3IgYWxtb3N0IGhhbGYgYW4gaG91ciBub3cmcXVvdDsgJnF1b3Q7SG9sa2tTb2xra3VvbGtram9sa2tVb2xra1pvbGtrUm9sa2tzb2xra2RvbGtrYW9sa2tHb2xra1FvbGtrdG9sa2t5b2xra1lvbGtrWSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZSBoYXZlIGJlZW4gdHJ5aW5nIG9uIGNsb3RoZXMgZm9yIGFsbW9zdCBoYWxmIGFuIGhvdXIgbm93JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtXZSBoYXZlIGJlZW4gdHJ5aW5nIG9uIGNsb3RoZXMgZm9yIGFsbW9zdCBoYWxmIGFuIGhvdXIgbm93JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuNXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtJ4oCZbGwgdGV4dCB5b3UgbGF0ZXIgd2hlbiB3ZSBnZXQgdG8gdGhlIGNsdWImcXVvdDsgJnF1b3Q7c29sa2tPb2xra1NvbGtrTm9sa2tIb2xra3RvbGtreW9sa2tPb2xra0dvbGtrVm9sa2tjb2xra0xvbGtrUm9sa2tDb2xra2JvbGtrSCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbGwgdGV4dCB5b3UgbGF0ZXIgd2hlbiB3ZSBnZXQgdG8gdGhlIGNsdWImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0nigJlsbCB0ZXh0IHlvdSBsYXRlciB3aGVuIHdlIGdldCB0byB0aGUgY2x1YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O05vbGtrd29sa2tQb2xra3dvbGtrc29sa2tEb2xra1VvbGtrciZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNi4xcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3RJZCAgPSAmcXVvdDsjTm9sa2t3b2xra1BvbGtrd29sa2tzb2xra0RvbGtrVW9sa2tyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7R3JlYXQgYmFiZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzRfNDAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtHcmVhdCBiYWJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzRfNDAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMjk2IiBuYW1lPSJBbm5pZUNoYXRFcDRfNF8zMmIiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwzNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfNF8zMmImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRBbm5pZV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7Tm8gY29udGVzdCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O05vIGNvbnRlc3QmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O05vIGNvbnRlc3QmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7TmFvbWkgc2F5cyBzaGXigJlzIHN0YXJ0aW5nIHRvIHN1c3BlY3QgeW914oCZcmUgZ2F5JnF1b3Q7ICZxdW90O05vbGtrWW9sa2tzb2xra1RvbGtrTW9sa2tib2xra3ZvbGtrTG9sa2t0b2xra2pvbGtrRW9sa2tOb2xra2xvbGtrWm9sa2tlb2xra2YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TmFvbWkgc2F5cyBzaGXigJlzIHN0YXJ0aW5nIHRvIHN1c3BlY3QgeW914oCZcmUgZ2F5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtOYW9taSBzYXlzIHNoZeKAmXMgc3RhcnRpbmcgdG8gc3VzcGVjdCB5b3XigJlyZSBnYXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtJb2xra3ZvbGtrVm9sa2t5b2xra0pvbGtrRW9sa2t6b2xra3EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuN3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0lvbGtrdm9sa2tWb2xra3lvbGtrSm9sa2tFb2xra3pvbGtrcSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgZGlkbuKAmXQgZXhwZWN0IGFueSBvdGhlciByZWFjdGlvbiBmcm9tIGhlciZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzRfMzNiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBkaWRu4oCZdCBleHBlY3QgYW55IG90aGVyIHJlYWN0aW9uIGZyb20gaGVyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7QW5uaWVDaGF0RXA0XzRfMzNiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI5NyIgbmFtZT0iQW5uaWVDaGF0RXA0XzRfMzNiIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMzcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgID0gJnF1b3Q7QW5uaWVDaGF0RXA0XzRfMzNiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgZGlkbuKAmXQgZXhwZWN0IGFueSBvdGhlciByZWFjdGlvbiBmcm9tIGhlciZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZGlkbuKAmXQgZXhwZWN0IGFueSBvdGhlciByZWFjdGlvbiBmcm9tIGhlciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBkaWRu4oCZdCBleHBlY3QgYW55IG90aGVyIHJlYWN0aW9uIGZyb20gaGVyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9sYXVnaC53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbGF1Z2gud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O1dlbGwgaG9uZXksIHdl4oCZdmUgZ290IHRvIGdvJnF1b3Q7ICZxdW90O3RvbGtrUG9sa2tWb2xra0dvbGtra29sa2tEb2xra2dvbGtrWm9sa2tUb2xra0dvbGtraG9sa2tGb2xra1RvbGtrUG9sa2tHb2xra0MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2VsbCBob25leSwgd2XigJl2ZSBnb3QgdG8gZ28mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O1dlbGwgaG9uZXksIHdl4oCZdmUgZ290IHRvIGdvJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuNXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtXZSBoYXZlIGJlZW4gdHJ5aW5nIG9uIGNsb3RoZXMgZm9yIGFsbW9zdCBoYWxmIGFuIGhvdXIgbm93JnF1b3Q7ICZxdW90O2lvbGtrem9sa2tYb2xra3RvbGtrdG9sa2tFb2xra0FvbGtrVW9sa2tYb2xra2hvbGtrSm9sa2tJb2xra2hvbGtrZ29sa2tXb2xra0YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2UgaGF2ZSBiZWVuIHRyeWluZyBvbiBjbG90aGVzIGZvciBhbG1vc3QgaGFsZiBhbiBob3VyIG5vdyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7V2UgaGF2ZSBiZWVuIHRyeWluZyBvbiBjbG90aGVzIGZvciBhbG1vc3QgaGFsZiBhbiBob3VyIG5vdyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7QW5uaWUmcXVvdDsgJnF1b3Q7SeKAmWxsIHRleHQgeW91IGxhdGVyIHdoZW4gd2UgZ2V0IHRvIHRoZSBjbHViJnF1b3Q7ICZxdW90O2pvbGtrcG9sa2t1b2xra0ZvbGtrc29sa2tUb2xra3NvbGtrZW9sa2tkb2xra3BvbGtrdm9sa2tnb2xra2xvbGtrdW9sa2tBb2xra3QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmWxsIHRleHQgeW91IGxhdGVyIHdoZW4gd2UgZ2V0IHRvIHRoZSBjbHViJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtJ4oCZbGwgdGV4dCB5b3UgbGF0ZXIgd2hlbiB3ZSBnZXQgdG8gdGhlIGNsdWImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtGb2xra3FvbGtrWm9sa2tIb2xra2ZvbGtrUm9sa2twb2xra00mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDUuOXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I0ZvbGtrcW9sa2tab2xra0hvbGtrZm9sa2tSb2xra3BvbGtrTSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0dyZWF0IGJhYmUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0FubmllQ2hhdEVwNF80XzQwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7R3JlYXQgYmFiZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0FubmllQ2hhdEVwNF80XzQwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjI5OCIgbmFtZT0iQW5uaWVDaGF0RXA0XzRfNDAiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSwzNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSAgPSAmcXVvdDtBbm5pZUNoYXRFcDRfNF80MCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEFubmllX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtHcmVhdCBiYWJlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7R3JlYXQgYmFiZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7R3JlYXQgYmFiZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtSb2xra01vbGtrRm9sa2t0b2xra09vbGtrZ29sa2t1b2xra2YmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0SWQgID0gJnF1b3Q7I1JvbGtrTW9sa2tGb2xra3RvbGtrT29sa2tnb2xra3VvbGtrZiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1Rha2UgY2FyZSwgSSBsb3ZlIHlvdSZxdW90OywgcGFzc2FnZTogJnF1b3Q7QW5uaWVDaGF0RXA0XzRfNDEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUYWtlIGNhcmUsIEkgbG92ZSB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtBbm5pZUNoYXRFcDRfNF80MSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIyOTkiIG5hbWU9IkFubmllQ2hhdEVwNF80XzQxIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDM3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlICA9ICZxdW90O0FubmllQ2hhdEVwNF80XzQxJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkQW5uaWVfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1Rha2UgY2FyZSwgSSBsb3ZlIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1Rha2UgY2FyZSwgSSBsb3ZlIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7VGFrZSBjYXJlLCBJIGxvdmUgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0FubmllJnF1b3Q7ICZxdW90O0kgbG92ZSB5b3UgdG9vJnF1b3Q7ICZxdW90O29vbGtrZW9sa2tab2xra1JvbGtrVm9sa2tZb2xra0NvbGtrQm9sa2tyb2xra2xvbGtrVW9sa2tNb2xra0NvbGtrTW9sa2t1b2xra20mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtBbm5pZSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBsb3ZlIHlvdSB0b28mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgbG92ZSB5b3UgdG9vJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfaGVhcnRzLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0FubmllJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMi4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SSBsb3ZlIHlvdSBtb3JlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSA9ICZxdW90O0FubmllQ2hhdEVwNF80XzQxJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2xhc3RfaG91ciA9ICZxdW90OzE4OjU1JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEFubmllX2NoYXQgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRob3VyID0gJnF1b3Q7MTg6NTUmcXVvdDsmZ3Q7Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O29mZmxpbmUtdGV4dCZxdW90OyZndDtBbm5pZSBpcyBvZmZsaW5lJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRlbmRPZkNvbnRlbnQgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRlcDQgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMwMCIgbmFtZT0iQW5uaWVfbm90ZSIgdGFncz0ibm90ZXNpbiBub3Rob3VyIiBwb3NpdGlvbj0iMTIyNSwzNzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2hlYWRlciAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtBbm5pZSZxdW90OyAmcXVvdDtOb3RlcyZxdW90OyB0cnVlJmd0OyZndDsKICAgICZsdDtkaXYgaWQ9JnF1b3Q7cGFkZGluZy1jb250YWluZXImcXVvdDsgY2xhc3M9JnF1b3Q7dGV4dF9ibGFjayZxdW90OyZndDsKICAgICAgICAmbHQ7ZGl2Jmd0Oy0gU2hl4oCZcyBteSBnaXJsZnJpZW5kLiBXZSBtZXQgaW4gaGlnaCBzY2hvb2wgYW5kIGhhdmUgYmVlbiBpbnNlcGFyYWJsZSBldmVyIHNpbmNlLiBXZeKAmXZlIGJlZW4gbGl2aW5nIHRvZ2V0aGVyIGZvciBhIGZldyB5ZWFycyBub3cuJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDtmb3IgX2kgcmFuZ2UgJEFubmllX25vdGVzJmd0OyZndDsKICAgICAgICAgICAgJmx0O2RpdiBzdHlsZT0mcXVvdDttYXJnaW4tdG9wOiAxNnB4JnF1b3Q7Jmd0Oy0gX2kmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7Jmx0Oy9mb3ImZ3Q7Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzAxIiBuYW1lPSJIYWlsZXlfY2hhdCIgdGFncz0ibWFwcCBub3Rob3VyIiBwb3NpdGlvbj0iMTAwLDM4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7Ci8qcmVnaW9uIEVtaWx5IGNoYXQqLwombHQ7Jmx0O2lmICRIYWlsZXlfY2hhdCA9PSB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7aGVhZGVyICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsgJEhhaWxleV9wYXVzZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2hlYWRlciAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7bWVzc2FnZV9jb250YWluZXImcXVvdDsmZ3Q7CiZsdDsmbHQ7Zm9yIF9saW5lIHJhbmdlICRIYWlsZXlfY2hhdExvZyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmIF9saW5lLnR5cGUgPT0gMSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkIF9saW5lLnNlbmRlciBfbGluZS5tZXNzYWdlIF9saW5lLmF2YXRhciZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2VpZiBfbGluZS50eXBlID09IDImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bWVzc2FnZV9pbWcgX2xpbmUubWVzc2FnZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2VpZiBfbGluZS50eXBlID09IDMmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bWVzc2FnZV92aWRlbyBfbGluZS5tZXNzYWdlWzBdIF9saW5lLm1lc3NhZ2VbMV0mZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlaWYgX2xpbmUudHlwZSA9PSA0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VfZW1vamkgX2xpbmUubWVzc2FnZSBmYWxzZSBfbGluZS5zZW5kZXImZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0Oy9mb3ImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRIYWlsZXlfcGF1c2VkID09IGZhbHNlJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJEhhaWxleV9jaGF0ID09IHRydWUmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkSGFpbGV5X2NoYXRTdGF0ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICZsdDtkaXYgQGlkPSZxdW90OyRIYWlsZXlfbGFzdElkLnNsaWNlKDEpJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7ZW5kJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwombHQ7L2RpdiZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtjaGF0X2JhciZxdW90OyZndDsKJmx0O2RpdiBpZD0mcXVvdDtjb250ZW50JnF1b3Q7Jmd0OwombHQ7Jmx0O2lmICRIYWlsZXlfcGF1c2VkID09IHRydWUmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkSGFpbGV5X29wdGlvbnNbMF0mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bGluayAkSGFpbGV5X29wdGlvbnNbMF0udGV4dCZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkSGFpbGV5X29wdGlvbnNbMF0ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRIYWlsZXlfb3B0aW9uc1sxXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICRIYWlsZXlfb3B0aW9uc1sxXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpbmNsdWRlICRIYWlsZXlfb3B0aW9uc1sxXS5wYXNzYWdlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJEhhaWxleV9vcHRpb25zWzJdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJEhhaWxleV9vcHRpb25zWzJdLnRleHQmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJEhhaWxleV9vcHRpb25zWzJdLnBhc3NhZ2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkSGFpbGV5X29wdGlvbnNbM10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bGluayAkSGFpbGV5X29wdGlvbnNbM10udGV4dCZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkSGFpbGV5X29wdGlvbnNbM10ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0O3RpbWVkIDAuMnMmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbEluc3RhKCk7CiAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzAyIiBuYW1lPSJIYWlsZXlTdGFydDEiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSwzODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtIaSAkbmFtZSwgTXIuIFBoaWxsaXBzIGFza2VkIG1lIHRvIHNlbmQgeW91IHRoZSBsYXN0IHF1YXJ0ZXLigJlzIHJlcG9ydCBzbyB5b3UgY2FuIHVzZSBpdCBhcyBhIHJlZmVyZW5jZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIaSAkbmFtZSwgTXIuIFBoaWxsaXBzIGFza2VkIG1lIHRvIHNlbmQgeW91IHRoZSBsYXN0IHF1YXJ0ZXLigJlzIHJlcG9ydCBzbyB5b3UgY2FuIHVzZSBpdCBhcyBhIHJlZmVyZW5jZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0hpICRuYW1lLCBNci4gUGhpbGxpcHMgYXNrZWQgbWUgdG8gc2VuZCB5b3UgdGhlIGxhc3QgcXVhcnRlcuKAmXMgcmVwb3J0IHNvIHlvdSBjYW4gdXNlIGl0IGFzIGEgcmVmZXJlbmNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgY2Fu4oCZdCBiZWxpZXZlIGhlIGFza2VkIHlvdSBmb3IgYSBmdWxsIHJlcG9ydCBpbiBzdWNoIGEgc2hvcnQgdGltZSZxdW90OyAmcXVvdDtDb2xra1VvbGtrZG9sa2tXb2xra0FvbGtrd29sa2tYb2xra2VvbGtrTm9sa2t0b2xra1JvbGtrbW9sa2t6b2xra1NvbGtrTG9sa2tDJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgaGUgYXNrZWQgeW91IGZvciBhIGZ1bGwgcmVwb3J0IGluIHN1Y2ggYSBzaG9ydCB0aW1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgaGUgYXNrZWQgeW91IGZvciBhIGZ1bGwgcmVwb3J0IGluIHN1Y2ggYSBzaG9ydCB0aW1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC45cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7WW91IG11c3QgaGF2ZSByZWFsbHkgcGlzc2VkIGhpbSBvZmYgdGhpcyB0aW1lJnF1b3Q7ICZxdW90O0pvbGtrY29sa2tsb2xra1FvbGtrRW9sa2tjb2xra1VvbGtrdm9sa2tmb2xra3lvbGtrdG9sa2tOb2xra0lvbGtrU29sa2tpb2xra1omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3UgbXVzdCBoYXZlIHJlYWxseSBwaXNzZWQgaGltIG9mZiB0aGlzIHRpbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZb3UgbXVzdCBoYXZlIHJlYWxseSBwaXNzZWQgaGltIG9mZiB0aGlzIHRpbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDt4b2xra0VvbGtrWm9sa2tSb2xra1hvbGtrdG9sa2tzb2xra0kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuMnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3hvbGtrRW9sa2tab2xra1JvbGtrWG9sa2t0b2xra3NvbGtrSSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGF0IGRhbW4gb2xkIG1hbiBoYXRlcyBtZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5U3RhcnQxXzJhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhhdCBkYW1uIG9sZCBtYW4gaGF0ZXMgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlTdGFydDFfMmEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3hvbGtrRW9sa2tab2xra1JvbGtrWG9sa2t0b2xra3NvbGtrSSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIHJlYWxseSBkb27igJl0IGtub3cgaWYgSSBjYW4gZmluaXNoIHRoaXMgYnkgRnJpZGF5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlTdGFydDFfMmImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIHJlYWxseSBkb27igJl0IGtub3cgaWYgSSBjYW4gZmluaXNoIHRoaXMgYnkgRnJpZGF5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5U3RhcnQxXzJiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzAzIiBuYW1lPSJIYWlsZXlTdGFydDFfMmEiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCwzODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5U3RhcnQxXzJhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhhdCBkYW1uIG9sZCBtYW4gaGF0ZXMgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhdCBkYW1uIG9sZCBtYW4gaGF0ZXMgbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGF0IGRhbW4gb2xkIG1hbiBoYXRlcyBtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtPb2xra2FvbGtrWm9sa2tab2xra1JvbGtrRG9sa2tCb2xra1EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I09vbGtrYW9sa2tab2xra1pvbGtrUm9sa2tEb2xra0JvbGtrUSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIHZvbHVudGVlcmVkIGZvciB0aGlzIHRyaXAgdGhpbmtpbmcgSeKAmWQgZWFybiBzb21lIHBvaW50cyB3aXRoIGhpbSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5U3RhcnQxXzQmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIHZvbHVudGVlcmVkIGZvciB0aGlzIHRyaXAgdGhpbmtpbmcgSeKAmWQgZWFybiBzb21lIHBvaW50cyB3aXRoIGhpbSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleVN0YXJ0MV80JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMwNCIgbmFtZT0iSGFpbGV5U3RhcnQxXzJiIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMzg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleVN0YXJ0MV8yYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgcmVhbGx5IGRvbuKAmXQga25vdyBpZiBJIGNhbiBmaW5pc2ggdGhpcyBieSBGcmlkYXkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSByZWFsbHkgZG9u4oCZdCBrbm93IGlmIEkgY2FuIGZpbmlzaCB0aGlzIGJ5IEZyaWRheSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgcmVhbGx5IGRvbuKAmXQga25vdyBpZiBJIGNhbiBmaW5pc2ggdGhpcyBieSBGcmlkYXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7VG9sa2tFb2xra3ZvbGtrVW9sa2t1b2xra3NvbGtrQW9sa2toJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNUb2xra0VvbGtrdm9sa2tVb2xra3VvbGtrc29sa2tBb2xra2gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSB2b2x1bnRlZXJlZCBmb3IgdGhpcyB0cmlwIHRoaW5raW5nIEnigJlkIGVhcm4gc29tZSBwb2ludHMgd2l0aCBoaW0mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleVN0YXJ0MV80JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSB2b2x1bnRlZXJlZCBmb3IgdGhpcyB0cmlwIHRoaW5raW5nIEnigJlkIGVhcm4gc29tZSBwb2ludHMgd2l0aCBoaW0mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlTdGFydDFfNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMDUiIG5hbWU9IkhhaWxleVN0YXJ0MV80IiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsMzg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleVN0YXJ0MV80JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSB2b2x1bnRlZXJlZCBmb3IgdGhpcyB0cmlwIHRoaW5raW5nIEnigJlkIGVhcm4gc29tZSBwb2ludHMgd2l0aCBoaW0mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB2b2x1bnRlZXJlZCBmb3IgdGhpcyB0cmlwIHRoaW5raW5nIEnigJlkIGVhcm4gc29tZSBwb2ludHMgd2l0aCBoaW0mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIHZvbHVudGVlcmVkIGZvciB0aGlzIHRyaXAgdGhpbmtpbmcgSeKAmWQgZWFybiBzb21lIHBvaW50cyB3aXRoIGhpbSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt3b2xra1RvbGtrUW9sa2tYb2xra2NvbGtraG9sa2tCb2xra3gmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3dvbGtrVG9sa2tRb2xra1hvbGtrY29sa2tob2xra0JvbGtreCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtCdXQgaXQgbG9va3MgbGlrZSBJIGp1c3QgZW5kZWQgdXAgcHV0dGluZyBteSBqb2IgYXQgcmlzayZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5U3RhcnQxXzUmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtCdXQgaXQgbG9va3MgbGlrZSBJIGp1c3QgZW5kZWQgdXAgcHV0dGluZyBteSBqb2IgYXQgcmlzayZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleVN0YXJ0MV81JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMwNiIgbmFtZT0iSGFpbGV5U3RhcnQxXzUiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSwzODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5U3RhcnQxXzUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtCdXQgaXQgbG9va3MgbGlrZSBJIGp1c3QgZW5kZWQgdXAgcHV0dGluZyBteSBqb2IgYXQgcmlzayZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgaXQgbG9va3MgbGlrZSBJIGp1c3QgZW5kZWQgdXAgcHV0dGluZyBteSBqb2IgYXQgcmlzayZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0J1dCBpdCBsb29rcyBsaWtlIEkganVzdCBlbmRlZCB1cCBwdXR0aW5nIG15IGpvYiBhdCByaXNrJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtEb27igJl0IHdvcnJ5LCBJ4oCZbGwgZG8gd2hhdCBJIGNhbiB0byBoZWxwIHlvdSZxdW90OyAmcXVvdDtjb2xra2dvbGtrSG9sa2tmb2xra0ZvbGtrVm9sa2tib2xra09vbGtrT29sa2ttb2xra2ZvbGtrVG9sa2tFb2xra1lvbGtrb29sa2ttJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RG9u4oCZdCB3b3JyeSwgSeKAmWxsIGRvIHdoYXQgSSBjYW4gdG8gaGVscCB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtEb27igJl0IHdvcnJ5LCBJ4oCZbGwgZG8gd2hhdCBJIGNhbiB0byBoZWxwIHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMnMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1lvdSB3ZXJlIGFsd2F5cyB0aGVyZSBmb3IgbWUgd2hlbiBJIGZpcnN0IGpvaW5lZCB0aGUgY29tcGFueSZxdW90OyAmcXVvdDtVb2xra1RvbGtrdm9sa2tzb2xra1dvbGtrQ29sa2ttb2xra2pvbGtrQ29sa2tHb2xra2NvbGtrY29sa2tab2xra1hvbGtrRm9sa2tEJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IHdlcmUgYWx3YXlzIHRoZXJlIGZvciBtZSB3aGVuIEkgZmlyc3Qgam9pbmVkIHRoZSBjb21wYW55JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WW91IHdlcmUgYWx3YXlzIHRoZXJlIGZvciBtZSB3aGVuIEkgZmlyc3Qgam9pbmVkIHRoZSBjb21wYW55JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS41cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7Q291bnQgb24gbWUgZm9yIHdoYXRldmVyIHlvdSBuZWVkLCBJIGFscmVhZHkgc2VudCB0aGUgcmVwb3J0IHRvIHlvdXIgZW1haWwmcXVvdDsgJnF1b3Q7R29sa2tMb2xra2dvbGtraW9sa2tQb2xra05vbGtrcW9sa2txb2xra01vbGtreW9sa2tCb2xra1NvbGtrSm9sa2tab2xra0RvbGtrSiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0NvdW50IG9uIG1lIGZvciB3aGF0ZXZlciB5b3UgbmVlZCwgSSBhbHJlYWR5IHNlbnQgdGhlIHJlcG9ydCB0byB5b3VyIGVtYWlsJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7Q291bnQgb24gbWUgZm9yIHdoYXRldmVyIHlvdSBuZWVkLCBJIGFscmVhZHkgc2VudCB0aGUgcmVwb3J0IHRvIHlvdXIgZW1haWwmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNS44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjhzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIGFsc28gaW5jbHVkZWQgYSB0ZW1wbGF0ZSB5b3UgY2FuIHVzZSBhcyBhIGJhc2UgZm9yIHRoZSBvbmUgeW91IG5lZWQgdG8gc3VibWl0JnF1b3Q7ICZxdW90O0pvbGtram9sa2t1b2xra0FvbGtrVW9sa2tzb2xra3hvbGtrQW9sa2tOb2xra21vbGtrQW9sa2tLb2xra0NvbGtrYm9sa2t5b2xra2kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGFsc28gaW5jbHVkZWQgYSB0ZW1wbGF0ZSB5b3UgY2FuIHVzZSBhcyBhIGJhc2UgZm9yIHRoZSBvbmUgeW91IG5lZWQgdG8gc3VibWl0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSBhbHNvIGluY2x1ZGVkIGEgdGVtcGxhdGUgeW91IGNhbiB1c2UgYXMgYSBiYXNlIGZvciB0aGUgb25lIHlvdSBuZWVkIHRvIHN1Ym1pdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA4LjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0tlZXAgbWUgdXBkYXRlZCBvbiBob3cgaXTigJlzIGdvaW5nJnF1b3Q7ICZxdW90O29vbGtrZm9sa2tRb2xra0xvbGtrSG9sa2tOb2xra05vbGtrZ29sa2tUb2xra3FvbGtrZW9sa2tUb2xra1RvbGtreW9sa2tvb2xra1QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtLZWVwIG1lIHVwZGF0ZWQgb24gaG93IGl04oCZcyBnb2luZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0tlZXAgbWUgdXBkYXRlZCBvbiBob3cgaXTigJlzIGdvaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7dW9sa2t3b2xra2xvbGtrQm9sa2tsb2xra0pvbGtrcG9sa2tTJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA5LjVzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyN1b2xra3dvbGtrbG9sa2tCb2xra2xvbGtrSm9sa2twb2xra1MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhhbmsgeW91IHNvIG11Y2gsIEhhaWxleSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5U3RhcnQxXzYmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaGFuayB5b3Ugc28gbXVjaCwgSGFpbGV5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5U3RhcnQxXzYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzA3IiBuYW1lPSJIYWlsZXlTdGFydDFfNiIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDM4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlTdGFydDFfNiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RoYW5rIHlvdSBzbyBtdWNoLCBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhbmsgeW91IHNvIG11Y2gsIEhhaWxleSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RoYW5rIHlvdSBzbyBtdWNoLCBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Sm9sa2tCb2xra3BvbGtrcW9sa2tUb2xra3VvbGtrSm9sa2tOJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNKb2xra0JvbGtrcG9sa2txb2xra1RvbGtrdW9sa2tKb2xra04mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBkb27igJl0IGtub3cgd2hhdCBJ4oCZZCBkbyB3aXRob3V0IHlvdSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5U3RhcnQxXzcmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGRvbuKAmXQga25vdyB3aGF0IEnigJlkIGRvIHdpdGhvdXQgeW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5U3RhcnQxXzcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzA4IiBuYW1lPSJIYWlsZXlTdGFydDFfNyIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDM4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlTdGFydDFfNyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgZG9u4oCZdCBrbm93IHdoYXQgSeKAmWQgZG8gd2l0aG91dCB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBkb27igJl0IGtub3cgd2hhdCBJ4oCZZCBkbyB3aXRob3V0IHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgZG9u4oCZdCBrbm93IHdoYXQgSeKAmWQgZG8gd2l0aG91dCB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjhzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2ltZyAmcXVvdDthc3NldHMvaW1nL2VwMS9oYWlsZXlfcGhvdG9fMS53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7Um9sa2tUb2xra3NvbGtrUm9sa2tOb2xra2lvbGtrZG9sa2tYb2xra0VvbGtrYW9sa2t5b2xra1FvbGtrQm9sa2tIb2xra0ZvbGtreSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMiwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZXAxL2hhaWxleV9waG90b18xLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRwaG90b3MucHVzaCgmcXVvdDthc3NldHMvaW1nL2VwMS9oYWlsZXlfcGhvdG9fMS53ZWJwJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjhzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1lvdSBnb3QgdGhpcyAkbmFtZSEmcXVvdDsgJnF1b3Q7Um9sa2tMb2xra2RvbGtreG9sa2tHb2xra0FvbGtrdW9sa2t5b2xra09vbGtrb29sa2tib2xra2hvbGtreG9sa2tFb2xra3lvbGtrbCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBnb3QgdGhpcyAkbmFtZSEmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZb3UgZ290IHRoaXMgJG5hbWUhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuOHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjhzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVDaGF0Ml8xJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuOHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SGV5IGhvbmV5LCBob3figJlzIGV2ZXJ5dGhpbmcgZ29pbmcgb3ZlciB0aGVyZT8mcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi44cyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1lvdSBnb3QgdGhpcyAkbmFtZSEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSA9ICZxdW90O0hhaWxleVN0YXJ0NCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdF9ob3VyID0gJnF1b3Q7MTA6MjgmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXQgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRob3VyID0gJnF1b3Q7MTA6MjgmcXVvdDsmZ3Q7Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O29mZmxpbmUtdGV4dCZxdW90OyZndDtIYWlsZXkgaXMgb2ZmbGluZSZsdDsvZGl2Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMDkiIG5hbWU9IkhhaWxleUNoYXRFcDJfMl8xIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDM4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90OyRuYW1lLCBhcmUgeW91IHN0aWxsIGF3YWtlPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDskbmFtZSwgYXJlIHlvdSBzdGlsbCBhd2FrZT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDskbmFtZSwgYXJlIHlvdSBzdGlsbCBhd2FrZT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7Zm9sa2tQb2xra3RvbGtrVG9sa2t3b2xra3hvbGtrb29sa2tvJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjZzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNmb2xra1BvbGtrdG9sa2tUb2xra3dvbGtreG9sa2tvb2xra28mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WWVhaCwgSSYjMzk7bSBzdGlsbCBhdCB0aGUgb2ZmaWNlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1llYWgsIEkmIzM5O20gc3RpbGwgYXQgdGhlIG9mZmljZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl8yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzEwIiBuYW1lPSJIYWlsZXlDaGF0RXAyXzJfMiIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSwzODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZZWFoLCBJ4oCZbSBzdGlsbCBhdCB0aGUgb2ZmaWNlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1llYWgsIEnigJltIHN0aWxsIGF0IHRoZSBvZmZpY2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZZWFoLCBJ4oCZbSBzdGlsbCBhdCB0aGUgb2ZmaWNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2xvbGtrcm9sa2tUb2xra0FvbGtrWG9sa2t4b2xra2RvbGtrViZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjbG9sa2tyb2xra1RvbGtrQW9sa2tYb2xra3hvbGtrZG9sa2tWJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1doYXQgYSBzdXJwcmlzZSB0byBnZXQgYSBtZXNzYWdlIGZyb20geW91IGF0IHRoaXMgaG91ciZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXaGF0IGEgc3VycHJpc2UgdG8gZ2V0IGEgbWVzc2FnZSBmcm9tIHlvdSBhdCB0aGlzIGhvdXImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMTEiIG5hbWU9IkhhaWxleUNoYXRFcDJfMl8zIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsMzk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDJfMl8zJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7V2hhdCBhIHN1cnByaXNlIHRvIGdldCBhIG1lc3NhZ2UgZnJvbSB5b3UgYXQgdGhpcyBob3VyJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1doYXQgYSBzdXJwcmlzZSB0byBnZXQgYSBtZXNzYWdlIGZyb20geW91IGF0IHRoaXMgaG91ciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1doYXQgYSBzdXJwcmlzZSB0byBnZXQgYSBtZXNzYWdlIGZyb20geW91IGF0IHRoaXMgaG91ciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtJb2xra01vbGtrR29sa2tmb2xra1BvbGtrb29sa2tOb2xra3QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I0lvbGtrTW9sa2tHb2xra2ZvbGtrUG9sa2tvb2xra05vbGtrdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJcyBldmVyeXRoaW5nIG9rYXk/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0lzIGV2ZXJ5dGhpbmcgb2theT8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMTIiIG5hbWU9IkhhaWxleUNoYXRFcDJfMl80IiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsMzk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDJfMl80JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SXMgZXZlcnl0aGluZyBva2F5PyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJcyBldmVyeXRoaW5nIG9rYXk/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SXMgZXZlcnl0aGluZyBva2F5PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4xcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7WWVhaC4uLiZxdW90OyAmcXVvdDtKb2xra29vbGtrem9sa2tPb2xra0JvbGtrWm9sa2t5b2xra2pvbGtrVW9sa2tib2xra1FvbGtrcG9sa2twb2xra0lvbGtrY29sa2t1JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WWVhaC4uLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1llYWguLi4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtFdmVyeXRoaW5n4oCZcyBmaW5lJnF1b3Q7ICZxdW90O0NvbGtrZG9sa2trb2xra01vbGtrSW9sa2txb2xra2hvbGtrT29sa2tnb2xra2dvbGtra29sa2tqb2xra2VvbGtrSG9sa2t3b2xra0gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtFdmVyeXRoaW5n4oCZcyBmaW5lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7RXZlcnl0aGluZ+KAmXMgZmluZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjhzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNnMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1NvcnJ5IGZvciB0ZXh0aW5nIHlvdSBzbyBsYXRlJnF1b3Q7ICZxdW90O2tvbGtra29sa2tJb2xra2FvbGtrT29sa2t1b2xra2dvbGtrVG9sa2tub2xra2FvbGtrcG9sa2txb2xra1FvbGtrWm9sa2tab2xra3MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTb3JyeSBmb3IgdGV4dGluZyB5b3Ugc28gbGF0ZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1NvcnJ5IGZvciB0ZXh0aW5nIHlvdSBzbyBsYXRlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS43cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SXTigJlzIGp1c3QgdGhhdCB5b3Ugc2FpZCB5b3XigJlkIGhlbHAgbWUgaWYgSSBldmVyIGRlY2lkZWQgdG8gZ28gb3V0IGF0IG5pZ2h0JnF1b3Q7ICZxdW90O1RvbGtrdW9sa2tDb2xra0VvbGtrY29sa2tOb2xra0FvbGtrZW9sa2tYb2xra1lvbGtrcW9sa2ttb2xra0NvbGtrZG9sa2t3b2xra0cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdOKAmXMganVzdCB0aGF0IHlvdSBzYWlkIHlvdeKAmWQgaGVscCBtZSBpZiBJIGV2ZXIgZGVjaWRlZCB0byBnbyBvdXQgYXQgbmlnaHQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJdOKAmXMganVzdCB0aGF0IHlvdSBzYWlkIHlvdeKAmWQgaGVscCBtZSBpZiBJIGV2ZXIgZGVjaWRlZCB0byBnbyBvdXQgYXQgbmlnaHQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtBbmQsIHdlbGwuLi4gSSB0aGluayBJ4oCZbSBnb2luZyB0byBkbyBpdCZxdW90OyAmcXVvdDtGb2xra29vbGtrTW9sa2tWb2xra1BvbGtrRW9sa2tQb2xra1ZvbGtrQm9sa2tDb2xra0VvbGtrTW9sa2tYb2xra2dvbGtrem9sa2t2JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5kLCB3ZWxsLi4uIEkgdGhpbmsgSeKAmW0gZ29pbmcgdG8gZG8gaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtBbmQsIHdlbGwuLi4gSSB0aGluayBJ4oCZbSBnb2luZyB0byBkbyBpdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1JvbGtrQ29sa2tOb2xra0dvbGtrSm9sa2twb2xra2ZvbGtrWiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNi44cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjUm9sa2tDb2xra05vbGtrR29sa2tKb2xra3BvbGtrZm9sa2taJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1JpZ2h0LCB3aXRoIGFsbCB0aGlzIHdvcmssIEnigJlkIGNvbXBsZXRlbHkgZm9yZ290dGVuIGFib3V0IHRoYXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl81JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7UmlnaHQsIHdpdGggYWxsIHRoaXMgd29yaywgSeKAmWQgY29tcGxldGVseSBmb3Jnb3R0ZW4gYWJvdXQgdGhhdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl81JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMxMyIgbmFtZT0iSGFpbGV5Q2hhdEVwMl8yXzUiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCwzOTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtSaWdodCwgd2l0aCBhbGwgdGhpcyB3b3JrLCBJ4oCZZCBjb21wbGV0ZWx5IGZvcmdvdHRlbiBhYm91dCB0aGF0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1JpZ2h0LCB3aXRoIGFsbCB0aGlzIHdvcmssIEnigJlkIGNvbXBsZXRlbHkgZm9yZ290dGVuIGFib3V0IHRoYXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtSaWdodCwgd2l0aCBhbGwgdGhpcyB3b3JrLCBJ4oCZZCBjb21wbGV0ZWx5IGZvcmdvdHRlbiBhYm91dCB0aGF0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJZiB5b3XigJlyZSBidXN5LCB3ZSBjYW4gbGVhdmUgaXQgZm9yIGFub3RoZXIgZGF5JnF1b3Q7ICZxdW90O2xvbGtraW9sa2t4b2xra3lvbGtra29sa2tFb2xra0tvbGtrRm9sa2t6b2xra0JvbGtrT29sa2tYb2xra1pvbGtrT29sa2t6b2xra3UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJZiB5b3XigJlyZSBidXN5LCB3ZSBjYW4gbGVhdmUgaXQgZm9yIGFub3RoZXIgZGF5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SWYgeW914oCZcmUgYnVzeSwgd2UgY2FuIGxlYXZlIGl0IGZvciBhbm90aGVyIGRheSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1pvbGtrc29sa2tHb2xra2dvbGtrSm9sa2tRb2xra2tvbGtrZyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS45cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjWm9sa2tzb2xra0dvbGtrZ29sa2tKb2xra1FvbGtra29sa2tnJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O05vLCBubyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzYmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtObywgbm8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfNiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMTQiIG5hbWU9IkhhaWxleUNoYXRFcDJfMl82IiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsMzk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDJfMl82JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7Tm8sIG5vJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O05vLCBubyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O05vLCBubyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtVb2xra0JvbGtrUm9sa2tJb2xra1NvbGtra29sa2t3b2xra08mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I1VvbGtrQm9sa2tSb2xra0lvbGtrU29sa2trb2xra3dvbGtrTyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIHdvdWxkIGJlIGhvbm9yZWQgdG8gaGVscCB5b3UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl84JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSB3b3VsZCBiZSBob25vcmVkIHRvIGhlbHAgeW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzgmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzE1IiBuYW1lPSJIYWlsZXlDaGF0RXAyXzJfOCIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDM5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfOCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgd291bGQgYmUgaG9ub3JlZCB0byBoZWxwIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHdvdWxkIGJlIGhvbm9yZWQgdG8gaGVscCB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIHdvdWxkIGJlIGhvbm9yZWQgdG8gaGVscCB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7em9sa2tvb2xra1JvbGtrTm9sa2tLb2xra2ZvbGtrQW9sa2toJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyN6b2xra29vbGtrUm9sa2tOb2xra0tvbGtrZm9sa2tBb2xra2gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QXQgbGVhc3QgSeKAmWxsIGZlZWwgbGlrZSBJ4oCZbSBkb2luZyBzb21ldGhpbmcgZm9yIHlvdSBpbiByZXR1cm4gZm9yIGV2ZXJ5dGhpbmcgeW91IGRvIGZvciBtZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzkmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtBdCBsZWFzdCBJ4oCZbGwgZmVlbCBsaWtlIEnigJltIGRvaW5nIHNvbWV0aGluZyBmb3IgeW91IGluIHJldHVybiBmb3IgZXZlcnl0aGluZyB5b3UgZG8gZm9yIG1lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzE2IiBuYW1lPSJIYWlsZXlDaGF0RXAyXzJfOSIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDM5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfOSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0F0IGxlYXN0IEnigJlsbCBmZWVsIGxpa2UgSeKAmW0gZG9pbmcgc29tZXRoaW5nIGZvciB5b3UgaW4gcmV0dXJuIGZvciBldmVyeXRoaW5nIHlvdSBkbyBmb3IgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QXQgbGVhc3QgSeKAmWxsIGZlZWwgbGlrZSBJ4oCZbSBkb2luZyBzb21ldGhpbmcgZm9yIHlvdSBpbiByZXR1cm4gZm9yIGV2ZXJ5dGhpbmcgeW91IGRvIGZvciBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0F0IGxlYXN0IEnigJlsbCBmZWVsIGxpa2UgSeKAmW0gZG9pbmcgc29tZXRoaW5nIGZvciB5b3UgaW4gcmV0dXJuIGZvciBldmVyeXRoaW5nIHlvdSBkbyBmb3IgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7eG9sa2tjb2xra3hvbGtrZG9sa2tOb2xra09vbGtrcW9sa2tJJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyN4b2xra2NvbGtreG9sa2tkb2xra05vbGtrT29sa2txb2xra0kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7UGx1cywgaXQgd2lsbCBiZSBhIG5pY2Ugd2F5IHRvIGNsZWFyIG15IGhlYWQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xMCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1BsdXMsIGl0IHdpbGwgYmUgYSBuaWNlIHdheSB0byBjbGVhciBteSBoZWFkJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzEwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMxNyIgbmFtZT0iSGFpbGV5Q2hhdEVwMl8yXzEwIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsMzk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xMCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1BsdXMsIGl0IHdpbGwgYmUgYSBuaWNlIHdheSB0byBjbGVhciBteSBoZWFkJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1BsdXMsIGl0IHdpbGwgYmUgYSBuaWNlIHdheSB0byBjbGVhciBteSBoZWFkJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7UGx1cywgaXQgd2lsbCBiZSBhIG5pY2Ugd2F5IHRvIGNsZWFyIG15IGhlYWQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Rm9sa2ttb2xra2tvbGtram9sa2tHb2xra3FvbGtrSW9sa2t5JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNGb2xra21vbGtra29sa2tqb2xra0dvbGtrcW9sa2tJb2xra3kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QnV0IHRlbGwgbWUsIGhvdyBjYW4gSSBoZWxwPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzExJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QnV0IHRlbGwgbWUsIGhvdyBjYW4gSSBoZWxwPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl8xMSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMTgiIG5hbWU9IkhhaWxleUNoYXRFcDJfMl8xMSIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDM5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtCdXQgdGVsbCBtZSwgaG93IGNhbiBJIGhlbHA/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCB0ZWxsIG1lLCBob3cgY2FuIEkgaGVscD8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtCdXQgdGVsbCBtZSwgaG93IGNhbiBJIGhlbHA/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjJzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtXZWxsLCBpdCBtaWdodCBzdXJwcmlzZSB5b3UsIGJ1dCBJ4oCZdmUgbmV2ZXIgcmVhbGx5IGdvbmUgb3V0IGJlZm9yZSZxdW90OyAmcXVvdDttb2xra3ZvbGtrYW9sa2tjb2xra1pvbGtrSm9sa2t1b2xra01vbGtrY29sa2twb2xra2pvbGtrcW9sa2tCb2xra3JvbGtrU29sa2tVJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2VsbCwgaXQgbWlnaHQgc3VycHJpc2UgeW91LCBidXQgSeKAmXZlIG5ldmVyIHJlYWxseSBnb25lIG91dCBiZWZvcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtXZWxsLCBpdCBtaWdodCBzdXJwcmlzZSB5b3UsIGJ1dCBJ4oCZdmUgbmV2ZXIgcmVhbGx5IGdvbmUgb3V0IGJlZm9yZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1NvbGtrT29sa2tlb2xra05vbGtraG9sa2tMb2xra1NvbGtrRyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi4xcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjU29sa2tPb2xra2VvbGtrTm9sa2tob2xra0xvbGtrU29sa2tHJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O05vdCBzdXJwcmlzaW5nLCBsb2wmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O05vdCBzdXJwcmlzaW5nLCBsb2wmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzE5IiBuYW1lPSJIYWlsZXlDaGF0RXAyXzJfMTIiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsMzk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O05vdCBzdXJwcmlzaW5nLCBsb2wmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm90IHN1cnByaXNpbmcsIGxvbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O05vdCBzdXJwcmlzaW5nLCBsb2wmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2NyeWluZy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7SGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfY3J5aW5nLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS42cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSB3YXMgYWx3YXlzIHNvIGZvY3VzZWQgb24gc2Nob29sLCBhbmQgdGhlbiB3b3JrIHN0YXJ0ZWQgdGFraW5nIHVwIGFsbCBteSB0aW1lJnF1b3Q7ICZxdW90O2tvbGtrcG9sa2tvb2xra2ZvbGtrQ29sa2tvb2xra2hvbGtrRm9sa2tlb2xra09vbGtrQ29sa2tSb2xra2lvbGtrem9sa2tXb2xra2MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHdhcyBhbHdheXMgc28gZm9jdXNlZCBvbiBzY2hvb2wsIGFuZCB0aGVuIHdvcmsgc3RhcnRlZCB0YWtpbmcgdXAgYWxsIG15IHRpbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIHdhcyBhbHdheXMgc28gZm9jdXNlZCBvbiBzY2hvb2wsIGFuZCB0aGVuIHdvcmsgc3RhcnRlZCB0YWtpbmcgdXAgYWxsIG15IHRpbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy41cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIG5ldmVyIHJlYWxseSBoYWQgdGhlIGNoYW5jZSB0byBtYWtlIGZyaWVuZHMmcXVvdDsgJnF1b3Q7b29sa2tIb2xra3JvbGtrdm9sa2tDb2xra1JvbGtrcW9sa2tsb2xra1NvbGtrbW9sa2twb2xra0NvbGtrcW9sa2tBb2xra2dvbGtrViZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbmV2ZXIgcmVhbGx5IGhhZCB0aGUgY2hhbmNlIHRvIG1ha2UgZnJpZW5kcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgbmV2ZXIgcmVhbGx5IGhhZCB0aGUgY2hhbmNlIHRvIG1ha2UgZnJpZW5kcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMnMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0FuZCBldmVyeSBkYXksIEkgZmVlbCBsaWtlIGl04oCZcyBnZXR0aW5nIHRvbyBsYXRlIGZvciBtZSZxdW90OyAmcXVvdDtxb2xra1hvbGtrTm9sa2tQb2xra2dvbGtram9sa2tOb2xra0tvbGtram9sa2tib2xra0NvbGtrZW9sa2tNb2xra1NvbGtrc29sa2t3JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5kIGV2ZXJ5IGRheSwgSSBmZWVsIGxpa2UgaXTigJlzIGdldHRpbmcgdG9vIGxhdGUgZm9yIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QW5kIGV2ZXJ5IGRheSwgSSBmZWVsIGxpa2UgaXTigJlzIGdldHRpbmcgdG9vIGxhdGUgZm9yIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDYuOHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7TGlrZSBJ4oCZbSBvdXQgb2YgdG91Y2gmcXVvdDsgJnF1b3Q7Um9sa2t1b2xra2RvbGtrV29sa2txb2xra0dvbGtrZW9sa2tYb2xra1VvbGtrcm9sa2tQb2xra0VvbGtrRW9sa2tMb2xra2JvbGtrYyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0xpa2UgSeKAmW0gb3V0IG9mIHRvdWNoJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7TGlrZSBJ4oCZbSBvdXQgb2YgdG91Y2gmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtib2xra1FvbGtrR29sa2tJb2xra1NvbGtrUm9sa2tBb2xra2UmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDcuOXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I2JvbGtrUW9sa2tHb2xra0lvbGtrU29sa2tSb2xra0FvbGtrZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtIYWlsZXksIHlvdeKAmXJlIGEgYmVhdXRpZnVsIHdvbWFuJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtIYWlsZXksIHlvdeKAmXJlIGEgYmVhdXRpZnVsIHdvbWFuJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzEzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMyMCIgbmFtZT0iSGFpbGV5Q2hhdEVwMl8yXzEzIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDM5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtIYWlsZXksIHlvdeKAmXJlIGEgYmVhdXRpZnVsIHdvbWFuJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hhaWxleSwgeW914oCZcmUgYSBiZWF1dGlmdWwgd29tYW4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtIYWlsZXksIHlvdeKAmXJlIGEgYmVhdXRpZnVsIHdvbWFuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O01vbGtrRG9sa2tEb2xra01vbGtrUW9sa2tGb2xra2xvbGtrVyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjTW9sa2tEb2xra0RvbGtrTW9sa2tRb2xra0ZvbGtrbG9sa2tXJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoZXJl4oCZcyBubyBzdWNoIHRoaW5nIGFzIOKAnHRvbyBsYXRl4oCdIGZvciB5b3UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoZXJl4oCZcyBubyBzdWNoIHRoaW5nIGFzIOKAnHRvbyBsYXRl4oCdIGZvciB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzIxIiBuYW1lPSJIYWlsZXlDaGF0RXAyXzJfMTQiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCw0MTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzE0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhlcmXigJlzIG5vIHN1Y2ggdGhpbmcgYXMg4oCcdG9vIGxhdGXigJ0gZm9yIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGVyZeKAmXMgbm8gc3VjaCB0aGluZyBhcyDigJx0b28gbGF0ZeKAnSBmb3IgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhlcmXigJlzIG5vIHN1Y2ggdGhpbmcgYXMg4oCcdG9vIGxhdGXigJ0gZm9yIHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtBb2xra2dvbGtrV29sa2tKb2xra0hvbGtrWW9sa2tFb2xra1ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I0FvbGtrZ29sa2tXb2xra0pvbGtrSG9sa2tZb2xra0VvbGtrUiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3UganVzdCBuZWVkIHRvIHRha2UgdGhlIGZpcnN0IHN0ZXAmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xNSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdSBqdXN0IG5lZWQgdG8gdGFrZSB0aGUgZmlyc3Qgc3RlcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl8xNSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMjIiIG5hbWU9IkhhaWxleUNoYXRFcDJfMl8xNSIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDQxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZb3UganVzdCBuZWVkIHRvIHRha2UgdGhlIGZpcnN0IHN0ZXAmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGp1c3QgbmVlZCB0byB0YWtlIHRoZSBmaXJzdCBzdGVwJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WW91IGp1c3QgbmVlZCB0byB0YWtlIHRoZSBmaXJzdCBzdGVwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtEZWVwIGRvd24sIEkga25vdyB5b3XigJlyZSByaWdodCZxdW90OyAmcXVvdDtZb2xra2pvbGtrQm9sa2tYb2xra09vbGtra29sa2tnb2xra1NvbGtrYW9sa2tLb2xra2dvbGtrQW9sa2t2b2xra1VvbGtraW9sa2twJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RGVlcCBkb3duLCBJIGtub3cgeW914oCZcmUgcmlnaHQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtEZWVwIGRvd24sIEkga25vdyB5b3XigJlyZSByaWdodCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1RoYXTigJlzIHdoeSBJIHRleHRlZCB5b3UmcXVvdDsgJnF1b3Q7TG9sa2tYb2xra0NvbGtrVG9sa2tzb2xra1NvbGtraW9sa2tGb2xra0VvbGtrT29sa2tJb2xra1hvbGtrSG9sa2tFb2xra29vbGtraiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYXTigJlzIHdoeSBJIHRleHRlZCB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGF04oCZcyB3aHkgSSB0ZXh0ZWQgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSB3YW50ZWQgdG8gYXNrIHdoYXQgeW91IHRoaW5rIGFib3V0IHRoaXMgZHJlc3MgZm9yIHRvbmlnaHQmcXVvdDsgJnF1b3Q7cm9sa2tib2xra2lvbGtrT29sa2tKb2xra1dvbGtrTG9sa2tLb2xra1FvbGtrTW9sa2t5b2xra3pvbGtreG9sa2tGb2xra1JvbGtrdiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgd2FudGVkIHRvIGFzayB3aGF0IHlvdSB0aGluayBhYm91dCB0aGlzIGRyZXNzIGZvciB0b25pZ2h0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSB3YW50ZWQgdG8gYXNrIHdoYXQgeW91IHRoaW5rIGFib3V0IHRoaXMgZHJlc3MgZm9yIHRvbmlnaHQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC45cyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9pbWcgJnF1b3Q7YXNzZXRzL2ltZy9lcDIvaGFpbGV5X3Bob3RvXzIud2VicCZxdW90OyB0cnVlICZxdW90O2ZvbGtrbm9sa2tOb2xra0tvbGtrZm9sa2tmb2xra1FvbGtrVm9sa2tBb2xra0NvbGtrSm9sa2twb2xra3lvbGtrTm9sa2tnb2xra1YmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDIsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2VwMi9oYWlsZXlfcGhvdG9fMi53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkcGhvdG9zLnB1c2goJnF1b3Q7YXNzZXRzL2ltZy9lcDIvaGFpbGV5X3Bob3RvXzIud2VicCZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtGb2xra0VvbGtrZm9sa2t0b2xra1hvbGtrWG9sa2tLb2xra24mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDUuOXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I0ZvbGtrRW9sa2tmb2xra3RvbGtrWG9sa2tYb2xra0tvbGtrbiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGxvdmUgaXQuIFlvdSBsb29rIGdyZWF0IGluIGl0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTZhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBsb3ZlIGl0LiBZb3UgbG9vayBncmVhdCBpbiBpdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl8xNmEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I0ZvbGtrRW9sa2tmb2xra3RvbGtrWG9sa2tYb2xra0tvbGtrbiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3Ugc2hvdWxkIHdlYXIgc29tZXRoaW5nIG1vcmUgZGFyaW5nJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTZiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WW91IHNob3VsZCB3ZWFyIHNvbWV0aGluZyBtb3JlIGRhcmluZyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl8xNmImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzIzIiBuYW1lPSJIYWlsZXlDaGF0RXAyXzJfMTZhIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsNDEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xNmEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIGxvdmUgaXQuIFlvdSBsb29rIGdyZWF0IGluIGl0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbG92ZSBpdC4gWW91IGxvb2sgZ3JlYXQgaW4gaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIGxvdmUgaXQuIFlvdSBsb29rIGdyZWF0IGluIGl0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtUaGFua3MsICRuYW1lJnF1b3Q7ICZxdW90O1BvbGtrRm9sa2tmb2xra3RvbGtrcW9sa2thb2xra0xvbGtrVG9sa2tob2xra0NvbGtrZ29sa2tSb2xra0JvbGtrV29sa2t5b2xra3omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGFua3MsICRuYW1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhhbmtzLCAkbmFtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0l04oCZcyBkZWNpZGVkLCB0aGVuJnF1b3Q7ICZxdW90O0lvbGtrdW9sa2tFb2xra0FvbGtrRG9sa2tub2xra2FvbGtrbm9sa2tBb2xra0dvbGtrQW9sa2tUb2xra2lvbGtrRm9sa2twb2xra0omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdOKAmXMgZGVjaWRlZCwgdGhlbiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0l04oCZcyBkZWNpZGVkLCB0aGVuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SeKAmWxsIHdlYXIgdGhpcyBkcmVzcyZxdW90OyAmcXVvdDtVb2xra2ZvbGtrRm9sa2tGb2xra1lvbGtrbm9sa2tFb2xra0NvbGtrV29sa2tNb2xra0hvbGtraW9sa2tKb2xra05vbGtrRm9sa2tBJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmWxsIHdlYXIgdGhpcyBkcmVzcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0nigJlsbCB3ZWFyIHRoaXMgZHJlc3MmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4wcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9tb3V0aC53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7SGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfaGFwcHlfbW91dGgud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgNC4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjlzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtIZXkgJG5hbWUsIGlzIGl0IG9rYXkgaWYgSSB0ZXh0IHlvdSB3aGVuIEkgZ2V0IHRvIHRoZSBuaWdodGNsdWIgdG8gYXNrIGZvciB0aXBzPyZxdW90OyAmcXVvdDtxb2xra1pvbGtrQm9sa2tmb2xra1JvbGtrUG9sa2tob2xra2NvbGtreW9sa2tnb2xra1hvbGtraG9sa2tZb2xra0FvbGtrcm9sa2t2JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGV5ICRuYW1lLCBpcyBpdCBva2F5IGlmIEkgdGV4dCB5b3Ugd2hlbiBJIGdldCB0byB0aGUgbmlnaHRjbHViIHRvIGFzayBmb3IgdGlwcz8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtIZXkgJG5hbWUsIGlzIGl0IG9rYXkgaWYgSSB0ZXh0IHlvdSB3aGVuIEkgZ2V0IHRvIHRoZSBuaWdodGNsdWIgdG8gYXNrIGZvciB0aXBzPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O0tvbGtrbG9sa2tvb2xra1JvbGtrSm9sa2tDb2xra2lvbGtreSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNi41cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjS29sa2tsb2xra29vbGtrUm9sa2tKb2xra0NvbGtraW9sa2t5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O09mIGNvdXJzZSwgSeKAmWxsIGJlIGhlcmUgZm9yIGEgd2hpbGUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xN2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtPZiBjb3Vyc2UsIEnigJlsbCBiZSBoZXJlIGZvciBhIHdoaWxlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzE3YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMjQiIG5hbWU9IkhhaWxleUNoYXRFcDJfMl8xNmIiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSw0MTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzE2YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdSBzaG91bGQgd2VhciBzb21ldGhpbmcgbW9yZSBkYXJpbmcmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IHNob3VsZCB3ZWFyIHNvbWV0aGluZyBtb3JlIGRhcmluZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1lvdSBzaG91bGQgd2VhciBzb21ldGhpbmcgbW9yZSBkYXJpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2RvdWJ0LndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9kb3VidC53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1lvdSB0aGluayBzbz8mcXVvdDsgJnF1b3Q7Y29sa2t4b2xra01vbGtrUW9sa2tHb2xra0RvbGtrR29sa2tIb2xra2pvbGtrVG9sa2t5b2xra1VvbGtrT29sa2tDb2xra3RvbGtreCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSB0aGluayBzbz8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZb3UgdGhpbmsgc28/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSBhbHJlYWR5IGZlZWwgYSBiaXQgb3V0IG9mIHBsYWNlIHdpdGggdGhpcyBvbmUmcXVvdDsgJnF1b3Q7bG9sa2tDb2xra3FvbGtrUG9sa2tmb2xra3hvbGtrVm9sa2tNb2xra2RvbGtrQ29sa2t3b2xra0hvbGtrb29sa2tib2xra3lvbGtrQSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgYWxyZWFkeSBmZWVsIGEgYml0IG91dCBvZiBwbGFjZSB3aXRoIHRoaXMgb25lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSBhbHJlYWR5IGZlZWwgYSBiaXQgb3V0IG9mIHBsYWNlIHdpdGggdGhpcyBvbmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtCb2xra21vbGtrZm9sa2tMb2xra2FvbGtrbm9sa2tsb2xra2ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuOXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I0JvbGtrbW9sa2tmb2xra0xvbGtrYW9sa2tub2xra2xvbGtrYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUcnVzdCBtZSBIYWlsZXkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xN2ImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUcnVzdCBtZSBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTdiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMyNSIgbmFtZT0iSGFpbGV5Q2hhdEVwMl8yXzE3YSIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDQxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTdhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7T2YgY291cnNlLCBJ4oCZbGwgYmUgaGVyZSBmb3IgYSB3aGlsZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPZiBjb3Vyc2UsIEnigJlsbCBiZSBoZXJlIGZvciBhIHdoaWxlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7T2YgY291cnNlLCBJ4oCZbGwgYmUgaGVyZSBmb3IgYSB3aGlsZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtPb2xra2xvbGtrZm9sa2tLb2xra2ZvbGtrUW9sa2tLb2xra04mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I09vbGtrbG9sa2tmb2xra0tvbGtrZm9sa2tRb2xra0tvbGtrTiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtQcm9iYWJseSBwdWxsaW5nIGFuIGFsbC1uaWdodGVyJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMThhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7UHJvYmFibHkgcHVsbGluZyBhbiBhbGwtbmlnaHRlciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl8xOGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzI2IiBuYW1lPSJIYWlsZXlDaGF0RXAyXzJfMThhIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsNDEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xOGEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtQcm9iYWJseSBwdWxsaW5nIGFuIGFsbC1uaWdodGVyJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1Byb2JhYmx5IHB1bGxpbmcgYW4gYWxsLW5pZ2h0ZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtQcm9iYWJseSBwdWxsaW5nIGFuIGFsbC1uaWdodGVyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3lvbGtrbm9sa2tjb2xra0xvbGtrR29sa2tWb2xra3NvbGtrTSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjeW9sa2tub2xra2NvbGtrTG9sa2tHb2xra1ZvbGtrc29sa2tNJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0l0IHdpbGwgYmUgYSBnb29kIGRpc3RyYWN0aW9uIGZvciBtZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzE5YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0l0IHdpbGwgYmUgYSBnb29kIGRpc3RyYWN0aW9uIGZvciBtZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl8xOWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzI3IiBuYW1lPSJIYWlsZXlDaGF0RXAyXzJfMTlhIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsNDEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xOWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJdCB3aWxsIGJlIGEgZ29vZCBkaXN0cmFjdGlvbiBmb3IgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXQgd2lsbCBiZSBhIGdvb2QgZGlzdHJhY3Rpb24gZm9yIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SXQgd2lsbCBiZSBhIGdvb2QgZGlzdHJhY3Rpb24gZm9yIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtBbHJpZ2h0IHRoZW4mcXVvdDsgJnF1b3Q7aW9sa2tUb2xra1BvbGtrcW9sa2tSb2xra2FvbGtrQm9sa2tmb2xra3VvbGtrS29sa2tTb2xra09vbGtrZ29sa2twb2xra2NvbGtraSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FscmlnaHQgdGhlbiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0FscmlnaHQgdGhlbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0nigJlsbCB0ZXh0IHlvdSB3aGVuIEkgZ2V0IHRoZXJlJnF1b3Q7ICZxdW90O3NvbGtrWG9sa2tsb2xra1BvbGtrZ29sa2tFb2xra3lvbGtrb29sa2thb2xra3VvbGtrY29sa2t6b2xra0tvbGtrRG9sa2tNb2xra08mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbGwgdGV4dCB5b3Ugd2hlbiBJIGdldCB0aGVyZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0nigJlsbCB0ZXh0IHlvdSB3aGVuIEkgZ2V0IHRoZXJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuNHMmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJ4oCZbGwgdGV4dCB5b3Ugd2hlbiBJIGdldCB0aGVyZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlID0gJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzE5YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdF9ob3VyID0gJnF1b3Q7MjM6MjEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXQgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRob3VyID0gJnF1b3Q7MjM6MjEmcXVvdDsmZ3Q7Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O29mZmxpbmUtdGV4dCZxdW90OyZndDtIYWlsZXkgaXMgb2ZmbGluZSZsdDsvZGl2Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjRzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9ub3Rlcy5wdXNoKCZxdW90O0hhaWxleSBkZWNpZGVkIHRvIGFjY2VwdCBteSBoZWxwIHRvIGdpdmUgaGVyIGFkdmljZSBvbiBob3cgdG8gYmVoYXZlIGF0IGEgbmlnaHRjbHViIHNpbmNlIHNoZSBoYXMgbm8gZXhwZXJpZW5jZSBhdCBhbGwuJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi40cyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJHRyYW5zaXRpb24gPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuNHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICR0cmFuc2l0aW9uVGV4dCA9ICZxdW90O0FuIGhvdXIgbGF0ZXImcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi40cyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGVuZE9mQ29udGVudCA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi40cyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGVwMiA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzI4IiBuYW1lPSJIYWlsZXlDaGF0RXAyXzJfMTdiIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsNDEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xN2ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUcnVzdCBtZSBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VHJ1c3QgbWUgSGFpbGV5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VHJ1c3QgbWUgSGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2FvbGtraG9sa2tGb2xra1VvbGtrUW9sa2trb2xra3dvbGtrbiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjYW9sa2tob2xra0ZvbGtrVW9sa2tRb2xra2tvbGtrd29sa2tuJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1lvdSBrbm93IHlvdSBuZWVkIG15IGFkdmljZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzE4YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdSBrbm93IHlvdSBuZWVkIG15IGFkdmljZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl8xOGImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzI5IiBuYW1lPSJIYWlsZXlDaGF0RXAyXzJfMThiIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDQxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMThiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WW91IGtub3cgeW91IG5lZWQgbXkgYWR2aWNlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBrbm93IHlvdSBuZWVkIG15IGFkdmljZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1lvdSBrbm93IHlvdSBuZWVkIG15IGFkdmljZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7WWVhaCwgeW914oCZcmUgcmlnaHQmcXVvdDsgJnF1b3Q7cG9sa2trb2xra29vbGtra29sa2tRb2xra1dvbGtrTG9sa2tGb2xra2JvbGtraW9sa2t5b2xra1JvbGtraW9sa2tsb2xra0JvbGtrbiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1llYWgsIHlvdeKAmXJlIHJpZ2h0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WWVhaCwgeW914oCZcmUgcmlnaHQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4ycyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIHRoaW5rIEkgaGF2ZSBzb21ldGhpbmcgbGlrZSB0aGF0IGluIG15IGNsb3NldCZxdW90OyAmcXVvdDtRb2xra2tvbGtrYW9sa2t6b2xra0hvbGtrYm9sa2tIb2xra0NvbGtrZm9sa2twb2xra3pvbGtrR29sa2tsb2xra3pvbGtrR29sa2t3JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB0aGluayBJIGhhdmUgc29tZXRoaW5nIGxpa2UgdGhhdCBpbiBteSBjbG9zZXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIHRoaW5rIEkgaGF2ZSBzb21ldGhpbmcgbGlrZSB0aGF0IGluIG15IGNsb3NldCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjhzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1Rob3VnaCBJ4oCZdmUgbmV2ZXIgd29ybiBpdCBpbiBwdWJsaWMmcXVvdDsgJnF1b3Q7SG9sa2tKb2xra3BvbGtreG9sa2twb2xra3lvbGtrUm9sa2tCb2xra3pvbGtrVW9sa2tBb2xra2xvbGtrSm9sa2t4b2xra0pvbGtrZCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1Rob3VnaCBJ4oCZdmUgbmV2ZXIgd29ybiBpdCBpbiBwdWJsaWMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaG91Z2ggSeKAmXZlIG5ldmVyIHdvcm4gaXQgaW4gcHVibGljJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7TGV0IG1lIHRyeSBpdCBmaXJzdCZxdW90OyAmcXVvdDtlb2xra1FvbGtrbW9sa2tVb2xra0JvbGtrWG9sa2tyb2xra3NvbGtrc29sa2tab2xra29vbGtreG9sa2tHb2xra2lvbGtrR29sa2tHJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGV0IG1lIHRyeSBpdCBmaXJzdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0xldCBtZSB0cnkgaXQgZmlyc3QmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNS43cyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9pbWcgJnF1b3Q7YXNzZXRzL2ltZy9lcDIvaGFpbGV5X3Bob3RvXzMud2VicCZxdW90OyB0cnVlICZxdW90O3lvbGtrQ29sa2tFb2xra1ZvbGtrQ29sa2tWb2xra2pvbGtraG9sa2thb2xra3RvbGtrSm9sa2tzb2xra2VvbGtrR29sa2tCb2xra1kmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDIsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2VwMi9oYWlsZXlfcGhvdG9fMy53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkcGhvdG9zLnB1c2goJnF1b3Q7YXNzZXRzL2ltZy9lcDIvaGFpbGV5X3Bob3RvXzMud2VicCZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNi43cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJ4oCZbSBub3Qgc3VyZS4uLiBJIGZlZWwgd2VpcmQgd2VhcmluZyB0aGlzJnF1b3Q7ICZxdW90O0RvbGtrY29sa2tJb2xra1hvbGtrbm9sa2tKb2xra1NvbGtrcW9sa2tyb2xra3ZvbGtrdW9sa2tzb2xra01vbGtrSW9sa2tCb2xra1ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBub3Qgc3VyZS4uLiBJIGZlZWwgd2VpcmQgd2VhcmluZyB0aGlzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SeKAmW0gbm90IHN1cmUuLi4gSSBmZWVsIHdlaXJkIHdlYXJpbmcgdGhpcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O3JvbGtraW9sa2tCb2xra05vbGtraW9sa2tWb2xra3hvbGtrViZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgOC4xcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjcm9sa2tpb2xra0JvbGtrTm9sa2tpb2xra1ZvbGtreG9sa2tWJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1lvdSBrbm93IHdoYXQ/IEkgdGhpbmsgdGhlIG90aGVyIGRyZXNzIHdvdWxkIGJlIGJldHRlciZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzE5Yl8xJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WW91IGtub3cgd2hhdD8gSSB0aGluayB0aGUgb3RoZXIgZHJlc3Mgd291bGQgYmUgYmV0dGVyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzE5Yl8xJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNyb2xra2lvbGtrQm9sa2tOb2xra2lvbGtrVm9sa2t4b2xra1YmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VHJ1c3QgbWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xOWJfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RydXN0IG1lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzE5Yl8yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjMzMCIgbmFtZT0iSGFpbGV5Q2hhdEVwMl8yXzE5Yl8xIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDQxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTliXzEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZb3Uga25vdyB3aGF0PyBJIHRoaW5rIHRoZSBvdGhlciBkcmVzcyB3b3VsZCBiZSBiZXR0ZXImcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGtub3cgd2hhdD8gSSB0aGluayB0aGUgb3RoZXIgZHJlc3Mgd291bGQgYmUgYmV0dGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WW91IGtub3cgd2hhdD8gSSB0aGluayB0aGUgb3RoZXIgZHJlc3Mgd291bGQgYmUgYmV0dGVyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtZZWFoLCBJIHRoaW5rIHNvIHRvbyZxdW90OyAmcXVvdDtQb2xra2lvbGtrdm9sa2tpb2xra09vbGtrSG9sa2tlb2xra0hvbGtraW9sa2tyb2xra2xvbGtrd29sa2tZb2xra3dvbGtrRm9sa2tXJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WWVhaCwgSSB0aGluayBzbyB0b28mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZZWFoLCBJIHRoaW5rIHNvIHRvbyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjRzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgZG9u4oCZdCB0aGluayBJIGNvdWxkIHdhbGsgb3V0IGluIHB1YmxpYyB3ZWFyaW5nIHRoaXMmcXVvdDsgJnF1b3Q7Tm9sa2t0b2xra1BvbGtrYm9sa2tYb2xra3VvbGtrS29sa2tlb2xra0tvbGtrcW9sa2tqb2xra2NvbGtra29sa2tyb2xra2RvbGtrTSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZG9u4oCZdCB0aGluayBJIGNvdWxkIHdhbGsgb3V0IGluIHB1YmxpYyB3ZWFyaW5nIHRoaXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIGRvbuKAmXQgdGhpbmsgSSBjb3VsZCB3YWxrIG91dCBpbiBwdWJsaWMgd2VhcmluZyB0aGlzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMXMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfeGQud2VicCZxdW90OyB0cnVlICZxdW90O0hhaWxleSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX3hkLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7UW9sa2tVb2xra3RvbGtrZ29sa2tXb2xra3BvbGtrUW9sa2tHJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjFzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNRb2xra1VvbGtrdG9sa2tnb2xra1dvbGtrcG9sa2tRb2xra0cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q78J+koyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzIwYl8xJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q78J+koyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl8yMGJfMSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMzEiIG5hbWU9IkhhaWxleUNoYXRFcDJfMl8xOWJfMiIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDQyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTliXzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUcnVzdCBtZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUcnVzdCBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RydXN0IG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRoYWlsZXlfZHJlc3MgPSAyJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O01vbGtrQ29sa2tSb2xra1BvbGtrdm9sa2tWb2xra0pvbGtreSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjTW9sa2tDb2xra1JvbGtrUG9sa2t2b2xra1ZvbGtrSm9sa2t5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoYXTigJlzIHRoZSBkcmVzcyB5b3Ugd2FudCB0byB3ZWFyJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMjBiXzImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaGF04oCZcyB0aGUgZHJlc3MgeW91IHdhbnQgdG8gd2VhciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl8yMGJfMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMzIiIG5hbWU9IkhhaWxleUNoYXRFcDJfMl8yMGJfMSIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDQyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMjBiXzEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xtYW8ud2VicCZxdW90OyB0cnVlICZxdW90O1lvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xtYW8ud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjlzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtIZXkgJG5hbWUsIGlzIGl0IG9rYXkgaWYgSSB0ZXh0IHlvdSB3aGVuIEkgZ2V0IHRvIHRoZSBuaWdodGNsdWIgdG8gYXNrIGZvciB0aXBzPyZxdW90OyAmcXVvdDtDb2xra3VvbGtrTW9sa2tjb2xra3lvbGtrTW9sa2tmb2xra0hvbGtrWm9sa2tYb2xra1pvbGtraG9sa2tzb2xra1pvbGtrdG9sa2tLJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGV5ICRuYW1lLCBpcyBpdCBva2F5IGlmIEkgdGV4dCB5b3Ugd2hlbiBJIGdldCB0byB0aGUgbmlnaHRjbHViIHRvIGFzayBmb3IgdGlwcz8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtIZXkgJG5hbWUsIGlzIGl0IG9rYXkgaWYgSSB0ZXh0IHlvdSB3aGVuIEkgZ2V0IHRvIHRoZSBuaWdodGNsdWIgdG8gYXNrIGZvciB0aXBzPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O21vbGtreG9sa2tqb2xra0xvbGtrc29sa2tXb2xra2FvbGtrciZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy41cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjbW9sa2t4b2xra2pvbGtrTG9sa2tzb2xra1dvbGtrYW9sa2tyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O09mIGNvdXJzZSwgSeKAmWxsIGJlIGhlcmUgZm9yIGEgd2hpbGUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDJfMl8xN2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtPZiBjb3Vyc2UsIEnigJlsbCBiZSBoZXJlIGZvciBhIHdoaWxlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzE3YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzMzMiIG5hbWU9IkhhaWxleUNoYXRFcDJfMl8yMGJfMiIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDQyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMjBiXzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGF04oCZcyB0aGUgZHJlc3MgeW91IHdhbnQgdG8gd2VhciZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGF04oCZcyB0aGUgZHJlc3MgeW91IHdhbnQgdG8gd2VhciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RoYXTigJlzIHRoZSBkcmVzcyB5b3Ugd2FudCB0byB3ZWFyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9jcnlpbmcud2VicCZxdW90OyB0cnVlICZxdW90O0hhaWxleSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2NyeWluZy53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNnMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O09rYXksICRuYW1lLCBJ4oCZbGwgdGFrZSB5b3VyIGFkdmljZSwgZXZlbiB0aG91Z2ggSSBmZWVsIGVtYmFycmFzc2VkIHRvIHdlYXIgdGhpcyBpbiBwdWJsaWMmcXVvdDsgJnF1b3Q7YW9sa2tib2xra0xvbGtrYW9sa2tVb2xra0lvbGtrbW9sa2tFb2xra1pvbGtrdm9sa2tlb2xra3RvbGtrY29sa2t3b2xra3FvbGtrQSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09rYXksICRuYW1lLCBJ4oCZbGwgdGFrZSB5b3VyIGFkdmljZSwgZXZlbiB0aG91Z2ggSSBmZWVsIGVtYmFycmFzc2VkIHRvIHdlYXIgdGhpcyBpbiBwdWJsaWMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtPa2F5LCAkbmFtZSwgSeKAmWxsIHRha2UgeW91ciBhZHZpY2UsIGV2ZW4gdGhvdWdoIEkgZmVlbCBlbWJhcnJhc3NlZCB0byB3ZWFyIHRoaXMgaW4gcHVibGljJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7cm9sa2tLb2xra01vbGtrTG9sa2tlb2xra2xvbGtrZG9sa2tUJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjVzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNyb2xra0tvbGtrTW9sa2tMb2xra2VvbGtrbG9sa2tkb2xra1QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WW914oCZbGwgdGhhbmsgbWUgbGF0ZXIsIHRydXN0IG1lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMjFiXzImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3XigJlsbCB0aGFuayBtZSBsYXRlciwgdHJ1c3QgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMjFiXzImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzM0IiBuYW1lPSJIYWlsZXlDaGF0RXAyXzJfMjFiXzIiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSw0MjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzIxYl8yJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WW914oCZbGwgdGhhbmsgbWUgbGF0ZXIsIHRydXN0IG1lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdeKAmWxsIHRoYW5rIG1lIGxhdGVyLCB0cnVzdCBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1lvdeKAmWxsIHRoYW5rIG1lIGxhdGVyLCB0cnVzdCBtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtUb2xra0VvbGtrZG9sa2tnb2xra0hvbGtrQm9sa2thb2xra0smcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I1RvbGtrRW9sa2tkb2xra2dvbGtrSG9sa2tCb2xra2FvbGtrSyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtKdXN0IGdvIGZvciBpdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzIyYl8yJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SnVzdCBnbyBmb3IgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMjJiXzImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzM1IiBuYW1lPSJIYWlsZXlDaGF0RXAyXzJfMjJiXzIiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCw0MjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwMl8yXzIyYl8yJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SnVzdCBnbyBmb3IgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SnVzdCBnbyBmb3IgaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtKdXN0IGdvIGZvciBpdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0FscmlnaHQsIEkgd2lsbCZxdW90OyAmcXVvdDtrb2xra0NvbGtrVm9sa2tXb2xra3ZvbGtrZm9sa2tyb2xra1FvbGtrbG9sa2trb2xra3dvbGtrY29sa2t4b2xra2tvbGtrR29sa2tHJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QWxyaWdodCwgSSB3aWxsJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QWxyaWdodCwgSSB3aWxsJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS45cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SGV5ICRuYW1lLCBpcyBpdCBva2F5IGlmIEkgdGV4dCB5b3Ugd2hlbiBJIGdldCB0byB0aGUgbmlnaHRjbHViIHRvIGFzayBmb3IgdGlwcz8mcXVvdDsgJnF1b3Q7Y29sa2tpb2xra0dvbGtrbm9sa2t3b2xra21vbGtrQW9sa2tzb2xra2ZvbGtrd29sa2tMb2xra3VvbGtrd29sa2tUb2xra3lvbGtrbCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hleSAkbmFtZSwgaXMgaXQgb2theSBpZiBJIHRleHQgeW91IHdoZW4gSSBnZXQgdG8gdGhlIG5pZ2h0Y2x1YiB0byBhc2sgZm9yIHRpcHM/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SGV5ICRuYW1lLCBpcyBpdCBva2F5IGlmIEkgdGV4dCB5b3Ugd2hlbiBJIGdldCB0byB0aGUgbmlnaHRjbHViIHRvIGFzayBmb3IgdGlwcz8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDttb2xra2lvbGtrZm9sa2t0b2xra0tvbGtrZ29sa2txb2xra1MmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuN3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I21vbGtraW9sa2tmb2xra3RvbGtrS29sa2tnb2xra3FvbGtrUyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtPZiBjb3Vyc2UsIEnigJlsbCBiZSBoZXJlIGZvciBhIHdoaWxlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAyXzJfMTdhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7T2YgY291cnNlLCBJ4oCZbGwgYmUgaGVyZSBmb3IgYSB3aGlsZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDJfMl8xN2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzM2IiBuYW1lPSJIYWlsZXlFcDJfMSIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDQyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90OyRuYW1lLCBpdOKAmXMgbWUgYWdhaW4uIEhvd+KAmXMgZXZlcnl0aGluZyBnb2luZz8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7JG5hbWUsIGl04oCZcyBtZSBhZ2Fpbi4gSG934oCZcyBldmVyeXRoaW5nIGdvaW5nPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90OyRuYW1lLCBpdOKAmXMgbWUgYWdhaW4uIEhvd+KAmXMgZXZlcnl0aGluZyBnb2luZz8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS45cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SnVzdCB3YW50ZWQgdG8gbGV0IHlvdSBrbm93IEnigJl2ZSBzZW50IHlvdSBzb21lIGRhdGEgSSBmb3VuZCwgaXQgc2hvdWxkIGhlbHAgd2l0aCB5b3VyIHJlcG9ydCZxdW90OyAmcXVvdDtHb2xra3dvbGtrZ29sa2tTb2xra01vbGtrUm9sa2tob2xra0RvbGtrVG9sa2tUb2xra2FvbGtrVm9sa2tsb2xra3dvbGtraW9sa2tIJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SnVzdCB3YW50ZWQgdG8gbGV0IHlvdSBrbm93IEnigJl2ZSBzZW50IHlvdSBzb21lIGRhdGEgSSBmb3VuZCwgaXQgc2hvdWxkIGhlbHAgd2l0aCB5b3VyIHJlcG9ydCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0p1c3Qgd2FudGVkIHRvIGxldCB5b3Uga25vdyBJ4oCZdmUgc2VudCB5b3Ugc29tZSBkYXRhIEkgZm91bmQsIGl0IHNob3VsZCBoZWxwIHdpdGggeW91ciByZXBvcnQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtIb2xra2dvbGtrcW9sa2tib2xra1ZvbGtraG9sa2twb2xra0UmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuMXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I0hvbGtrZ29sa2txb2xra2JvbGtrVm9sa2tob2xra3BvbGtrRSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGFua3MgYWdhaW4sIEhhaWxleSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5RXAyXzImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaGFua3MgYWdhaW4sIEhhaWxleSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUVwMl8yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzM3IiBuYW1lPSJIYWlsZXlFcDJfMiIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDQyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlFcDJfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RoYW5rcyBhZ2FpbiwgSGFpbGV5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYW5rcyBhZ2FpbiwgSGFpbGV5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhhbmtzIGFnYWluLCBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Vm9sa2tSb2xra0lvbGtrRW9sa2tob2xra2RvbGtrRW9sa2t6JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNWb2xra1JvbGtrSW9sa2tFb2xra2hvbGtrZG9sa2tFb2xra3omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WW91IG11c3QgYmUgdGlyZWQgb2YgaGVhcmluZyBtZSBzYXkgdGhhbmsgeW91IGFsbCB0aGUgdGltZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5RXAyXzMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3UgbXVzdCBiZSB0aXJlZCBvZiBoZWFyaW5nIG1lIHNheSB0aGFuayB5b3UgYWxsIHRoZSB0aW1lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5RXAyXzMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzM4IiBuYW1lPSJIYWlsZXlFcDJfMyIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDQyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlFcDJfMyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdSBtdXN0IGJlIHRpcmVkIG9mIGhlYXJpbmcgbWUgc2F5IHRoYW5rIHlvdSBhbGwgdGhlIHRpbWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IG11c3QgYmUgdGlyZWQgb2YgaGVhcmluZyBtZSBzYXkgdGhhbmsgeW91IGFsbCB0aGUgdGltZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1lvdSBtdXN0IGJlIHRpcmVkIG9mIGhlYXJpbmcgbWUgc2F5IHRoYW5rIHlvdSBhbGwgdGhlIHRpbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2JpZ19zbWlsZS53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7SGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfYmlnX3NtaWxlLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC45cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7Tm90IGF0IGFsbCEgSXTigJlzIGFsd2F5cyBuaWNlIHRvIGJlIGFwcHJlY2lhdGVkJnF1b3Q7ICZxdW90O0dvbGtrU29sa2tyb2xra0JvbGtrSG9sa2tub2xra0xvbGtra29sa2tLb2xra3ZvbGtrYm9sa2tZb2xra0VvbGtrR29sa2tzb2xra3AmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtOb3QgYXQgYWxsISBJdOKAmXMgYWx3YXlzIG5pY2UgdG8gYmUgYXBwcmVjaWF0ZWQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtOb3QgYXQgYWxsISBJdOKAmXMgYWx3YXlzIG5pY2UgdG8gYmUgYXBwcmVjaWF0ZWQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtCZXNpZGVzLi4uIHlvdeKAmXJlIHRoZSBvbmx5IG9uZSB3aG8gY2hlZXJzIG1lIHVwJnF1b3Q7ICZxdW90O2pvbGtrQW9sa2tXb2xra1VvbGtrb29sa2tJb2xra2pvbGtrem9sa2tkb2xra1FvbGtrbm9sa2tKb2xra1ZvbGtrZW9sa2tYb2xra0EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCZXNpZGVzLi4uIHlvdeKAmXJlIHRoZSBvbmx5IG9uZSB3aG8gY2hlZXJzIG1lIHVwJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QmVzaWRlcy4uLiB5b3XigJlyZSB0aGUgb25seSBvbmUgd2hvIGNoZWVycyBtZSB1cCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O3RvbGtrbm9sa2tVb2xra0tvbGtrdm9sa2tIb2xra01vbGtrSSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjdG9sa2tub2xra1VvbGtrS29sa2t2b2xra0hvbGtrTW9sa2tJJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0hvdyBjYW4gSSBiZSB0aGUgb25seSBvbmU/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlFcDJfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0hvdyBjYW4gSSBiZSB0aGUgb25seSBvbmU/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5RXAyXzQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzM5IiBuYW1lPSJIYWlsZXlFcDJfNCIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCw0MjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5RXAyXzQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtIb3cgY2FuIEkgYmUgdGhlIG9ubHkgb25lPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIb3cgY2FuIEkgYmUgdGhlIG9ubHkgb25lPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0hvdyBjYW4gSSBiZSB0aGUgb25seSBvbmU/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2lvbGtrWG9sa2t5b2xra1ZvbGtrcW9sa2tNb2xra2xvbGtrYyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjaW9sa2tYb2xra3lvbGtrVm9sa2txb2xra01vbGtrbG9sa2tjJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kmIzM5O3ZlIHRvbGQgeW91IGJlZm9yZSwgeW91IHNob3VsZCBnbyBvdXQgbW9yZSwgbWVldCBzb21lIHBlb3BsZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5RXAyXzUmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJJiMzOTt2ZSB0b2xkIHlvdSBiZWZvcmUsIHlvdSBzaG91bGQgZ28gb3V0IG1vcmUsIG1lZXQgc29tZSBwZW9wbGUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlFcDJfNSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzNDAiIG5hbWU9IkhhaWxleUVwMl81IiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDQyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlFcDJfNSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0nigJl2ZSB0b2xkIHlvdSBiZWZvcmUsIHlvdSBzaG91bGQgZ28gb3V0IG1vcmUsIG1lZXQgc29tZSBwZW9wbGUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmXZlIHRvbGQgeW91IGJlZm9yZSwgeW91IHNob3VsZCBnbyBvdXQgbW9yZSwgbWVldCBzb21lIHBlb3BsZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0nigJl2ZSB0b2xkIHlvdSBiZWZvcmUsIHlvdSBzaG91bGQgZ28gb3V0IG1vcmUsIG1lZXQgc29tZSBwZW9wbGUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7WW9sa2tvb2xra3RvbGtreG9sa2tRb2xra3lvbGtrRG9sa2tTJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNZb2xra29vbGtrdG9sa2t4b2xra1FvbGtreW9sa2tEb2xra1MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WW91JiMzOTtyZSBhIGxvdmVseSBnaXJsLCBhbmQgeW91IGRlc2VydmUgdG8gZW5qb3kgbGlmZSBtb3JlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlFcDJfNiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdSYjMzk7cmUgYSBsb3ZlbHkgZ2lybCwgYW5kIHlvdSBkZXNlcnZlIHRvIGVuam95IGxpZmUgbW9yZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUVwMl82JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM0MSIgbmFtZT0iSGFpbGV5RXAyXzYiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCw0MzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5RXAyXzYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZb3XigJlyZSBhIGxvdmVseSBnaXJsLCBhbmQgeW91IGRlc2VydmUgdG8gZW5qb3kgbGlmZSBtb3JlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdeKAmXJlIGEgbG92ZWx5IGdpcmwsIGFuZCB5b3UgZGVzZXJ2ZSB0byBlbmpveSBsaWZlIG1vcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZb3XigJlyZSBhIGxvdmVseSBnaXJsLCBhbmQgeW91IGRlc2VydmUgdG8gZW5qb3kgbGlmZSBtb3JlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIGtub3cgeW914oCZcmUgcmlnaHQuLi4mcXVvdDsgJnF1b3Q7VW9sa2t1b2xra2hvbGtraW9sa2t0b2xra2ZvbGtrTm9sa2tTb2xra2NvbGtrcW9sa2tob2xra2NvbGtrZm9sa2tnb2xra21vbGtrdyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kga25vdyB5b3XigJlyZSByaWdodC4uLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kga25vdyB5b3XigJlyZSByaWdodC4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0J1dCBJIGRvbuKAmXQgaGF2ZSBtdWNoIGV4cGVyaWVuY2UsIGFuZCBJIGRvbuKAmXQgaGF2ZSBmcmllbmRzIHRvIGdvIG91dCB3aXRoJnF1b3Q7ICZxdW90O3pvbGtrSG9sa2tPb2xra05vbGtrcm9sa2tVb2xra1JvbGtrRm9sa2twb2xra21vbGtrRW9sa2t3b2xra0ZvbGtrWW9sa2tBb2xra3omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgSSBkb27igJl0IGhhdmUgbXVjaCBleHBlcmllbmNlLCBhbmQgSSBkb27igJl0IGhhdmUgZnJpZW5kcyB0byBnbyBvdXQgd2l0aCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0J1dCBJIGRvbuKAmXQgaGF2ZSBtdWNoIGV4cGVyaWVuY2UsIGFuZCBJIGRvbuKAmXQgaGF2ZSBmcmllbmRzIHRvIGdvIG91dCB3aXRoJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7SW9sa2tob2xra1ZvbGtrcW9sa2t3b2xra2RvbGtrdG9sa2tJJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjRzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNJb2xra2hvbGtrVm9sa2txb2xra3dvbGtrZG9sa2t0b2xra0kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WW91IGRvbuKAmXQgbmVlZCB0aGF0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlFcDJfNyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdSBkb27igJl0IG5lZWQgdGhhdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUVwMl83JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM0MiIgbmFtZT0iSGFpbGV5RXAyXzciIHRhZ3M9IiIgcG9zaXRpb249IjIyNSw0MzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5RXAyXzcmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZb3UgZG9u4oCZdCBuZWVkIHRoYXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGRvbuKAmXQgbmVlZCB0aGF0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WW91IGRvbuKAmXQgbmVlZCB0aGF0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1pvbGtreW9sa2tGb2xra29vbGtrYW9sa2tIb2xra0JvbGtrWSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjWm9sa2t5b2xra0ZvbGtrb29sa2thb2xra0hvbGtrQm9sa2tZJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1lvdSBqdXN0IG5lZWQgdG8gdGFrZSB0aGUgZmlyc3Qgc3RlcCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5RXAyXzgmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3UganVzdCBuZWVkIHRvIHRha2UgdGhlIGZpcnN0IHN0ZXAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlFcDJfOCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzNDMiIG5hbWU9IkhhaWxleUVwMl84IiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsNDM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUVwMl84JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WW91IGp1c3QgbmVlZCB0byB0YWtlIHRoZSBmaXJzdCBzdGVwJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBqdXN0IG5lZWQgdG8gdGFrZSB0aGUgZmlyc3Qgc3RlcCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1lvdSBqdXN0IG5lZWQgdG8gdGFrZSB0aGUgZmlyc3Qgc3RlcCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtub2xra3hvbGtrdm9sa2tzb2xra3hvbGtrd29sa2tOb2xra2smcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I25vbGtreG9sa2t2b2xra3NvbGtreG9sa2t3b2xra05vbGtrayZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtXaHkgbm90IGdvIG91dCB0b25pZ2h0PyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5RXAyXzkmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXaHkgbm90IGdvIG91dCB0b25pZ2h0PyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUVwMl85JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM0NCIgbmFtZT0iSGFpbGV5RXAyXzkiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSw0MzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5RXAyXzkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtXaHkgbm90IGdvIG91dCB0b25pZ2h0PyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXaHkgbm90IGdvIG91dCB0b25pZ2h0PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1doeSBub3QgZ28gb3V0IHRvbmlnaHQ/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJ4oCZbSBhIGJpdCBzaHksIEkgd291bGQgZmVlbCBvdXQgb2YgcGxhY2UmcXVvdDsgJnF1b3Q7d29sa2tNb2xra1ZvbGtrUG9sa2t1b2xra1pvbGtrd29sa2t5b2xra0ZvbGtrb29sa2thb2xra2NvbGtrdW9sa2tPb2xra1BvbGtrRiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJltIGEgYml0IHNoeSwgSSB3b3VsZCBmZWVsIG91dCBvZiBwbGFjZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0nigJltIGEgYml0IHNoeSwgSSB3b3VsZCBmZWVsIG91dCBvZiBwbGFjZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgd291bGRu4oCZdCBldmVuIGtub3cgd2hhdCB0byBkbyZxdW90OyAmcXVvdDt2b2xra2hvbGtrS29sa2tNb2xra2JvbGtrTm9sa2tUb2xra05vbGtrd29sa2tnb2xra0RvbGtrbG9sa2tXb2xra3RvbGtrS29sa2tkJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB3b3VsZG7igJl0IGV2ZW4ga25vdyB3aGF0IHRvIGRvJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSB3b3VsZG7igJl0IGV2ZW4ga25vdyB3aGF0IHRvIGRvJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7Zm9sa2tRb2xra0hvbGtrcW9sa2tSb2xra3lvbGtrRW9sa2tJJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjJzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNmb2xra1FvbGtrSG9sa2txb2xra1JvbGtreW9sa2tFb2xra0kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhvc2UgYXJlIGp1c3QgZXhjdXNlcywgaXTigJlzIG5vdCB0aGF0IGhhcmQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUVwMl8xMGEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaG9zZSBhcmUganVzdCBleGN1c2VzLCBpdOKAmXMgbm90IHRoYXQgaGFyZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUVwMl8xMGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I2ZvbGtrUW9sa2tIb2xra3FvbGtrUm9sa2t5b2xra0VvbGtrSSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJdCBjYW4gYmUgdG91Z2ggc29tZXRpbWVzJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlFcDJfMTBiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SXQgY2FuIGJlIHRvdWdoIHNvbWV0aW1lcyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUVwMl8xMGImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzQ1IiBuYW1lPSJIYWlsZXlFcDJfMTBhIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsNDM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUVwMl8xMGEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaG9zZSBhcmUganVzdCBleGN1c2VzLCBpdOKAmXMgbm90IHRoYXQgaGFyZCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaG9zZSBhcmUganVzdCBleGN1c2VzLCBpdOKAmXMgbm90IHRoYXQgaGFyZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1Rob3NlIGFyZSBqdXN0IGV4Y3VzZXMsIGl04oCZcyBub3QgdGhhdCBoYXJkJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1BvbGtrWG9sa2tKb2xra25vbGtrUm9sa2trb2xra0FvbGtraiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjUG9sa2tYb2xra0pvbGtrbm9sa2tSb2xra2tvbGtrQW9sa2tqJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0xldOKAmXMgZG8gdGhpcy0tSeKAmWxsIGJlIHlvdXIgYXNzaXN0YW50JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlFcDJfMTEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtMZXTigJlzIGRvIHRoaXMtLUnigJlsbCBiZSB5b3VyIGFzc2lzdGFudCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUVwMl8xMSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzNDYiIG5hbWU9IkhhaWxleUVwMl8xMGIiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSw0MzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5RXAyXzEwYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0l0IGNhbiBiZSB0b3VnaCBzb21ldGltZXMmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXQgY2FuIGJlIHRvdWdoIHNvbWV0aW1lcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0l0IGNhbiBiZSB0b3VnaCBzb21ldGltZXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Y29sa2tab2xra3FvbGtrVm9sa2tIb2xra0RvbGtrYW9sa2trJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNjb2xra1pvbGtrcW9sa2tWb2xra0hvbGtrRG9sa2thb2xra2smcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7TGV04oCZcyBkbyB0aGlzLS1J4oCZbGwgYmUgeW91ciBhc3Npc3RhbnQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUVwMl8xMSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0xldOKAmXMgZG8gdGhpcy0tSeKAmWxsIGJlIHlvdXIgYXNzaXN0YW50JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5RXAyXzExJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM0NyIgbmFtZT0iSGFpbGV5RXAyXzExIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsNDM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUVwMl8xMSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0xldOKAmXMgZG8gdGhpczogSeKAmWxsIGJlIHlvdXIgYXNzaXN0YW50JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0xldOKAmXMgZG8gdGhpczogSeKAmWxsIGJlIHlvdXIgYXNzaXN0YW50JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7TGV04oCZcyBkbyB0aGlzOiBJ4oCZbGwgYmUgeW91ciBhc3Npc3RhbnQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7ZG9sa2tJb2xra2VvbGtrRW9sa2tqb2xra3FvbGtrc29sa2t4JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNkb2xra0lvbGtrZW9sa2tFb2xra2pvbGtrcW9sa2tzb2xra3gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGV4dCBtZSBkdXJpbmcgdGhlIG5pZ2h0LCBhbmQgSeKAmWxsIGhlbHAgeW91IGJlIG1vcmUgc29jaWFsJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlFcDJfMTImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUZXh0IG1lIGR1cmluZyB0aGUgbmlnaHQsIGFuZCBJ4oCZbGwgaGVscCB5b3UgYmUgbW9yZSBzb2NpYWwmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlFcDJfMTImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzQ4IiBuYW1lPSJIYWlsZXlFcDJfMTIiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSw0MzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5RXAyXzEyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGV4dCBtZSBkdXJpbmcgdGhlIG5pZ2h0LCBhbmQgSeKAmWxsIGhlbHAgeW91IGJlIG1vcmUgc29jaWFsJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RleHQgbWUgZHVyaW5nIHRoZSBuaWdodCwgYW5kIEnigJlsbCBoZWxwIHlvdSBiZSBtb3JlIHNvY2lhbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RleHQgbWUgZHVyaW5nIHRoZSBuaWdodCwgYW5kIEnigJlsbCBoZWxwIHlvdSBiZSBtb3JlIHNvY2lhbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtrb2xra1ZvbGtrZW9sa2ttb2xra2xvbGtrQ29sa2tTb2xra2wmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I2tvbGtrVm9sa2tlb2xra21vbGtrbG9sa2tDb2xra1NvbGtrbCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtBbnl0aW1lIHlvdeKAmXJlIHVuc3VyZSBvZiB3aGF0IHRvIGRvLCBqdXN0IGFzayBtZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5RXAyXzEzJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QW55dGltZSB5b3XigJlyZSB1bnN1cmUgb2Ygd2hhdCB0byBkbywganVzdCBhc2sgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlFcDJfMTMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzQ5IiBuYW1lPSJIYWlsZXlFcDJfMTMiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsNDM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUVwMl8xMyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0FueXRpbWUgeW914oCZcmUgdW5zdXJlIG9mIHdoYXQgdG8gZG8sIGp1c3QgYXNrIG1lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FueXRpbWUgeW914oCZcmUgdW5zdXJlIG9mIHdoYXQgdG8gZG8sIGp1c3QgYXNrIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QW55dGltZSB5b3XigJlyZSB1bnN1cmUgb2Ygd2hhdCB0byBkbywganVzdCBhc2sgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNnMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0J1dCB5b3XigJlyZSBidXN5IHdpdGggdGhlIHJlcG9ydC4uLiZxdW90OyAmcXVvdDtyb2xra0VvbGtrQm9sa2tLb2xra2JvbGtraG9sa2t6b2xra21vbGtrWW9sa2tyb2xra1FvbGtrTG9sa2tab2xra01vbGtrcG9sa2tOJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IHlvdeKAmXJlIGJ1c3kgd2l0aCB0aGUgcmVwb3J0Li4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QnV0IHlvdeKAmXJlIGJ1c3kgd2l0aCB0aGUgcmVwb3J0Li4uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7UG9sa2tFb2xra05vbGtrR29sa2tGb2xra1ZvbGtrTG9sa2tmJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjVzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNQb2xra0VvbGtrTm9sa2tHb2xra0ZvbGtrVm9sa2tMb2xra2YmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SXQgd29u4oCZdCBjaGFuZ2UgYW55dGhpbmcgZm9yIG1lIHRvIHRha2UgYSBmZXcgbWludXRlcyB0byByZXBseSB0byBzb21lIG1lc3NhZ2VzJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlFcDJfMTQmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJdCB3b27igJl0IGNoYW5nZSBhbnl0aGluZyBmb3IgbWUgdG8gdGFrZSBhIGZldyBtaW51dGVzIHRvIHJlcGx5IHRvIHNvbWUgbWVzc2FnZXMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlFcDJfMTQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzUwIiBuYW1lPSJIYWlsZXlFcDJfMTQiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsNDM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUVwMl8xNCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0l0IHdvbuKAmXQgY2hhbmdlIGFueXRoaW5nIGZvciBtZSB0byB0YWtlIGEgZmV3IG1pbnV0ZXMgdG8gcmVwbHkgdG8gc29tZSBtZXNzYWdlcyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdCB3b27igJl0IGNoYW5nZSBhbnl0aGluZyBmb3IgbWUgdG8gdGFrZSBhIGZldyBtaW51dGVzIHRvIHJlcGx5IHRvIHNvbWUgbWVzc2FnZXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJdCB3b27igJl0IGNoYW5nZSBhbnl0aGluZyBmb3IgbWUgdG8gdGFrZSBhIGZldyBtaW51dGVzIHRvIHJlcGx5IHRvIHNvbWUgbWVzc2FnZXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7SW9sa2tib2xra1FvbGtreG9sa2tGb2xra3VvbGtrWW9sa2twJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNJb2xra2JvbGtrUW9sa2t4b2xra0ZvbGtrdW9sa2tZb2xra3AmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VHJ1c3QgbWUsIEkgY2FuIGhlbHAmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUVwMl8xNSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RydXN0IG1lLCBJIGNhbiBoZWxwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5RXAyXzE1JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM1MSIgbmFtZT0iSGFpbGV5RXAyXzE1IiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsNDQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUVwMl8xNSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RydXN0IG1lLCBJIGNhbiBoZWxwJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RydXN0IG1lLCBJIGNhbiBoZWxwJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VHJ1c3QgbWUsIEkgY2FuIGhlbHAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O09rYXkuLi4gSeKAmWxsIHRoaW5rIGFib3V0IGl0JnF1b3Q7ICZxdW90O25vbGtrVG9sa2ttb2xra1VvbGtrdm9sa2tIb2xra1JvbGtrSG9sa2tjb2xra2pvbGtreG9sa2tGb2xra0dvbGtreW9sa2t0b2xra24mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPa2F5Li4uIEnigJlsbCB0aGluayBhYm91dCBpdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O09rYXkuLi4gSeKAmWxsIHRoaW5rIGFib3V0IGl0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7TW9sa2tQb2xra2RvbGtrTG9sa2t4b2xra0ZvbGtrZW9sa2tJJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjRzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNNb2xra1BvbGtrZG9sa2tMb2xra3hvbGtrRm9sa2tlb2xra0kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhhdOKAmXMgYWxsIEnigJltIGFza2luZyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5RXAyXzE2JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhhdOKAmXMgYWxsIEnigJltIGFza2luZyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUVwMl8xNiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzNTIiIG5hbWU9IkhhaWxleUVwMl8xNiIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDQ0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlFcDJfMTYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGF04oCZcyBhbGwgSeKAmW0gYXNraW5nJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYXTigJlzIGFsbCBJ4oCZbSBhc2tpbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGF04oCZcyBhbGwgSeKAmW0gYXNraW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0RvbGtrRG9sa2twb2xra2pvbGtrRG9sa2tWb2xra3JvbGtrTSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjRG9sa2tEb2xra3BvbGtram9sa2tEb2xra1ZvbGtrcm9sa2tNJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RhbGsgdG8geW91IGxhdGVyLCBIYWlsZXkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUVwMl8xNyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RhbGsgdG8geW91IGxhdGVyLCBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlFcDJfMTcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzUzIiBuYW1lPSJIYWlsZXlFcDJfMTciIHRhZ3M9IiIgcG9zaXRpb249IjM1MCw0NDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5RXAyXzE3JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGFsayB0byB5b3UgbGF0ZXIsIEhhaWxleSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUYWxrIHRvIHlvdSBsYXRlciwgSGFpbGV5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGFsayB0byB5b3UgbGF0ZXIsIEhhaWxleSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4ycyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7QnllICRuYW1lJnF1b3Q7ICZxdW90O0JvbGtrem9sa2tCb2xra0VvbGtrdW9sa2tKb2xra1JvbGtraG9sa2tRb2xra3RvbGtrZG9sa2t0b2xra3FvbGtrV29sa2tqb2xra28mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCeWUgJG5hbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtCeWUgJG5hbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4xcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV90b25ndWUud2VicCZxdW90OyB0cnVlICZxdW90O0hhaWxleSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X3Rvbmd1ZS53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAyLjFzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdCA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4xcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSA9ICZxdW90O0FubmllQ2hhdEVwMl8xXzEmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4xcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIZXkgaG9uZXksIGhvd+KAmXMgZXZlcnl0aGluZyBnb2luZyBvdmVyIHRoZXJlPyZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjFzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZyA9ICRBbm5pZV9jaGF0TG9nLnNsaWNlKC01KSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjFzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q78J+YiyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlID0gJnF1b3Q7SGFpbGV5RXAyXzE3JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0X2hvdXIgPSAmcXVvdDsxNDozMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdCA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDsxNDozMiZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7b2ZmbGluZS10ZXh0JnF1b3Q7Jmd0O0hhaWxleSBpcyBvZmZsaW5lJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM1NCIgbmFtZT0iSGFpbGV5Q2hhdEVwM18xIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsNDQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SGV5ICRuYW1lLCBhcmUgeW91IHN0aWxsIHRoZXJlPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZXkgJG5hbWUsIGFyZSB5b3Ugc3RpbGwgdGhlcmU/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SGV5ICRuYW1lLCBhcmUgeW91IHN0aWxsIHRoZXJlPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtCb2xra1BvbGtrZ29sa2tpb2xra0VvbGtrZW9sa2t3b2xra3kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuNnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I0JvbGtrUG9sa2tnb2xra2lvbGtrRW9sa2tlb2xra3dvbGtreSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZZWFoLCBvZiBjb3Vyc2UsIEnigJltIHN0aWxsIGhlcmUgYXQgd29yayZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WWVhaCwgb2YgY291cnNlLCBJ4oCZbSBzdGlsbCBoZXJlIGF0IHdvcmsmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzNTUiIG5hbWU9IkhhaWxleUNoYXRFcDNfMiIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDQ0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZZWFoLCBvZiBjb3Vyc2UsIEnigJltIHN0aWxsIGhlcmUgYXQgd29yayZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFoLCBvZiBjb3Vyc2UsIEnigJltIHN0aWxsIGhlcmUgYXQgd29yayZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1llYWgsIG9mIGNvdXJzZSwgSeKAmW0gc3RpbGwgaGVyZSBhdCB3b3JrJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtBcmUgeW91IHN1cmUgSeKAmW0gbm90IGJvdGhlcmluZyB5b3U/JnF1b3Q7ICZxdW90O0pvbGtrUm9sa2tUb2xra1JvbGtreG9sa2twb2xra3lvbGtrSG9sa2t3b2xra2RvbGtrU29sa2tGb2xra1RvbGtrdW9sa2tJb2xra2UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBcmUgeW91IHN1cmUgSeKAmW0gbm90IGJvdGhlcmluZyB5b3U/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QXJlIHlvdSBzdXJlIEnigJltIG5vdCBib3RoZXJpbmcgeW91PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O0tvbGtrSW9sa2tIb2xra1hvbGtrUW9sa2tEb2xra2dvbGtrcSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjS29sa2tJb2xra0hvbGtrWG9sa2tRb2xra0RvbGtrZ29sa2txJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0xpa2UgSSBzYWlkIGJlZm9yZSwgZG9u4oCZdCB3b3JyeSBhYm91dCBpdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7TGlrZSBJIHNhaWQgYmVmb3JlLCBkb27igJl0IHdvcnJ5IGFib3V0IGl0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM1NiIgbmFtZT0iSGFpbGV5Q2hhdEVwM18zIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsNDQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0xpa2UgSSBzYWlkIGJlZm9yZSwgZG9u4oCZdCB3b3JyeSBhYm91dCBpdCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtMaWtlIEkgc2FpZCBiZWZvcmUsIGRvbuKAmXQgd29ycnkgYWJvdXQgaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtMaWtlIEkgc2FpZCBiZWZvcmUsIGRvbuKAmXQgd29ycnkgYWJvdXQgaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7ZW9sa2tGb2xra1lvbGtrc29sa2tRb2xra21vbGtrVW9sa2tkJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNlb2xra0ZvbGtrWW9sa2tzb2xra1FvbGtrbW9sa2tVb2xra2QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QmVzaWRlcywgSeKAmWxsIHByb2JhYmx5IGJlIGhlcmUgYWxsIG5pZ2h0IGFueXdheSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM180JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QmVzaWRlcywgSeKAmWxsIHByb2JhYmx5IGJlIGhlcmUgYWxsIG5pZ2h0IGFueXdheSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzNTciIG5hbWU9IkhhaWxleUNoYXRFcDNfNCIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDQ0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtCZXNpZGVzLCBJ4oCZbGwgcHJvYmFibHkgYmUgaGVyZSBhbGwgbmlnaHQgYW55d2F5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0Jlc2lkZXMsIEnigJlsbCBwcm9iYWJseSBiZSBoZXJlIGFsbCBuaWdodCBhbnl3YXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtCZXNpZGVzLCBJ4oCZbGwgcHJvYmFibHkgYmUgaGVyZSBhbGwgbmlnaHQgYW55d2F5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2VvbGtrVW9sa2tkb2xra0tvbGtrZW9sa2t5b2xra1VvbGtrUyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjZW9sa2tVb2xra2RvbGtrS29sa2tlb2xra3lvbGtrVW9sa2tTJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0EgZGlzdHJhY3Rpb24gdG8gcmVjaGFyZ2UgbXkgZW5lcmd5IGlzIGFjdHVhbGx5IGhlbHBmdWwmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfNSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0EgZGlzdHJhY3Rpb24gdG8gcmVjaGFyZ2UgbXkgZW5lcmd5IGlzIGFjdHVhbGx5IGhlbHBmdWwmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzU4IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzUiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSw0NDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM181JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7QSBkaXN0cmFjdGlvbiB0byByZWNoYXJnZSBteSBlbmVyZ3kgaXMgYWN0dWFsbHkgaGVscGZ1bCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBIGRpc3RyYWN0aW9uIHRvIHJlY2hhcmdlIG15IGVuZXJneSBpcyBhY3R1YWxseSBoZWxwZnVsJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QSBkaXN0cmFjdGlvbiB0byByZWNoYXJnZSBteSBlbmVyZ3kgaXMgYWN0dWFsbHkgaGVscGZ1bCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS40cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7T2theSwgaW4gdGhhdCBjYXNlLCBsZXQgbWUgdGVsbCB5b3UgaG93IHRoaW5ncyBhcmUgZ29pbmcgb3ZlciBoZXJlJnF1b3Q7ICZxdW90O2xvbGtrUm9sa2tmb2xra1VvbGtrWG9sa2tjb2xra2VvbGtrWm9sa2tDb2xra3NvbGtrbG9sa2tEb2xra2VvbGtrWG9sa2tib2xra2ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPa2F5LCBpbiB0aGF0IGNhc2UsIGxldCBtZSB0ZWxsIHlvdSBob3cgdGhpbmdzIGFyZSBnb2luZyBvdmVyIGhlcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtPa2F5LCBpbiB0aGF0IGNhc2UsIGxldCBtZSB0ZWxsIHlvdSBob3cgdGhpbmdzIGFyZSBnb2luZyBvdmVyIGhlcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4zcyZndDsmZ3Q7Jmx0OyZsdDtpZiAgJGhhaWxleV9kcmVzcyA9PSAxJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjNzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIGZlbHQgYSBiaXQgb3V0IG9mIHBsYWNlIGFzIHNvb24gYXMgSSBnb3QgaGVyZSZxdW90OyAmcXVvdDtYb2xra0NvbGtraG9sa2tab2xra21vbGtrdm9sa2tHb2xra1ZvbGtrSW9sa2tpb2xra2pvbGtrYm9sa2tBb2xra2VvbGtram9sa2tTJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBmZWx0IGEgYml0IG91dCBvZiBwbGFjZSBhcyBzb29uIGFzIEkgZ290IGhlcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIGZlbHQgYSBiaXQgb3V0IG9mIHBsYWNlIGFzIHNvb24gYXMgSSBnb3QgaGVyZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNnMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0FmdGVyIGEgZmV3IG1vbWVudHMgb2Ygbm90IGtub3dpbmcgd2hlcmUgdG8gZ28sIEkganVzdCBzYXQgYXQgdGhlIGJhciZxdW90OyAmcXVvdDtNb2xra0VvbGtrUG9sa2t3b2xra1JvbGtram9sa2tIb2xra05vbGtrVG9sa2t3b2xra0JvbGtrVm9sa2tKb2xra2tvbGtrR29sa2tZJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QWZ0ZXIgYSBmZXcgbW9tZW50cyBvZiBub3Qga25vd2luZyB3aGVyZSB0byBnbywgSSBqdXN0IHNhdCBhdCB0aGUgYmFyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QWZ0ZXIgYSBmZXcgbW9tZW50cyBvZiBub3Qga25vd2luZyB3aGVyZSB0byBnbywgSSBqdXN0IHNhdCBhdCB0aGUgYmFyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7QW5kIEnigJl2ZSBiZWVuIGhlcmUgZXZlciBzaW5jZSZxdW90OyAmcXVvdDtEb2xra2JvbGtrTG9sa2tDb2xra0pvbGtra29sa2tOb2xra1JvbGtrVG9sa2tXb2xra0tvbGtraG9sa2tFb2xra1ZvbGtram9sa2tlJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5kIEnigJl2ZSBiZWVuIGhlcmUgZXZlciBzaW5jZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0FuZCBJ4oCZdmUgYmVlbiBoZXJlIGV2ZXIgc2luY2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNS40cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjJzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIGd1ZXNzIGV2ZXJ5b25lIG11c3Qgc2VlIG1lIGFzIHRoZSB3ZWlyZCBnaXJsIHNpdHRpbmcgYWxvbmUmcXVvdDsgJnF1b3Q7WW9sa2tVb2xra0lvbGtrRW9sa2tVb2xra01vbGtrZm9sa2tBb2xra2NvbGtrQm9sa2txb2xra0FvbGtrQm9sa2tmb2xra0NvbGtrSyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZ3Vlc3MgZXZlcnlvbmUgbXVzdCBzZWUgbWUgYXMgdGhlIHdlaXJkIGdpcmwgc2l0dGluZyBhbG9uZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgZ3Vlc3MgZXZlcnlvbmUgbXVzdCBzZWUgbWUgYXMgdGhlIHdlaXJkIGdpcmwgc2l0dGluZyBhbG9uZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1VvbGtrbm9sa2tCb2xra0JvbGtrdW9sa2tIb2xra1BvbGtrdiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNy4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjVW9sa2tub2xra0JvbGtrQm9sa2t1b2xra0hvbGtrUG9sa2t2JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O05vdCBhdCBhbGwsIEhhaWxleSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM183YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O05vdCBhdCBhbGwsIEhhaWxleSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfN2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SeKAmW0gcmVhbGx5IGVtYmFycmFzc2VkIHdlYXJpbmcgdGhpcyBkcmVzcyZxdW90OyAmcXVvdDtkb2xra2ZvbGtrU29sa2tOb2xra2tvbGtrd29sa2tUb2xra25vbGtrbG9sa2thb2xra0FvbGtreW9sa2t5b2xra1hvbGtrdm9sa2tzJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gcmVhbGx5IGVtYmFycmFzc2VkIHdlYXJpbmcgdGhpcyBkcmVzcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0nigJltIHJlYWxseSBlbWJhcnJhc3NlZCB3ZWFyaW5nIHRoaXMgZHJlc3MmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9kb3VidC53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7SGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfZG91YnQud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMi4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIGNvdWxkIGZlZWwgZXZlcnlvbmUgc3RhcmluZyBhdCBtZSBvbiB0aGUgc3RyZWV0JnF1b3Q7ICZxdW90O0hvbGtrRG9sa2tmb2xra1NvbGtrTG9sa2tMb2xra1RvbGtrZW9sa2tCb2xra3ZvbGtrT29sa2tib2xra1BvbGtrWm9sa2tib2xra1gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGNvdWxkIGZlZWwgZXZlcnlvbmUgc3RhcmluZyBhdCBtZSBvbiB0aGUgc3RyZWV0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSBjb3VsZCBmZWVsIGV2ZXJ5b25lIHN0YXJpbmcgYXQgbWUgb24gdGhlIHN0cmVldCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1Blb3BsZSBtdXN0IHRoaW5rIEnigJltIGEgcHJvc3RpdHV0ZSBvciBzb21ldGhpbmcmcXVvdDsgJnF1b3Q7Z29sa2tpb2xra0hvbGtrZG9sa2tNb2xra3ZvbGtreW9sa2tub2xra3NvbGtrTG9sa2tib2xra3FvbGtrVG9sa2tlb2xra3VvbGtrdyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1Blb3BsZSBtdXN0IHRoaW5rIEnigJltIGEgcHJvc3RpdHV0ZSBvciBzb21ldGhpbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtQZW9wbGUgbXVzdCB0aGluayBJ4oCZbSBhIHByb3N0aXR1dGUgb3Igc29tZXRoaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7UG9sa2tFb2xra0pvbGtrcG9sa2tsb2xra2VvbGtrZG9sa2taJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA1LjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNQb2xra0VvbGtrSm9sa2twb2xra2xvbGtrZW9sa2tkb2xra1omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7RG9u4oCZdCBvdmVydGhpbmsgaXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfN2ImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtEb27igJl0IG92ZXJ0aGluayBpdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfN2ImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM1OSIgbmFtZT0iSGFpbGV5Q2hhdEVwM183YSIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCw0NDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM183YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O05vdCBhdCBhbGwsIEhhaWxleSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtOb3QgYXQgYWxsLCBIYWlsZXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtOb3QgYXQgYWxsLCBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7aW9sa2t3b2xra3FvbGtrcG9sa2tKb2xra29vbGtrWG9sa2tEJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNpb2xra3dvbGtrcW9sa2twb2xra0pvbGtrb29sa2tYb2xra0QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SXTigJlzIHRvdGFsbHkgbm9ybWFsIGZvciBhIGdpcmwgdG8gZ28gb3V0IGFsb25lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzhhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SXTigJlzIHRvdGFsbHkgbm9ybWFsIGZvciBhIGdpcmwgdG8gZ28gb3V0IGFsb25lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM184YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzNjAiIG5hbWU9IkhhaWxleUNoYXRFcDNfOGEiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsNDQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfOGEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJdOKAmXMgdG90YWxseSBub3JtYWwgZm9yIGEgZ2lybCB0byBnbyBvdXQgYWxvbmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXTigJlzIHRvdGFsbHkgbm9ybWFsIGZvciBhIGdpcmwgdG8gZ28gb3V0IGFsb25lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SXTigJlzIHRvdGFsbHkgbm9ybWFsIGZvciBhIGdpcmwgdG8gZ28gb3V0IGFsb25lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0lvbGtrVm9sa2twb2xra1hvbGtrWG9sa2tIb2xra3hvbGtrVSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjSW9sa2tWb2xra3BvbGtrWG9sa2tYb2xra0hvbGtreG9sa2tVJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0ZvciB1cywgaXTigJlzIGV2ZW4gYXR0cmFjdGl2ZSB0byBhcHByb2FjaCBhIGdpcmwgbGlrZSB5b3Ugd2hv4oCZcyBzaXR0aW5nIGFsb25lIGFuZCB0cnkgdG8gbWFrZSBhIG1vdmUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfOWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtGb3IgdXMsIGl04oCZcyBldmVuIGF0dHJhY3RpdmUgdG8gYXBwcm9hY2ggYSBnaXJsIGxpa2UgeW91IHdob+KAmXMgc2l0dGluZyBhbG9uZSBhbmQgdHJ5IHRvIG1ha2UgYSBtb3ZlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM185YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzNjEiIG5hbWU9IkhhaWxleUNoYXRFcDNfOWEiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCw0NjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM185YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0ZvciB1cywgaXTigJlzIGV2ZW4gYXR0cmFjdGl2ZSB0byBhcHByb2FjaCBhIGdpcmwgbGlrZSB5b3Ugd2hv4oCZcyBzaXR0aW5nIGFsb25lIGFuZCB0cnkgdG8gbWFrZSBhIG1vdmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Rm9yIHVzLCBpdOKAmXMgZXZlbiBhdHRyYWN0aXZlIHRvIGFwcHJvYWNoIGEgZ2lybCBsaWtlIHlvdSB3aG/igJlzIHNpdHRpbmcgYWxvbmUgYW5kIHRyeSB0byBtYWtlIGEgbW92ZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0ZvciB1cywgaXTigJlzIGV2ZW4gYXR0cmFjdGl2ZSB0byBhcHByb2FjaCBhIGdpcmwgbGlrZSB5b3Ugd2hv4oCZcyBzaXR0aW5nIGFsb25lIGFuZCB0cnkgdG8gbWFrZSBhIG1vdmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1dlbGwsIHRoZXJlIHdhcyBhIGJpdCBvZiB0aGF0JnF1b3Q7ICZxdW90O1hvbGtrV29sa2txb2xra3lvbGtrd29sa2tGb2xra2hvbGtrVG9sa2tZb2xra2NvbGtreW9sa2tFb2xra2dvbGtrVG9sa2tIb2xra0wmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZWxsLCB0aGVyZSB3YXMgYSBiaXQgb2YgdGhhdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1dlbGwsIHRoZXJlIHdhcyBhIGJpdCBvZiB0aGF0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNnMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRoYWlsZXlfcmVsID0gJnF1b3Q7MSZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1JvbGtrSW9sa2tQb2xra2NvbGtrRW9sa2trb2xra2xvbGtraCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjUm9sa2tJb2xra1BvbGtrY29sa2tFb2xra2tvbGtrbG9sa2toJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0ludGVyZXN0aW5nLCB0ZWxsIG1lIG1vcmUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMTBhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SW50ZXJlc3RpbmcsIHRlbGwgbWUgbW9yZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMTBhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM2MiIgbmFtZT0iSGFpbGV5Q2hhdEVwM18xMGEiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSw0NjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18xMGEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJbnRlcmVzdGluZywgdGVsbCBtZSBtb3JlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0ludGVyZXN0aW5nLCB0ZWxsIG1lIG1vcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJbnRlcmVzdGluZywgdGVsbCBtZSBtb3JlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjVzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtXZWxsLCBhIGd1eSBjYW1lIHVwIHRvIG1lIG91dCBvZiBub3doZXJlIGFuZCBvZmZlcmVkIG1lIGEgZHJpbmsmcXVvdDsgJnF1b3Q7bW9sa2tDb2xra21vbGtrQm9sa2tyb2xra3ZvbGtrZm9sa2tIb2xra1ZvbGtrdG9sa2tpb2xra2VvbGtrdW9sa2tpb2xra3BvbGtrTCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dlbGwsIGEgZ3V5IGNhbWUgdXAgdG8gbWUgb3V0IG9mIG5vd2hlcmUgYW5kIG9mZmVyZWQgbWUgYSBkcmluayZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1dlbGwsIGEgZ3V5IGNhbWUgdXAgdG8gbWUgb3V0IG9mIG5vd2hlcmUgYW5kIG9mZmVyZWQgbWUgYSBkcmluayZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjRzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuM3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0hlIGFsc28gYXNrZWQgbWUgdG8gZGFuY2UsIGJ1dCBJIHRvbGQgaGltIEkgd2FzIGJ1c3kmcXVvdDsgJnF1b3Q7V29sa2tjb2xra2JvbGtrem9sa2tUb2xra2FvbGtrcm9sa2tVb2xra3dvbGtrWW9sa2tSb2xra0pvbGtrY29sa2tqb2xra0xvbGtrSCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hlIGFsc28gYXNrZWQgbWUgdG8gZGFuY2UsIGJ1dCBJIHRvbGQgaGltIEkgd2FzIGJ1c3kmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtIZSBhbHNvIGFza2VkIG1lIHRvIGRhbmNlLCBidXQgSSB0b2xkIGhpbSBJIHdhcyBidXN5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS40cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SXQgd2FzIGxpa2UgYSByZWZsZXgsIEkgZGlkbuKAmXQgZXZlbiB0aGluayBhYm91dCB3aGF0IEkgd2FzIHNheWluZyZxdW90OyAmcXVvdDtwb2xra1FvbGtrR29sa2tSb2xra0hvbGtrU29sa2tkb2xra0JvbGtreW9sa2tKb2xra2NvbGtrZW9sa2tJb2xra1VvbGtrY29sa2tWJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXQgd2FzIGxpa2UgYSByZWZsZXgsIEkgZGlkbuKAmXQgZXZlbiB0aGluayBhYm91dCB3aGF0IEkgd2FzIHNheWluZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0l0IHdhcyBsaWtlIGEgcmVmbGV4LCBJIGRpZG7igJl0IGV2ZW4gdGhpbmsgYWJvdXQgd2hhdCBJIHdhcyBzYXlpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNi4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIGRvbuKAmXQga25vdyBpZiB0aGF0IHdhcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8mcXVvdDsgJnF1b3Q7Zm9sa2tKb2xra3dvbGtrQ29sa2tWb2xra0NvbGtrb29sa2tjb2xra2xvbGtrQ29sa2tlb2xra3dvbGtrUm9sa2tBb2xra3BvbGtrQSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZG9u4oCZdCBrbm93IGlmIHRoYXQgd2FzIHRoZSByaWdodCB0aGluZyB0byBkbyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgZG9u4oCZdCBrbm93IGlmIHRoYXQgd2FzIHRoZSByaWdodCB0aGluZyB0byBkbyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1BvbGtrWW9sa2tWb2xra0dvbGtrTW9sa2trb2xra1FvbGtrVCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgOC4wcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjUG9sa2tZb2xra1ZvbGtrR29sa2tNb2xra2tvbGtrUW9sa2tUJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1lvdeKAmXJlIGEgZ2lybCwgc28geW91IGd1eXMgYXJlIHVzdWFsbHkgaW4gY29udHJvbCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM184JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WW914oCZcmUgYSBnaXJsLCBzbyB5b3UgZ3V5cyBhcmUgdXN1YWxseSBpbiBjb250cm9sJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM184JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM2MyIgbmFtZT0iSGFpbGV5Q2hhdEVwM183YiIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDQ2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7RG9u4oCZdCBvdmVydGhpbmsgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RG9u4oCZdCBvdmVydGhpbmsgaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtEb27igJl0IG92ZXJ0aGluayBpdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtRb2xra3VvbGtrS29sa2t2b2xra1VvbGtrZW9sa2tFb2xra0cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I1FvbGtrdW9sa2tLb2xra3ZvbGtrVW9sa2tlb2xra0VvbGtrRyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGV54oCZcmUgc3RhcmluZyBiZWNhdXNlIHlvdeKAmXJlIGJlYXV0aWZ1bCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM183Yl8xJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhleeKAmXJlIHN0YXJpbmcgYmVjYXVzZSB5b3XigJlyZSBiZWF1dGlmdWwmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I1FvbGtrdW9sa2tLb2xra3ZvbGtrVW9sa2tlb2xra0VvbGtrRyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJdCYjMzk7cyBhbGwgaW4geW91ciBoZWFkJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJdCYjMzk7cyBhbGwgaW4geW91ciBoZWFkJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM183Yl8yJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM2NCIgbmFtZT0iSGFpbGV5Q2hhdEVwM183Yl8xIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsNDYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfN2JfMSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RoZXnigJlyZSBzdGFyaW5nIGJlY2F1c2UgeW914oCZcmUgYmVhdXRpZnVsJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoZXnigJlyZSBzdGFyaW5nIGJlY2F1c2UgeW914oCZcmUgYmVhdXRpZnVsJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhleeKAmXJlIHN0YXJpbmcgYmVjYXVzZSB5b3XigJlyZSBiZWF1dGlmdWwmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGhhaWxleV9yZWwgPSAmcXVvdDsxJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1NvbGtram9sa2tib2xra2RvbGtraG9sa2tNb2xra3FvbGtrWSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjU29sa2tqb2xra2JvbGtrZG9sa2tob2xra01vbGtrcW9sa2tZJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0l04oCZcyBub3JtYWwgZm9yIGd1eXMgdG8gbG9vayBhdCBhIGdpcmwgbGlrZSB5b3UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfN2JfMV8xJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SXTigJlzIG5vcm1hbCBmb3IgZ3V5cyB0byBsb29rIGF0IGEgZ2lybCBsaWtlIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfN2JfMV8xJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM2NSIgbmFtZT0iSGFpbGV5Q2hhdEVwM183Yl8yIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsNDYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfN2JfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0l04oCZcyBhbGwgaW4geW91ciBoZWFkJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0l04oCZcyBhbGwgaW4geW91ciBoZWFkJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SXTigJlzIGFsbCBpbiB5b3VyIGhlYWQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Zm9sa2tUb2xra0ZvbGtrbW9sa2tqb2xra1VvbGtrVm9sa2tLJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNmb2xra1RvbGtrRm9sa2ttb2xra2pvbGtrVW9sa2tWb2xra0smcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7wqBJdOKAmXMgbm9ybWFsIHRvIGZlZWwgd2F0Y2hlZCB3aGVuIHlvdSBzdGVwIG91dCBvZiB5b3VyIGNvbWZvcnQgem9uZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM183Yl8yXzEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDvCoEl04oCZcyBub3JtYWwgdG8gZmVlbCB3YXRjaGVkIHdoZW4geW91IHN0ZXAgb3V0IG9mIHlvdXIgY29tZm9ydCB6b25lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM183Yl8yXzEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzY2IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzdiXzFfMSIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDQ2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzFfMSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0l04oCZcyBub3JtYWwgZm9yIGd1eXMgdG8gbG9vayBhdCBhIGdpcmwgbGlrZSB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXTigJlzIG5vcm1hbCBmb3IgZ3V5cyB0byBsb29rIGF0IGEgZ2lybCBsaWtlIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0l04oCZcyBub3JtYWwgZm9yIGd1eXMgdG8gbG9vayBhdCBhIGdpcmwgbGlrZSB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7SW9sa2t1b2xra1RvbGtrbW9sa2tSb2xra0ZvbGtrc29sa2tKJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNJb2xra3VvbGtrVG9sa2ttb2xra1JvbGtrRm9sa2tzb2xra0omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhhdOKAmXMgd2h5IHlvdSBzaG91bGQgZ28gb3V0IG1vcmUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfN2JfMV8zJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhhdOKAmXMgd2h5IHlvdSBzaG91bGQgZ28gb3V0IG1vcmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzFfMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzNjciIG5hbWU9IkhhaWxleUNoYXRFcDNfN2JfMV8zIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsNDYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfN2JfMV8zJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhhdOKAmXMgd2h5IHlvdSBzaG91bGQgZ28gb3V0IG1vcmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhdOKAmXMgd2h5IHlvdSBzaG91bGQgZ28gb3V0IG1vcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGF04oCZcyB3aHkgeW91IHNob3VsZCBnbyBvdXQgbW9yZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7VGhhbmsgeW91LCAkbmFtZSZxdW90OyAmcXVvdDtKb2xra0pvbGtrWG9sa2tMb2xra3NvbGtrdm9sa2tUb2xra3ZvbGtrcm9sa2tIb2xra3dvbGtrTW9sa2t5b2xra0VvbGtrTG9sa2t0JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhbmsgeW91LCAkbmFtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RoYW5rIHlvdSwgJG5hbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4ycyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjNzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtUaG91Z2ggSeKAmW0gc3VyZSB5b3Ugc2F5IHRoYXQgdG8gYWxsIHRoZSBnaXJscyBiZWNhdXNlIHlvdeKAmXJlIGtpbmQmcXVvdDsgJnF1b3Q7aW9sa2txb2xra3lvbGtrS29sa2trb2xra0tvbGtrbG9sa2tzb2xra2lvbGtrYm9sa2tYb2xra2dvbGtrWW9sa2t6b2xra3lvbGtrbCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1Rob3VnaCBJ4oCZbSBzdXJlIHlvdSBzYXkgdGhhdCB0byBhbGwgdGhlIGdpcmxzIGJlY2F1c2UgeW914oCZcmUga2luZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1Rob3VnaCBJ4oCZbSBzdXJlIHlvdSBzYXkgdGhhdCB0byBhbGwgdGhlIGdpcmxzIGJlY2F1c2UgeW914oCZcmUga2luZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O2hvbGtrT29sa2tYb2xra0xvbGtrb29sa2t2b2xra2RvbGtrRSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy4xcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjaG9sa2tPb2xra1hvbGtrTG9sa2tvb2xra3ZvbGtrZG9sa2tFJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0nigJltIHNheWluZyBpdCBiZWNhdXNlIGl04oCZcyB0cnVlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzFfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0nigJltIHNheWluZyBpdCBiZWNhdXNlIGl04oCZcyB0cnVlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM183Yl8xXzQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzY4IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzdiXzFfNCIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDQ2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzFfNCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0nigJltIHNheWluZyBpdCBiZWNhdXNlIGl04oCZcyB0cnVlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJltIHNheWluZyBpdCBiZWNhdXNlIGl04oCZcyB0cnVlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SeKAmW0gc2F5aW5nIGl0IGJlY2F1c2UgaXTigJlzIHRydWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgZG9u4oCZdCBrbm93IHdoYXQgdG8gc2F5IGluIG1vbWVudHMgbGlrZSB0aGlzJnF1b3Q7ICZxdW90O0NvbGtrem9sa2thb2xra3NvbGtreG9sa2t6b2xra3RvbGtrb29sa2tmb2xra09vbGtrTW9sa2tVb2xra25vbGtrTm9sa2tIb2xra28mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGRvbuKAmXQga25vdyB3aGF0IHRvIHNheSBpbiBtb21lbnRzIGxpa2UgdGhpcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgZG9u4oCZdCBrbm93IHdoYXQgdG8gc2F5IGluIG1vbWVudHMgbGlrZSB0aGlzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuOXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SeKAmW0gc28gc29jaWFsbHkgYXdrd2FyZCZxdW90OyAmcXVvdDt0b2xra3dvbGtrY29sa2tnb2xra2hvbGtreW9sa2tpb2xra0ZvbGtrcW9sa2tPb2xra3pvbGtrcW9sa2tEb2xra3BvbGtrQm9sa2tYJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gc28gc29jaWFsbHkgYXdrd2FyZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0nigJltIHNvIHNvY2lhbGx5IGF3a3dhcmQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi45cyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9kb3VidC53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7SGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfZG91YnQud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtib2xra1dvbGtrZ29sa2tqb2xra2pvbGtrSm9sa2tkb2xra1kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuOXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I2JvbGtrV29sa2tnb2xra2pvbGtram9sa2tKb2xra2RvbGtrWSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3UgZG9u4oCZdCBoYXZlIHRvIHNheSBhbnl0aGluZywgbGV04oCZcyBtb3ZlIG9uJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzFfNSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdSBkb27igJl0IGhhdmUgdG8gc2F5IGFueXRoaW5nLCBsZXTigJlzIG1vdmUgb24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzFfNSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzNjkiIG5hbWU9IkhhaWxleUNoYXRFcDNfN2JfMV81IiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDQ2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzFfNSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdSBkb27igJl0IGhhdmUgdG8gc2F5IGFueXRoaW5nLCBsZXTigJlzIG1vdmUgb24mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGRvbuKAmXQgaGF2ZSB0byBzYXkgYW55dGhpbmcsIGxldOKAmXMgbW92ZSBvbiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1lvdSBkb27igJl0IGhhdmUgdG8gc2F5IGFueXRoaW5nLCBsZXTigJlzIG1vdmUgb24mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7SW9sa2tSb2xra0ZvbGtreG9sa2tyb2xra2JvbGtrcG9sa2tPJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNJb2xra1JvbGtrRm9sa2t4b2xra3JvbGtrYm9sa2twb2xra08mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGVsbCBtZSwgaG934oCZcyBldmVyeXRoaW5nIGdvaW5nIG92ZXIgdGhlcmU/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzFfNiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RlbGwgbWUsIGhvd+KAmXMgZXZlcnl0aGluZyBnb2luZyBvdmVyIHRoZXJlPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfN2JfMV82JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM3MCIgbmFtZT0iSGFpbGV5Q2hhdEVwM183Yl8xXzYiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsNDYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfN2JfMV82JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGVsbCBtZSwgaG934oCZcyBldmVyeXRoaW5nIGdvaW5nIG92ZXIgdGhlcmU/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RlbGwgbWUsIGhvd+KAmXMgZXZlcnl0aGluZyBnb2luZyBvdmVyIHRoZXJlPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RlbGwgbWUsIGhvd+KAmXMgZXZlcnl0aGluZyBnb2luZyBvdmVyIHRoZXJlPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS41cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7V2VsbCwgYSBndXkgY2FtZSB1cCB0byBtZSBvdXQgb2Ygbm93aGVyZSBhbmQgb2ZmZXJlZCBtZSBhIGRyaW5rJnF1b3Q7ICZxdW90O0pvbGtrSm9sa2tMb2xra0dvbGtrSW9sa2tvb2xra2lvbGtrRW9sa2tSb2xra3lvbGtrZm9sa2tvb2xra2xvbGtrQm9sa2tpb2xra2QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZWxsLCBhIGd1eSBjYW1lIHVwIHRvIG1lIG91dCBvZiBub3doZXJlIGFuZCBvZmZlcmVkIG1lIGEgZHJpbmsmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtXZWxsLCBhIGd1eSBjYW1lIHVwIHRvIG1lIG91dCBvZiBub3doZXJlIGFuZCBvZmZlcmVkIG1lIGEgZHJpbmsmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi40cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjNzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtIZSBhbHNvIGFza2VkIG1lIHRvIGRhbmNlLCBidXQgSSB0b2xkIGhpbSBJIHdhcyBidXN5JnF1b3Q7ICZxdW90O0hvbGtrZG9sa2tWb2xra05vbGtrdG9sa2t1b2xra0ZvbGtrbW9sa2tQb2xra1pvbGtra29sa2tob2xra05vbGtrT29sa2tpb2xra1YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZSBhbHNvIGFza2VkIG1lIHRvIGRhbmNlLCBidXQgSSB0b2xkIGhpbSBJIHdhcyBidXN5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SGUgYWxzbyBhc2tlZCBtZSB0byBkYW5jZSwgYnV0IEkgdG9sZCBoaW0gSSB3YXMgYnVzeSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0l0IHdhcyBsaWtlIGEgcmVmbGV4LCBJIGRpZG7igJl0IGV2ZW4gdGhpbmsgYWJvdXQgd2hhdCBJIHdhcyBzYXlpbmcmcXVvdDsgJnF1b3Q7ZW9sa2tVb2xra0pvbGtrVG9sa2tHb2xra2RvbGtrQm9sa2tMb2xra0tvbGtrZG9sa2twb2xra0lvbGtrS29sa2tDb2xra0NvbGtrRiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0l0IHdhcyBsaWtlIGEgcmVmbGV4LCBJIGRpZG7igJl0IGV2ZW4gdGhpbmsgYWJvdXQgd2hhdCBJIHdhcyBzYXlpbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJdCB3YXMgbGlrZSBhIHJlZmxleCwgSSBkaWRu4oCZdCBldmVuIHRoaW5rIGFib3V0IHdoYXQgSSB3YXMgc2F5aW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDYuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSBkb27igJl0IGtub3cgaWYgdGhhdCB3YXMgdGhlIHJpZ2h0IHRoaW5nIHRvIGRvJnF1b3Q7ICZxdW90O2RvbGtrZW9sa2tXb2xra3JvbGtrdm9sa2tlb2xra2FvbGtrTm9sa2tvb2xra2tvbGtrZm9sa2tqb2xra3JvbGtrcG9sa2tTb2xra3UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGRvbuKAmXQga25vdyBpZiB0aGF0IHdhcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIGRvbuKAmXQga25vdyBpZiB0aGF0IHdhcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDt1b2xra2ZvbGtrQm9sa2txb2xra0tvbGtrVm9sa2tjb2xra2YmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDguMHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3VvbGtrZm9sa2tCb2xra3FvbGtrS29sa2tWb2xra2NvbGtrZiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3XigJlyZSBhIGdpcmwsIHNvIHlvdSBndXlzIGFyZSB1c3VhbGx5IGluIGNvbnRyb2wmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfOCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdeKAmXJlIGEgZ2lybCwgc28geW91IGd1eXMgYXJlIHVzdWFsbHkgaW4gY29udHJvbCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfOCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzNzEiIG5hbWU9IkhhaWxleUNoYXRFcDNfN2JfMl8xIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsNDcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfN2JfMl8xJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7wqBJdOKAmXMgbm9ybWFsIHRvIGZlZWwgd2F0Y2hlZCB3aGVuIHlvdSBzdGVwIG91dCBvZiB5b3VyIGNvbWZvcnQgem9uZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDvCoEl04oCZcyBub3JtYWwgdG8gZmVlbCB3YXRjaGVkIHdoZW4geW91IHN0ZXAgb3V0IG9mIHlvdXIgY29tZm9ydCB6b25lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7wqBJdOKAmXMgbm9ybWFsIHRvIGZlZWwgd2F0Y2hlZCB3aGVuIHlvdSBzdGVwIG91dCBvZiB5b3VyIGNvbWZvcnQgem9uZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtPb2xra0xvbGtrWm9sa2tlb2xra2JvbGtrUW9sa2tMb2xra0UmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I09vbGtrTG9sa2tab2xra2VvbGtrYm9sa2tRb2xra0xvbGtrRSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtEb27igJl0IHdvcnJ5LCBldmVyeXRoaW5n4oCZcyBmaW5lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzJfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0RvbuKAmXQgd29ycnksIGV2ZXJ5dGhpbmfigJlzIGZpbmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzJfMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzNzIiIG5hbWU9IkhhaWxleUNoYXRFcDNfN2JfMl8yIiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsNDcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfN2JfMl8yJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7RG9u4oCZdCB3b3JyeSwgZXZlcnl0aGluZ+KAmXMgZmluZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEb27igJl0IHdvcnJ5LCBldmVyeXRoaW5n4oCZcyBmaW5lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7RG9u4oCZdCB3b3JyeSwgZXZlcnl0aGluZ+KAmXMgZmluZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7UGFydCBvZiBtZSB0aGlua3MgdGhhdOKAmXMgcHJvYmFibHkgdGhlIGNhc2UmcXVvdDsgJnF1b3Q7dm9sa2tNb2xra3hvbGtraW9sa2tWb2xra2hvbGtrdG9sa2tqb2xra3ZvbGtrbG9sa2tQb2xra1hvbGtrTG9sa2tqb2xra2NvbGtraCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1BhcnQgb2YgbWUgdGhpbmtzIHRoYXTigJlzIHByb2JhYmx5IHRoZSBjYXNlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7UGFydCBvZiBtZSB0aGlua3MgdGhhdOKAmXMgcHJvYmFibHkgdGhlIGNhc2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS43cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtCdXQgSSBjYW7igJl0IGhlbHAgZmVlbGluZyBzdXBlciBlbWJhcnJhc3NlZCZxdW90OyAmcXVvdDtMb2xra3dvbGtrbG9sa2tZb2xra0dvbGtrbG9sa2tIb2xra0lvbGtrT29sa2tYb2xra0lvbGtrRW9sa2tub2xra2pvbGtrbW9sa2tKJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IEkgY2Fu4oCZdCBoZWxwIGZlZWxpbmcgc3VwZXIgZW1iYXJyYXNzZWQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtCdXQgSSBjYW7igJl0IGhlbHAgZmVlbGluZyBzdXBlciBlbWJhcnJhc3NlZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O2VvbGtrSW9sa2t4b2xra0tvbGtram9sa2tyb2xra0FvbGtrZCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy4wcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjZW9sa2tJb2xra3hvbGtrS29sa2tqb2xra3JvbGtrQW9sa2tkJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RoZSBtb3JlIHlvdSBleHBlcmllbmNlIG5pZ2h0cyBsaWtlIHRoaXMsIHRoZSBtb3JlIHlvdeKAmWxsIGdldCB1c2VkIHRvIGl0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzJfMyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoZSBtb3JlIHlvdSBleHBlcmllbmNlIG5pZ2h0cyBsaWtlIHRoaXMsIHRoZSBtb3JlIHlvdeKAmWxsIGdldCB1c2VkIHRvIGl0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM183Yl8yXzMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzczIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzdiXzJfMyIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDQ3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzJfMyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RoZSBtb3JlIHlvdSBleHBlcmllbmNlIG5pZ2h0cyBsaWtlIHRoaXMsIHRoZSBtb3JlIHlvdeKAmWxsIGdldCB1c2VkIHRvIGl0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoZSBtb3JlIHlvdSBleHBlcmllbmNlIG5pZ2h0cyBsaWtlIHRoaXMsIHRoZSBtb3JlIHlvdeKAmWxsIGdldCB1c2VkIHRvIGl0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhlIG1vcmUgeW91IGV4cGVyaWVuY2UgbmlnaHRzIGxpa2UgdGhpcywgdGhlIG1vcmUgeW914oCZbGwgZ2V0IHVzZWQgdG8gaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7VW9sa2tCb2xra3lvbGtrYm9sa2tIb2xra3RvbGtrTm9sa2tTJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNVb2xra0JvbGtreW9sa2tib2xra0hvbGtrdG9sa2tOb2xra1MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7U28gZG9u4oCZdCB3b3JyeSwgaXTigJlzIHBhcnQgb2YgdGhlIHByb2Nlc3MmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfN2JfMl80JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7U28gZG9u4oCZdCB3b3JyeSwgaXTigJlzIHBhcnQgb2YgdGhlIHByb2Nlc3MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzJfNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzNzQiIG5hbWU9IkhhaWxleUNoYXRFcDNfN2JfMl80IiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsNDcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfN2JfMl80JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7U28gZG9u4oCZdCB3b3JyeSwgaXTigJlzIHBhcnQgb2YgdGhlIHByb2Nlc3MmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U28gZG9u4oCZdCB3b3JyeSwgaXTigJlzIHBhcnQgb2YgdGhlIHByb2Nlc3MmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtTbyBkb27igJl0IHdvcnJ5LCBpdOKAmXMgcGFydCBvZiB0aGUgcHJvY2VzcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4xcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7WWVhaC4uLiZxdW90OyAmcXVvdDtab2xra3NvbGtrd29sa2tTb2xra0dvbGtrUm9sa2tMb2xra2tvbGtrd29sa2tvb2xra3pvbGtrTW9sa2t4b2xra2VvbGtra29sa2tyJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WWVhaC4uLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1llYWguLi4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIGd1ZXNzIHlvdeKAmXJlIHJpZ2h0JnF1b3Q7ICZxdW90O05vbGtraG9sa2trb2xra3pvbGtrR29sa2tVb2xra0RvbGtrSm9sa2tJb2xra29vbGtrc29sa2tLb2xra0RvbGtrVW9sa2txb2xra3omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGd1ZXNzIHlvdeKAmXJlIHJpZ2h0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSBndWVzcyB5b3XigJlyZSByaWdodCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0nigJlsbCB0cnkgbm90IHRvIHdvcnJ5IGFib3V0IGl0IGFueW1vcmUmcXVvdDsgJnF1b3Q7QW9sa2ttb2xra1FvbGtrRW9sa2tib2xra0ZvbGtrSW9sa2tTb2xra0FvbGtra29sa2tTb2xra0lvbGtrT29sa2t2b2xra2NvbGtrSSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJlsbCB0cnkgbm90IHRvIHdvcnJ5IGFib3V0IGl0IGFueW1vcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJ4oCZbGwgdHJ5IG5vdCB0byB3b3JyeSBhYm91dCBpdCBhbnltb3JlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7Q29sa2tIb2xra2ZvbGtrVm9sa2tlb2xra2FvbGtrYm9sa2tvJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjRzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNDb2xra0hvbGtrZm9sa2tWb2xra2VvbGtrYW9sa2tib2xra28mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhhdOKAmXMgdGhlIHJpZ2h0IG1pbmRzZXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfN2JfMl81JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhhdOKAmXMgdGhlIHJpZ2h0IG1pbmRzZXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzdiXzJfNSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzNzUiIG5hbWU9IkhhaWxleUNoYXRFcDNfN2JfMl81IiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsNDcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfN2JfMl81JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhhdOKAmXMgdGhlIHJpZ2h0IG1pbmRzZXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhdOKAmXMgdGhlIHJpZ2h0IG1pbmRzZXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGF04oCZcyB0aGUgcmlnaHQgbWluZHNldCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt6b2xra1NvbGtrZG9sa2trb2xra1RvbGtrRG9sa2tab2xra0wmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3pvbGtrU29sa2tkb2xra2tvbGtrVG9sa2tEb2xra1pvbGtrTCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtCdXQgdGVsbCBtZSwgaG934oCZcyBldmVyeXRoaW5nIGdvaW5nPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM183Yl8yXzYmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtCdXQgdGVsbCBtZSwgaG934oCZcyBldmVyeXRoaW5nIGdvaW5nPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfN2JfMl82JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM3NiIgbmFtZT0iSGFpbGV5Q2hhdEVwM183Yl8yXzYiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSw0NzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM183Yl8yXzYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtCdXQgdGVsbCBtZSwgaG934oCZcyBldmVyeXRoaW5nIGdvaW5nPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgdGVsbCBtZSwgaG934oCZcyBldmVyeXRoaW5nIGdvaW5nPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0J1dCB0ZWxsIG1lLCBob3figJlzIGV2ZXJ5dGhpbmcgZ29pbmc/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjVzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtXZWxsLCBhIGd1eSBjYW1lIHVwIHRvIG1lIG91dCBvZiBub3doZXJlIGFuZCBvZmZlcmVkIG1lIGEgZHJpbmsmcXVvdDsgJnF1b3Q7c29sa2tIb2xra2pvbGtrZm9sa2tob2xra0pvbGtrU29sa2tKb2xra29vbGtrcG9sa2tNb2xra1BvbGtrc29sa2t1b2xra25vbGtraiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dlbGwsIGEgZ3V5IGNhbWUgdXAgdG8gbWUgb3V0IG9mIG5vd2hlcmUgYW5kIG9mZmVyZWQgbWUgYSBkcmluayZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1dlbGwsIGEgZ3V5IGNhbWUgdXAgdG8gbWUgb3V0IG9mIG5vd2hlcmUgYW5kIG9mZmVyZWQgbWUgYSBkcmluayZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjRzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuM3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0hlIGFsc28gYXNrZWQgbWUgdG8gZGFuY2UsIGJ1dCBJIHRvbGQgaGltIEkgd2FzIGJ1c3kmcXVvdDsgJnF1b3Q7bG9sa2t1b2xra1dvbGtrcG9sa2tVb2xra0JvbGtrUm9sa2tpb2xra29vbGtrZm9sa2tMb2xra3pvbGtrUm9sa2t0b2xra1NvbGtrdyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hlIGFsc28gYXNrZWQgbWUgdG8gZGFuY2UsIGJ1dCBJIHRvbGQgaGltIEkgd2FzIGJ1c3kmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtIZSBhbHNvIGFza2VkIG1lIHRvIGRhbmNlLCBidXQgSSB0b2xkIGhpbSBJIHdhcyBidXN5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS40cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SXQgd2FzIGxpa2UgYSByZWZsZXgsIEkgZGlkbuKAmXQgZXZlbiB0aGluayBhYm91dCB3aGF0IEkgd2FzIHNheWluZyZxdW90OyAmcXVvdDtxb2xra0ZvbGtrUW9sa2tTb2xra1BvbGtrSm9sa2tpb2xra25vbGtrZ29sa2t1b2xra0hvbGtrRG9sa2tHb2xra0tvbGtrTm9sa2tmJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXQgd2FzIGxpa2UgYSByZWZsZXgsIEkgZGlkbuKAmXQgZXZlbiB0aGluayBhYm91dCB3aGF0IEkgd2FzIHNheWluZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0l0IHdhcyBsaWtlIGEgcmVmbGV4LCBJIGRpZG7igJl0IGV2ZW4gdGhpbmsgYWJvdXQgd2hhdCBJIHdhcyBzYXlpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNi4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIGRvbuKAmXQga25vdyBpZiB0aGF0IHdhcyB0aGUgcmlnaHQgdGhpbmcgdG8gZG8mcXVvdDsgJnF1b3Q7Ym9sa2tTb2xra2lvbGtrZ29sa2tNb2xra1FvbGtrY29sa2tOb2xra0NvbGtrb29sa2txb2xra0pvbGtrQW9sa2tEb2xra01vbGtrTCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZG9u4oCZdCBrbm93IGlmIHRoYXQgd2FzIHRoZSByaWdodCB0aGluZyB0byBkbyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgZG9u4oCZdCBrbm93IGlmIHRoYXQgd2FzIHRoZSByaWdodCB0aGluZyB0byBkbyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O3NvbGtrQW9sa2tzb2xra2dvbGtrSW9sa2tTb2xra0pvbGtrRiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgOC4wcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjc29sa2tBb2xra3NvbGtrZ29sa2tJb2xra1NvbGtrSm9sa2tGJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1lvdeKAmXJlIGEgZ2lybCwgc28geW91IGd1eXMgYXJlIHVzdWFsbHkgaW4gY29udHJvbCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM184JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WW914oCZcmUgYSBnaXJsLCBzbyB5b3UgZ3V5cyBhcmUgdXN1YWxseSBpbiBjb250cm9sJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM184JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM3NyIgbmFtZT0iSGFpbGV5Q2hhdEVwM184IiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsNDcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfOCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdeKAmXJlIGEgZ2lybCwgc28geW91IGd1eXMgYXJlIHVzdWFsbHkgaW4gY29udHJvbCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3XigJlyZSBhIGdpcmwsIHNvIHlvdSBndXlzIGFyZSB1c3VhbGx5IGluIGNvbnRyb2wmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZb3XigJlyZSBhIGdpcmwsIHNvIHlvdSBndXlzIGFyZSB1c3VhbGx5IGluIGNvbnRyb2wmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7S29sa2t0b2xra3FvbGtrb29sa2tMb2xra3NvbGtrcW9sa2twJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNLb2xra3RvbGtrcW9sa2tvb2xra0xvbGtrc29sa2txb2xra3AmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7V2hlbiBhIGd1eSB0YWxrcyB0byB5b3UsIHlvdSBzaG91bGQgdGhpbmsgYWJvdXQgd2hhdCB5b3UgcmVhbGx5IHdhbnQgYmVmb3JlIHJlc3BvbmRpbmcmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfOSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1doZW4gYSBndXkgdGFsa3MgdG8geW91LCB5b3Ugc2hvdWxkIHRoaW5rIGFib3V0IHdoYXQgeW91IHJlYWxseSB3YW50IGJlZm9yZSByZXNwb25kaW5nJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM185JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM3OCIgbmFtZT0iSGFpbGV5Q2hhdEVwM185IiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsNDcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfOSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1doZW4gYSBndXkgdGFsa3MgdG8geW91LCB5b3Ugc2hvdWxkIHRoaW5rIGFib3V0IHdoYXQgeW91IHJlYWxseSB3YW50IGJlZm9yZSByZXNwb25kaW5nJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1doZW4gYSBndXkgdGFsa3MgdG8geW91LCB5b3Ugc2hvdWxkIHRoaW5rIGFib3V0IHdoYXQgeW91IHJlYWxseSB3YW50IGJlZm9yZSByZXNwb25kaW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7V2hlbiBhIGd1eSB0YWxrcyB0byB5b3UsIHlvdSBzaG91bGQgdGhpbmsgYWJvdXQgd2hhdCB5b3UgcmVhbGx5IHdhbnQgYmVmb3JlIHJlc3BvbmRpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7eG9sa2tkb2xra1JvbGtrdW9sa2tab2xra0JvbGtrSW9sa2tsJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyN4b2xra2RvbGtrUm9sa2t1b2xra1pvbGtrQm9sa2tJb2xra2wmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VHJ1c3QgbWUsIGhl4oCZbGwgd2FpdCBmb3IgeW91ciBhbnN3ZXImcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMTAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUcnVzdCBtZSwgaGXigJlsbCB3YWl0IGZvciB5b3VyIGFuc3dlciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMTAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzc5IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzEwIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDQ3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzEwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VHJ1c3QgbWUsIGhl4oCZbGwgd2FpdCBmb3IgeW91ciBhbnN3ZXImcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VHJ1c3QgbWUsIGhl4oCZbGwgd2FpdCBmb3IgeW91ciBhbnN3ZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUcnVzdCBtZSwgaGXigJlsbCB3YWl0IGZvciB5b3VyIGFuc3dlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4ycyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SeKAmWxsIHRyeSZxdW90OyAmcXVvdDtRb2xra3JvbGtrSm9sa2tDb2xra2JvbGtrWW9sa2tMb2xra0RvbGtrR29sa2t0b2xra1ZvbGtrb29sa2tBb2xra25vbGtrbW9sa2tUJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmWxsIHRyeSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0nigJlsbCB0cnkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtUaG91Z2ggbm8gb25lIGVsc2UgaGFzIGFwcHJvYWNoZWQgbWUmcXVvdDsgJnF1b3Q7R29sa2tTb2xra1FvbGtrd29sa2tWb2xra1FvbGtrSG9sa2tTb2xra0dvbGtrTW9sa2tMb2xra1hvbGtrRm9sa2tEb2xra1JvbGtrciZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1Rob3VnaCBubyBvbmUgZWxzZSBoYXMgYXBwcm9hY2hlZCBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1Rob3VnaCBubyBvbmUgZWxzZSBoYXMgYXBwcm9hY2hlZCBtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjRzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgc2VlIGEgbG90IG9mIGdyb3VwcyBvZiBnaXJscywgYW5kIEkga2luZCBvZiBlbnZ5IHRoZW0mcXVvdDsgJnF1b3Q7QW9sa2tTb2xra3VvbGtreW9sa2tRb2xra0dvbGtrVm9sa2ttb2xra0RvbGtrVG9sa2tzb2xra1pvbGtrQ29sa2tWb2xra2xvbGtrcCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgc2VlIGEgbG90IG9mIGdyb3VwcyBvZiBnaXJscywgYW5kIEkga2luZCBvZiBlbnZ5IHRoZW0mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIHNlZSBhIGxvdCBvZiBncm91cHMgb2YgZ2lybHMsIGFuZCBJIGtpbmQgb2YgZW52eSB0aGVtJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7VGhleSBzZWVtIHRvIGJlIGhhdmluZyBmdW4gdG9nZXRoZXImcXVvdDsgJnF1b3Q7ZG9sa2tSb2xra2xvbGtrUW9sa2tYb2xra3VvbGtrQ29sa2tlb2xra2tvbGtrTm9sa2tLb2xra1dvbGtrT29sa2tKb2xra1NvbGtrViZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoZXkgc2VlbSB0byBiZSBoYXZpbmcgZnVuIHRvZ2V0aGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhleSBzZWVtIHRvIGJlIGhhdmluZyBmdW4gdG9nZXRoZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtBb2xra2VvbGtrYm9sa2tNb2xra01vbGtrb29sa2tBb2xra1AmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDUuN3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I0FvbGtrZW9sa2tib2xra01vbGtrTW9sa2tvb2xra0FvbGtrUCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3Uga25vdywgeW91IGNvdWxkIHRyeSBhcHByb2FjaGluZyBvbmUgb2YgdGhvc2UgZ3JvdXBzIGFuZCBtYWtpbmcgZnJpZW5kcyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18xMSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdSBrbm93LCB5b3UgY291bGQgdHJ5IGFwcHJvYWNoaW5nIG9uZSBvZiB0aG9zZSBncm91cHMgYW5kIG1ha2luZyBmcmllbmRzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18xMSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzODAiIG5hbWU9IkhhaWxleUNoYXRFcDNfMTEiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsNDcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMTEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZb3Uga25vdywgeW91IGNvdWxkIHRyeSBhcHByb2FjaGluZyBvbmUgb2YgdGhvc2UgZ3JvdXBzIGFuZCBtYWtpbmcgZnJpZW5kcyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3Uga25vdywgeW91IGNvdWxkIHRyeSBhcHByb2FjaGluZyBvbmUgb2YgdGhvc2UgZ3JvdXBzIGFuZCBtYWtpbmcgZnJpZW5kcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1lvdSBrbm93LCB5b3UgY291bGQgdHJ5IGFwcHJvYWNoaW5nIG9uZSBvZiB0aG9zZSBncm91cHMgYW5kIG1ha2luZyBmcmllbmRzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIGRvbuKAmXQga25vdywgdGhlIG11c2ljIGlzIHRvbyBsb3VkJnF1b3Q7ICZxdW90O3pvbGtrZW9sa2tYb2xra2xvbGtrTm9sa2tUb2xra1NvbGtrc29sa2tVb2xra2ZvbGtrcW9sa2tUb2xra09vbGtrYm9sa2txb2xra1kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGRvbuKAmXQga25vdywgdGhlIG11c2ljIGlzIHRvbyBsb3VkJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSBkb27igJl0IGtub3csIHRoZSBtdXNpYyBpcyB0b28gbG91ZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgZG91YnQgd2XigJlkIGV2ZW4gYmUgYWJsZSB0byBoYXZlIGEgY29udmVyc2F0aW9uJnF1b3Q7ICZxdW90O29vbGtrRW9sa2tTb2xra3NvbGtrQ29sa2tTb2xra0VvbGtrWm9sa2txb2xra0FvbGtrZ29sa2tqb2xra0JvbGtrdm9sa2tJb2xra00mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGRvdWJ0IHdl4oCZZCBldmVuIGJlIGFibGUgdG8gaGF2ZSBhIGNvbnZlcnNhdGlvbiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgZG91YnQgd2XigJlkIGV2ZW4gYmUgYWJsZSB0byBoYXZlIGEgY29udmVyc2F0aW9uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7T2gsIHRoZXJl4oCZcyB0aGF0IGd1eSBhZ2FpbiZxdW90OyAmcXVvdDtHb2xra2tvbGtrZW9sa2t5b2xra2RvbGtrUW9sa2tXb2xra0RvbGtrUm9sa2tmb2xra1RvbGtrbG9sa2trb2xra01vbGtreG9sa2t6JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2gsIHRoZXJl4oCZcyB0aGF0IGd1eSBhZ2FpbiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O09oLCB0aGVyZeKAmXMgdGhhdCBndXkgYWdhaW4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtFb2xra1NvbGtrc29sa2t0b2xra1dvbGtrc29sa2tmb2xra2EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuNHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I0VvbGtrU29sa2tzb2xra3RvbGtrV29sa2tzb2xra2ZvbGtrYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtXaGF0IGd1eT8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMTImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXaGF0IGd1eT8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzEyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM4MSIgbmFtZT0iSGFpbGV5Q2hhdEVwM18xMiIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDQ4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzEyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7V2hhdCBndXk/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1doYXQgZ3V5PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1doYXQgZ3V5PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7VGhlIG9uZSB3aG8gYm91Z2h0IG1lIHRoZSBkcmluayZxdW90OyAmcXVvdDtlb2xra2JvbGtrWm9sa2tzb2xra3JvbGtrUW9sa2t1b2xra0tvbGtrSG9sa2tXb2xra09vbGtrQW9sa2tmb2xra1FvbGtrcm9sa2tFJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhlIG9uZSB3aG8gYm91Z2h0IG1lIHRoZSBkcmluayZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RoZSBvbmUgd2hvIGJvdWdodCBtZSB0aGUgZHJpbmsmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDt3b2xra0NvbGtrSW9sa2tNb2xra2NvbGtra29sa2tnb2xra00mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuNnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3dvbGtrQ29sa2tJb2xra01vbGtrY29sa2trb2xra2dvbGtrTSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJ4oCZbSBjdXJpb3VzJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzEzJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SeKAmW0gY3VyaW91cyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMTMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzgyIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzEzIiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsNDg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMTMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJ4oCZbSBjdXJpb3VzJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJltIGN1cmlvdXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJ4oCZbSBjdXJpb3VzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O05vbGtrU29sa2trb2xra1JvbGtrS29sa2t6b2xra3FvbGtrQyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjTm9sa2tTb2xra2tvbGtrUm9sa2tLb2xra3pvbGtrcW9sa2tDJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1Nob3cgbWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMTQmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtTaG93IG1lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18xNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzODMiIG5hbWU9IkhhaWxleUNoYXRFcDNfMTQiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCw0ODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18xNCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1Nob3cgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U2hvdyBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1Nob3cgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0J1dCB3aGF0IHNob3VsZCBJIGRvPyZxdW90OyAmcXVvdDtjb2xra3ZvbGtrbm9sa2tJb2xra2JvbGtrS29sa2tLb2xra3BvbGtrWW9sa2tLb2xra0xvbGtrTG9sa2tDb2xra3dvbGtrbm9sa2tDJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IHdoYXQgc2hvdWxkIEkgZG8/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QnV0IHdoYXQgc2hvdWxkIEkgZG8/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7VGFrZSBhIHBpY3R1cmU/JnF1b3Q7ICZxdW90O2hvbGtrQW9sa2tRb2xra3dvbGtram9sa2tKb2xra0pvbGtrT29sa2tPb2xra3JvbGtrd29sa2tVb2xra3VvbGtrSW9sa2tOb2xra1EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUYWtlIGEgcGljdHVyZT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUYWtlIGEgcGljdHVyZT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtCb2xra0NvbGtrRm9sa2tCb2xra05vbGtrbm9sa2tOb2xra2smcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I0JvbGtrQ29sa2tGb2xra0JvbGtrTm9sa2tub2xra05vbGtrayZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZZWFoLCBoZSB3b27igJl0IGV2ZW4gbm90aWNlLCB0cnVzdCBtZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18xNSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1llYWgsIGhlIHdvbuKAmXQgZXZlbiBub3RpY2UsIHRydXN0IG1lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18xNSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzODQiIG5hbWU9IkhhaWxleUNoYXRFcDNfMTUiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSw0ODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18xNSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1llYWgsIGhlIHdvbuKAmXQgZXZlbiBub3RpY2UsIHRydXN0IG1lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1llYWgsIGhlIHdvbuKAmXQgZXZlbiBub3RpY2UsIHRydXN0IG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WWVhaCwgaGUgd29u4oCZdCBldmVuIG5vdGljZSwgdHJ1c3QgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjFzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtPa2F5Li4uJnF1b3Q7ICZxdW90O3NvbGtrQW9sa2tGb2xra25vbGtrUG9sa2tub2xra0tvbGtrQW9sa2tQb2xra0pvbGtrTG9sa2tlb2xra0RvbGtrTm9sa2tvb2xra1cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPa2F5Li4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7T2theS4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjVzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2ltZyAmcXVvdDthc3NldHMvaW1nL2VwMy9oYWlsZXlfcGhvdG9fNC53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7bW9sa2tnb2xra3RvbGtrRW9sa2t6b2xra1lvbGtrRm9sa2tVb2xra2RvbGtrRm9sa2t0b2xra2hvbGtrbm9sa2tHb2xra3BvbGtrcCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMiwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZXAzL2hhaWxleV9waG90b180LndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRwaG90b3MucHVzaCgmcXVvdDthc3NldHMvaW1nL2VwMy9oYWlsZXlfcGhvdG9fNC53ZWJwJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1doYXQgc2hvdWxkIEkgZG8/JnF1b3Q7ICZxdW90O0ZvbGtrYm9sa2tib2xra2lvbGtreW9sa2tkb2xra3lvbGtrbG9sa2tNb2xra1FvbGtrUm9sa2tUb2xra2tvbGtraW9sa2tQb2xra1MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXaGF0IHNob3VsZCBJIGRvPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1doYXQgc2hvdWxkIEkgZG8/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7Vm9sa2tHb2xra2lvbGtrbW9sa2tQb2xra3hvbGtrWm9sa2tXJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjVzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNWb2xra0dvbGtraW9sa2ttb2xra1BvbGtreG9sa2tab2xra1cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7R28gdGFsayB0byBoaW0mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMTZhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7R28gdGFsayB0byBoaW0mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzE2YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjVm9sa2tHb2xra2lvbGtrbW9sa2tQb2xra3hvbGtrWm9sa2tXJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O05haCwgSSBkb24mIzM5O3QgbGlrZSB0aGF0IGd1eSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18xNmImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtOYWgsIEkgZG9uJiMzOTt0IGxpa2UgdGhhdCBndXkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzE2YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzODUiIG5hbWU9IkhhaWxleUNoYXRFcDNfMTZhIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsNDg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMTZhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7R28gdGFsayB0byBoaW0mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7R28gdGFsayB0byBoaW0mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtHbyB0YWxrIHRvIGhpbSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkaGFpbGV5X3RhbGtfMDEgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1FvbGtrd29sa2tUb2xra1NvbGtraG9sa2t6b2xra3BvbGtrZCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjUW9sa2t3b2xra1RvbGtrU29sa2tob2xra3pvbGtrcG9sa2tkJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0hlIGhhcyBhbHJlYWR5IHNob3duIGludGVyZXN0IGluIHlvdSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18xN2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtIZSBoYXMgYWxyZWFkeSBzaG93biBpbnRlcmVzdCBpbiB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzE3YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzODYiIG5hbWU9IkhhaWxleUNoYXRFcDNfMTZiIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsNDg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMTZiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TmFoLCBJIGRvbuKAmXQgbGlrZSB0aGF0IGd1eSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtOYWgsIEkgZG9u4oCZdCBsaWtlIHRoYXQgZ3V5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7TmFoLCBJIGRvbuKAmXQgbGlrZSB0aGF0IGd1eSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkaGFpbGV5X3RhbGtfMDEgPSBmYWxzZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtPb2xra0FvbGtrU29sa2trb2xra2dvbGtrU29sa2tMb2xra2wmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I09vbGtrQW9sa2tTb2xra2tvbGtrZ29sa2tTb2xra0xvbGtrbCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtCZXR0ZXIgd2FpdCBmb3Igc29tZW9uZSBlbHNlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzE3YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0JldHRlciB3YWl0IGZvciBzb21lb25lIGVsc2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzE3YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzODciIG5hbWU9IkhhaWxleUNoYXRFcDNfMTdhIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsNDg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMTdhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SGUgaGFzIGFscmVhZHkgc2hvd24gaW50ZXJlc3QgaW4geW91JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hlIGhhcyBhbHJlYWR5IHNob3duIGludGVyZXN0IGluIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0hlIGhhcyBhbHJlYWR5IHNob3duIGludGVyZXN0IGluIHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtUb2xra2RvbGtraW9sa2tkb2xra0JvbGtrSW9sa2tXb2xra0wmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I1RvbGtrZG9sa2tpb2xra2RvbGtrQm9sa2tJb2xra1dvbGtrTCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtTbyB5b3XigJl2ZSBhbHJlYWR5IGdvdCB0aGUgdXBwZXIgaGFuZCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18xOGEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtTbyB5b3XigJl2ZSBhbHJlYWR5IGdvdCB0aGUgdXBwZXIgaGFuZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMThhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM4OCIgbmFtZT0iSGFpbGV5Q2hhdEVwM18xOGEiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSw0ODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18xOGEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtTbyB5b3XigJl2ZSBhbHJlYWR5IGdvdCB0aGUgdXBwZXIgaGFuZCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTbyB5b3XigJl2ZSBhbHJlYWR5IGdvdCB0aGUgdXBwZXIgaGFuZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1NvIHlvdeKAmXZlIGFscmVhZHkgZ290IHRoZSB1cHBlciBoYW5kJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtCdXQgc2hvdWxkIEkganVzdCB3YWxrIHVwIHRvIGhpbT8mcXVvdDsgJnF1b3Q7Zm9sa2tIb2xra21vbGtrZW9sa2ttb2xra0FvbGtrVm9sa2tYb2xra2JvbGtrQW9sa2tYb2xra3JvbGtrRm9sa2tWb2xra1BvbGtrZiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCBzaG91bGQgSSBqdXN0IHdhbGsgdXAgdG8gaGltPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0J1dCBzaG91bGQgSSBqdXN0IHdhbGsgdXAgdG8gaGltPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1doYXQgc2hvdWxkIEkgc2F5PyZxdW90OyAmcXVvdDtsb2xra3pvbGtrdG9sa2tDb2xra1pvbGtraW9sa2tYb2xra0FvbGtrWm9sa2tzb2xra1NvbGtreW9sa2tKb2xra3lvbGtrWW9sa2t3JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2hhdCBzaG91bGQgSSBzYXk/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7V2hhdCBzaG91bGQgSSBzYXk/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7em9sa2tYb2xra2hvbGtrd29sa2tSb2xra2VvbGtrcW9sa2toJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjdzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyN6b2xra1hvbGtraG9sa2t3b2xra1JvbGtrZW9sa2txb2xra2gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSB0aGluayB5b3VyIHByZXNlbmNlIGFsb25lIHdpbGwgZG8gdGhlIHJlc3QgaWYgeW91IGFwcHJvYWNoIGhpbSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18xOWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIHRoaW5rIHlvdXIgcHJlc2VuY2UgYWxvbmUgd2lsbCBkbyB0aGUgcmVzdCBpZiB5b3UgYXBwcm9hY2ggaGltJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18xOWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzg5IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzE5YSIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCw0ODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18xOWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIHRoaW5rIHlvdXIgcHJlc2VuY2UgYWxvbmUgd2lsbCBkbyB0aGUgcmVzdCBpZiB5b3UgYXBwcm9hY2ggaGltJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgdGhpbmsgeW91ciBwcmVzZW5jZSBhbG9uZSB3aWxsIGRvIHRoZSByZXN0IGlmIHlvdSBhcHByb2FjaCBoaW0mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIHRoaW5rIHlvdXIgcHJlc2VuY2UgYWxvbmUgd2lsbCBkbyB0aGUgcmVzdCBpZiB5b3UgYXBwcm9hY2ggaGltJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3VvbGtrVG9sa2tNb2xra3RvbGtrdW9sa2tBb2xra2FvbGtrdiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjdW9sa2tUb2xra01vbGtrdG9sa2t1b2xra0FvbGtrYW9sa2t2JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1lvdSBkb27igJl0IGV2ZW4gaGF2ZSB0byBzYXkgYW55dGhpbmcmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMjBhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WW91IGRvbuKAmXQgZXZlbiBoYXZlIHRvIHNheSBhbnl0aGluZyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMjBhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM5MCIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yMGEiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsNDg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMjBhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WW91IGRvbuKAmXQgZXZlbiBoYXZlIHRvIHNheSBhbnl0aGluZyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3UgZG9u4oCZdCBldmVuIGhhdmUgdG8gc2F5IGFueXRoaW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WW91IGRvbuKAmXQgZXZlbiBoYXZlIHRvIHNheSBhbnl0aGluZyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4ycyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7T2gsIG5vLi4uJnF1b3Q7ICZxdW90O3pvbGtrcm9sa2tUb2xra0lvbGtrQW9sa2tUb2xra2RvbGtrWm9sa2tOb2xra1VvbGtrUG9sa2t5b2xra0hvbGtra29sa2tnb2xra3AmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPaCwgbm8uLi4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtPaCwgbm8uLi4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtib2xra01vbGtrdm9sa2tKb2xra0lvbGtrVW9sa2tvb2xra04mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuMXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I2JvbGtrTW9sa2t2b2xra0pvbGtrSW9sa2tVb2xra29vbGtrTiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtXaGF04oCZcyB3cm9uZz8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMjFhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7V2hhdOKAmXMgd3Jvbmc/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yMWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzkxIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzIxYSIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDQ5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzIxYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1doYXTigJlzIHdyb25nPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXaGF04oCZcyB3cm9uZz8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtXaGF04oCZcyB3cm9uZz8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgZG9u4oCZdCBzZWUgaGltIGFueW1vcmUsIGhlIG11c3QgaGF2ZSBsZWZ0JnF1b3Q7ICZxdW90O0lvbGtrVW9sa2tGb2xra3VvbGtrWm9sa2tub2xra0RvbGtraW9sa2tEb2xra0lvbGtrV29sa2tUb2xra0ZvbGtrYW9sa2tLb2xra2YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGRvbuKAmXQgc2VlIGhpbSBhbnltb3JlLCBoZSBtdXN0IGhhdmUgbGVmdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgZG9u4oCZdCBzZWUgaGltIGFueW1vcmUsIGhlIG11c3QgaGF2ZSBsZWZ0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7bm9sa2tjb2xra1BvbGtrdG9sa2t4b2xra1lvbGtrRG9sa2tWJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjhzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNub2xra2NvbGtrUG9sa2t0b2xra3hvbGtrWW9sa2tEb2xra1YmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7R28gZmluZCBoaW0sIGhlIGNhbuKAmXQgYmUgZmFyJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzIyYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0dvIGZpbmQgaGltLCBoZSBjYW7igJl0IGJlIGZhciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMjJhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM5MiIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yMmEiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSw0OTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yMmEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtHbyBmaW5kIGhpbSwgaGUgY2Fu4oCZdCBiZSBmYXImcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7R28gZmluZCBoaW0sIGhlIGNhbuKAmXQgYmUgZmFyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7R28gZmluZCBoaW0sIGhlIGNhbuKAmXQgYmUgZmFyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtPa2F5LCBJ4oCZbGwgZG8gdGhhdCZxdW90OyAmcXVvdDtEb2xra01vbGtrUG9sa2tYb2xra0JvbGtrV29sa2tmb2xra1VvbGtrZG9sa2tmb2xra2JvbGtrV29sa2tkb2xra0FvbGtrSW9sa2tlJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2theSwgSeKAmWxsIGRvIHRoYXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtPa2F5LCBJ4oCZbGwgZG8gdGhhdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0nigJlsbCB0ZXh0IHlvdSBpZiBhbnl0aGluZyBlbHNlIGhhcHBlbnMmcXVvdDsgJnF1b3Q7Um9sa2tKb2xra2RvbGtrWW9sa2txb2xra3NvbGtrUW9sa2tVb2xra3dvbGtrY29sa2tNb2xra2tvbGtraW9sa2tvb2xra3NvbGtrbyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJlsbCB0ZXh0IHlvdSBpZiBhbnl0aGluZyBlbHNlIGhhcHBlbnMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJ4oCZbGwgdGV4dCB5b3UgaWYgYW55dGhpbmcgZWxzZSBoYXBwZW5zJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7dW9sa2tib2xra25vbGtraW9sa2tub2xra29vbGtrWG9sa2t0JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjZzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyN1b2xra2JvbGtrbm9sa2tpb2xra25vbGtrb29sa2tYb2xra3QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7U3VyZSwga2VlcCBtZSB1cGRhdGVkJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzIzYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1N1cmUsIGtlZXAgbWUgdXBkYXRlZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMjNhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM5MyIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yM2EiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCw0OTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yM2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtTdXJlLCBrZWVwIG1lIHVwZGF0ZWQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U3VyZSwga2VlcCBtZSB1cGRhdGVkJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7U3VyZSwga2VlcCBtZSB1cGRhdGVkJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtTdXJlLCBrZWVwIG1lIHVwZGF0ZWQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSA9ICZxdW90O0hhaWxleUNoYXRFcDNfMjNhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0X2hvdXIgPSAmcXVvdDsyMzoyOSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdCA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDsyMzoyOSZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7b2ZmbGluZS10ZXh0JnF1b3Q7Jmd0O0hhaWxleSBpcyBvZmZsaW5lJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdCA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMSZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtPa2F5LCBJIG5lZWQgeW91ciBoZWxwIGFnYWluJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICR0cmFuc2l0aW9uID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkdHJhbnNpdGlvblRleHQgPSAmcXVvdDtBIGZldyBtaW51dGVzIGxhdGVyJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjM5NCIgbmFtZT0iSGFpbGV5Q2hhdEVwM18xN2IiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSw0OTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18xN2ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtCZXR0ZXIgd2FpdCBmb3Igc29tZW9uZSBlbHNlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0JldHRlciB3YWl0IGZvciBzb21lb25lIGVsc2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtCZXR0ZXIgd2FpdCBmb3Igc29tZW9uZSBlbHNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtPa2F5ICRuYW1lLCBJIHRydXN0IHlvdSZxdW90OyAmcXVvdDtLb2xra29vbGtrVm9sa2tGb2xra0lvbGtrcG9sa2tkb2xra1ZvbGtrQ29sa2t2b2xra1BvbGtrU29sa2tqb2xra2tvbGtrbG9sa2tWJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2theSAkbmFtZSwgSSB0cnVzdCB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtPa2F5ICRuYW1lLCBJIHRydXN0IHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjRzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1RoYW5rcyBhZ2FpbiBmb3IgdGhpcyZxdW90OyAmcXVvdDtab2xra3pvbGtrdG9sa2t0b2xra0lvbGtrVG9sa2tSb2xra3VvbGtrTW9sa2tGb2xra1BvbGtrd29sa2tCb2xra0NvbGtrSW9sa2t5JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhbmtzIGFnYWluIGZvciB0aGlzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhhbmtzIGFnYWluIGZvciB0aGlzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7U29sa2tob2xra3BvbGtrUm9sa2t3b2xra05vbGtrZG9sa2t1JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjRzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNTb2xra2hvbGtrcG9sa2tSb2xra3dvbGtrTm9sa2tkb2xra3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7Tm8gcHJvYmxlbSBIYWlsZXkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMThiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7Tm8gcHJvYmxlbSBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzE4YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzOTUiIG5hbWU9IkhhaWxleUNoYXRFcDNfMThiIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsNDk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMThiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7Tm8gcHJvYmxlbSBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm8gcHJvYmxlbSBIYWlsZXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtObyBwcm9ibGVtIEhhaWxleSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDttb2xra01vbGtrdm9sa2tpb2xra1hvbGtrUG9sa2tib2xra1QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I21vbGtrTW9sa2t2b2xra2lvbGtrWG9sa2tQb2xra2JvbGtrVCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJ4oCZbSBoYXBweSB0byBoZWxwJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzE5YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0nigJltIGhhcHB5IHRvIGhlbHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzE5YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzOTYiIG5hbWU9IkhhaWxleUNoYXRFcDNfMTliIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsNDk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMTliJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SeKAmW0gaGFwcHkgdG8gaGVscCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBoYXBweSB0byBoZWxwJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SeKAmW0gaGFwcHkgdG8gaGVscCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfYmlnX3NtaWxlLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9iaWdfc21pbGUud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJ4oCZbGwgdGV4dCB5b3UgaWYgYW55dGhpbmcgZWxzZSBoYXBwZW5zJnF1b3Q7ICZxdW90O3VvbGtrdG9sa2tXb2xra2pvbGtrVm9sa2tWb2xra1pvbGtrTG9sa2tUb2xra1dvbGtreW9sa2twb2xra1pvbGtrbW9sa2tJb2xra1cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbGwgdGV4dCB5b3UgaWYgYW55dGhpbmcgZWxzZSBoYXBwZW5zJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SeKAmWxsIHRleHQgeW91IGlmIGFueXRoaW5nIGVsc2UgaGFwcGVucyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O3pvbGtrS29sa2tXb2xra3pvbGtrdm9sa2t5b2xra0pvbGtrYiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjem9sa2tLb2xra1dvbGtrem9sa2t2b2xra3lvbGtrSm9sa2tiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1N1cmUsIGtlZXAgbWUgdXBkYXRlZCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yM2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtTdXJlLCBrZWVwIG1lIHVwZGF0ZWQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzIzYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzOTciIG5hbWU9IkhhaWxleUNoYXRFcDNfMl8xIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsNDk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7T2theSwgSSBuZWVkIHlvdXIgaGVscCBhZ2FpbiZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPa2F5LCBJIG5lZWQgeW91ciBoZWxwIGFnYWluJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7T2theSwgSSBuZWVkIHlvdXIgaGVscCBhZ2FpbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC42cyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9jcnlpbmcud2VicCZxdW90OyB0cnVlICZxdW90O0hhaWxleSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2NyeWluZy53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgCgombHQ7ZGl2IGlkPSZxdW90O1NvbGtrUG9sa2tBb2xra0JvbGtrRm9sa2tib2xra1ZvbGtrayZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjU29sa2tQb2xra0FvbGtrQm9sa2tGb2xra2JvbGtrVm9sa2trJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O09mIGNvdXJzZSwgd2hhdOKAmXMgZ29pbmcgb24/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O09mIGNvdXJzZSwgd2hhdOKAmXMgZ29pbmcgb24/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSIzOTgiIG5hbWU9IkhhaWxleUNoYXRFcDNfMl8yIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsNDk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl8yJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7T2YgY291cnNlLCB3aGF04oCZcyBnb2luZyBvbj8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2YgY291cnNlLCB3aGF04oCZcyBnb2luZyBvbj8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtPZiBjb3Vyc2UsIHdoYXTigJlzIGdvaW5nIG9uPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O2lmICAkaGFpbGV5X3RhbGtfMDEgPT0gdHJ1ZSZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1lvbGtrcm9sa2t6b2xra0JvbGtrSG9sa2tlb2xra1NvbGtrRyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4xcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjWW9sa2tyb2xra3pvbGtrQm9sa2tIb2xra2VvbGtrU29sa2tHJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0RpZCB5b3UgZmluZCB0aGUgZ3V5IGZyb20gYmVmb3JlPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzNhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7RGlkIHlvdSBmaW5kIHRoZSBndXkgZnJvbSBiZWZvcmU/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzNhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7V2VsbCwgdGhlcmXigJlzIHRoaXMga2luZGEgd2VpcmQgZ3V5IHdobyBrZWVwcyBzdGFyaW5nIGFjcm9zcyB0aGUgYmFyJnF1b3Q7ICZxdW90O3RvbGtrUG9sa2twb2xra0xvbGtrVm9sa2tUb2xra0hvbGtrSW9sa2ttb2xra3hvbGtrYm9sa2tHb2xra3JvbGtrcW9sa2tLb2xra2EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZWxsLCB0aGVyZeKAmXMgdGhpcyBraW5kYSB3ZWlyZCBndXkgd2hvIGtlZXBzIHN0YXJpbmcgYWNyb3NzIHRoZSBiYXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtXZWxsLCB0aGVyZeKAmXMgdGhpcyBraW5kYSB3ZWlyZCBndXkgd2hvIGtlZXBzIHN0YXJpbmcgYWNyb3NzIHRoZSBiYXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtKb2xra0NvbGtrVW9sa2t1b2xra2tvbGtrcG9sa2tIb2xra0smcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuOXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I0pvbGtrQ29sa2tVb2xra3VvbGtra29sa2twb2xra0hvbGtrSyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtXZWlyZCBob3c/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfNiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1dlaXJkIGhvdz8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfNiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iMzk5IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzJfM2EiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsNDk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl8zYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0RpZCB5b3UgZmluZCB0aGUgZ3V5IGZyb20gYmVmb3JlPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEaWQgeW91IGZpbmQgdGhlIGd1eSBmcm9tIGJlZm9yZT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtEaWQgeW91IGZpbmQgdGhlIGd1eSBmcm9tIGJlZm9yZT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMnMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0FjdHVhbGx5LCB5ZXMsIGJ1dCBoZSB3YXMgYWxyZWFkeSB3aXRoIGFub3RoZXIgZ2lybCBpbiBhIGNvcm5lciZxdW90OyAmcXVvdDtzb2xra3FvbGtrZG9sa2tjb2xra3dvbGtrbG9sa2tib2xra2NvbGtrSm9sa2tvb2xra2VvbGtrSW9sa2trb2xra0hvbGtrV29sa2tBJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QWN0dWFsbHksIHllcywgYnV0IGhlIHdhcyBhbHJlYWR5IHdpdGggYW5vdGhlciBnaXJsIGluIGEgY29ybmVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QWN0dWFsbHksIHllcywgYnV0IGhlIHdhcyBhbHJlYWR5IHdpdGggYW5vdGhlciBnaXJsIGluIGEgY29ybmVyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7U28gSSB3ZW50IGJhY2sgdG8gdGhlIGJhciZxdW90OyAmcXVvdDt5b2xra0dvbGtrWm9sa2tqb2xra3FvbGtrc29sa2t3b2xra1lvbGtrdW9sa2tjb2xra0ZvbGtrbm9sa2tEb2xra25vbGtrb29sa2tMJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U28gSSB3ZW50IGJhY2sgdG8gdGhlIGJhciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1NvIEkgd2VudCBiYWNrIHRvIHRoZSBiYXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtxb2xra0RvbGtreG9sa2tob2xra05vbGtrS29sa2tkb2xra1kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuNHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3FvbGtrRG9sa2t4b2xra2hvbGtrTm9sa2tLb2xra2RvbGtrWSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtPaCwgSeKAmW0gc29ycnkgSGFpbGV5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfNGEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtPaCwgSeKAmW0gc29ycnkgSGFpbGV5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzRhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQwMCIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzRhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDQ5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfNGEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtPaCwgSeKAmW0gc29ycnkgSGFpbGV5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09oLCBJ4oCZbSBzb3JyeSBIYWlsZXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtPaCwgSeKAmW0gc29ycnkgSGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1hvbGtrdG9sa2tPb2xra1VvbGtrc29sa2tWb2xra1FvbGtrVSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjWG9sa2t0b2xra09vbGtrVW9sa2tzb2xra1ZvbGtrUW9sa2tVJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0Fub3RoZXIgZ3V5IHdpbGwgY29tZSBhbG9uZywgZG9u4oCZdCB3b3JyeSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzVhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QW5vdGhlciBndXkgd2lsbCBjb21lIGFsb25nLCBkb27igJl0IHdvcnJ5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzVhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQwMSIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzVhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsNTEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl81YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0Fub3RoZXIgZ3V5IHdpbGwgY29tZSBhbG9uZywgZG9u4oCZdCB3b3JyeSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbm90aGVyIGd1eSB3aWxsIGNvbWUgYWxvbmcsIGRvbuKAmXQgd29ycnkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtBbm90aGVyIGd1eSB3aWxsIGNvbWUgYWxvbmcsIGRvbuKAmXQgd29ycnkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1dlbGwsIHRvIGJlIGhvbmVzdC4uLiZxdW90OyAmcXVvdDt6b2xra01vbGtrZm9sa2twb2xra3VvbGtrT29sa2tPb2xra0NvbGtrUm9sa2tOb2xra2JvbGtrR29sa2tib2xra2RvbGtrcW9sa2tQJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2VsbCwgdG8gYmUgaG9uZXN0Li4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7V2VsbCwgdG8gYmUgaG9uZXN0Li4uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7VGhlcmXigJlzIHRoaXMga2luZGEgd2VpcmQgZ3V5IHdobyBrZWVwcyBzdGFyaW5nIGFjcm9zcyB0aGUgYmFyJnF1b3Q7ICZxdW90O2FvbGtrVG9sa2tHb2xra29vbGtrWm9sa2tHb2xra2xvbGtrSG9sa2tVb2xra1JvbGtrem9sa2tnb2xra3ZvbGtram9sa2tKb2xra1cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGVyZeKAmXMgdGhpcyBraW5kYSB3ZWlyZCBndXkgd2hvIGtlZXBzIHN0YXJpbmcgYWNyb3NzIHRoZSBiYXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGVyZeKAmXMgdGhpcyBraW5kYSB3ZWlyZCBndXkgd2hvIGtlZXBzIHN0YXJpbmcgYWNyb3NzIHRoZSBiYXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDt0b2xra09vbGtrYm9sa2tub2xra2VvbGtrb29sa2t1b2xra2smcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuMHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3RvbGtrT29sa2tib2xra25vbGtrZW9sa2tvb2xra3VvbGtrayZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtXZWlyZCBob3c/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfNiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1dlaXJkIGhvdz8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfNiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0MDIiIG5hbWU9IkhhaWxleUNoYXRFcDNfMl82IiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsNTEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl82JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7V2VpcmQgaG93PyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZWlyZCBob3c/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7V2VpcmQgaG93PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC45cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSBkb27igJl0IGtub3csIGhl4oCZcyBnaXZpbmcgbWUgdGhpcyBpbnRlbnNlIGxvb2smcXVvdDsgJnF1b3Q7dG9sa2t1b2xra05vbGtrb29sa2tTb2xra3VvbGtrbW9sa2twb2xra0lvbGtrcG9sa2tZb2xra25vbGtram9sa2tOb2xra0lvbGtrbiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZG9u4oCZdCBrbm93LCBoZeKAmXMgZ2l2aW5nIG1lIHRoaXMgaW50ZW5zZSBsb29rJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSBkb27igJl0IGtub3csIGhl4oCZcyBnaXZpbmcgbWUgdGhpcyBpbnRlbnNlIGxvb2smcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtQbHVzLCBoZSBzZWVtcyBraW5kYSBvbGRlciZxdW90OyAmcXVvdDtFb2xra1dvbGtrV29sa2tQb2xra0xvbGtrem9sa2tab2xra3NvbGtrRm9sa2tyb2xra0tvbGtrUG9sa2tJb2xra0RvbGtrc29sa2tNJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7UGx1cywgaGUgc2VlbXMga2luZGEgb2xkZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtQbHVzLCBoZSBzZWVtcyBraW5kYSBvbGRlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1FvbGtrWW9sa2tsb2xra1hvbGtrZW9sa2tKb2xra1RvbGtrcyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi45cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjUW9sa2tZb2xra2xvbGtrWG9sa2tlb2xra0pvbGtrVG9sa2tzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1NlbmQgbWUgYSBwaWN0dXJlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfNyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1NlbmQgbWUgYSBwaWN0dXJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDAzIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzJfNyIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDUxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfNyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1NlbmQgbWUgYSBwaWN0dXJlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1NlbmQgbWUgYSBwaWN0dXJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7U2VuZCBtZSBhIHBpY3R1cmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0J1dC4uLiBoZeKAmXMgbGl0ZXJhbGx5IHN0YXJpbmcgcmlnaHQgdGhpcyB3YXkmcXVvdDsgJnF1b3Q7bW9sa2tFb2xra0lvbGtrRW9sa2tTb2xra1FvbGtrWW9sa2ttb2xra1RvbGtrZ29sa2tmb2xra0JvbGtrU29sa2tjb2xra2dvbGtrTiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dC4uLiBoZeKAmXMgbGl0ZXJhbGx5IHN0YXJpbmcgcmlnaHQgdGhpcyB3YXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtCdXQuLi4gaGXigJlzIGxpdGVyYWxseSBzdGFyaW5nIHJpZ2h0IHRoaXMgd2F5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SeKAmW0gcHJldGVuZGluZyBub3QgdG8gbm90aWNlJnF1b3Q7ICZxdW90O2FvbGtrRm9sa2tqb2xra2pvbGtrT29sa2tIb2xra3JvbGtrb29sa2tLb2xra05vbGtrYm9sa2tNb2xra0xvbGtrem9sa2ttb2xra2wmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBwcmV0ZW5kaW5nIG5vdCB0byBub3RpY2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJ4oCZbSBwcmV0ZW5kaW5nIG5vdCB0byBub3RpY2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi43cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJdOKAmXMgcmVhbGx5IG1ha2luZyBtZSB1bmNvbWZvcnRhYmxlJnF1b3Q7ICZxdW90O25vbGtrUW9sa2t5b2xra0lvbGtrUG9sa2tFb2xra3VvbGtra29sa2tSb2xra3hvbGtrRW9sa2tYb2xra0RvbGtrQm9sa2t6b2xra0omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdOKAmXMgcmVhbGx5IG1ha2luZyBtZSB1bmNvbWZvcnRhYmxlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SXTigJlzIHJlYWxseSBtYWtpbmcgbWUgdW5jb21mb3J0YWJsZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O0pvbGtrem9sa2tEb2xra1FvbGtrdG9sa2t3b2xra0ZvbGtrYSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy44cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjSm9sa2t6b2xra0RvbGtrUW9sa2t0b2xra3dvbGtrRm9sa2thJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0Rlc2NyaWJlIGhpbSB0byBtZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzgmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtEZXNjcmliZSBoaW0gdG8gbWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfOCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0MDQiIG5hbWU9IkhhaWxleUNoYXRFcDNfMl84IiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsNTEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl84JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7RGVzY3JpYmUgaGltIHRvIG1lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0Rlc2NyaWJlIGhpbSB0byBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0Rlc2NyaWJlIGhpbSB0byBtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7V2VsbCwgaGUgbG9va3MgbGlrZSBhbiBvbGRlciBtYW4sIG92ZXJ3ZWlnaHQsIEkgZG9u4oCZdCBrbm93JnF1b3Q7ICZxdW90O2hvbGtrdG9sa2tEb2xra1FvbGtrRm9sa2tXb2xra09vbGtrRm9sa2tMb2xra0pvbGtrRm9sa2tZb2xra3NvbGtrY29sa2twb2xra2EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZWxsLCBoZSBsb29rcyBsaWtlIGFuIG9sZGVyIG1hbiwgb3ZlcndlaWdodCwgSSBkb27igJl0IGtub3cmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtXZWxsLCBoZSBsb29rcyBsaWtlIGFuIG9sZGVyIG1hbiwgb3ZlcndlaWdodCwgSSBkb27igJl0IGtub3cmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjVzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIGZlZWwgbGlrZSBoZSBoYXNu4oCZdCB0YWtlbiBoaXMgZXllcyBvZmYgbWUgZm9yIHRoZSBsYXN0IDMgbWludXRlcyZxdW90OyAmcXVvdDtvb2xra2tvbGtrbW9sa2txb2xra01vbGtraW9sa2tPb2xra25vbGtrSm9sa2tqb2xra09vbGtrSW9sa2tab2xra1VvbGtrbm9sa2tsJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBmZWVsIGxpa2UgaGUgaGFzbuKAmXQgdGFrZW4gaGlzIGV5ZXMgb2ZmIG1lIGZvciB0aGUgbGFzdCAzIG1pbnV0ZXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIGZlZWwgbGlrZSBoZSBoYXNu4oCZdCB0YWtlbiBoaXMgZXllcyBvZmYgbWUgZm9yIHRoZSBsYXN0IDMgbWludXRlcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O2dvbGtrQ29sa2t1b2xra1VvbGtrV29sa2tCb2xra1VvbGtrVSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC4xcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjZ29sa2tDb2xra3VvbGtrVW9sa2tXb2xra0JvbGtrVW9sa2tVJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0xvb2sgSGFpbGV5LCBjYWxtIGRvd24mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMl85JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7TG9vayBIYWlsZXksIGNhbG0gZG93biZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMl85JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQwNSIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzkiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCw1MTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtMb29rIEhhaWxleSwgY2FsbSBkb3duJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0xvb2sgSGFpbGV5LCBjYWxtIGRvd24mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtMb29rIEhhaWxleSwgY2FsbSBkb3duJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1NvbGtrZm9sa2tYb2xra0pvbGtrZm9sa2tab2xra2FvbGtrcSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjU29sa2tmb2xra1hvbGtrSm9sa2tmb2xra1pvbGtrYW9sa2txJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O01heWJlIHlvdeKAmXJlIGltYWdpbmluZyBpdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzEwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7TWF5YmUgeW914oCZcmUgaW1hZ2luaW5nIGl0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzEwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQwNiIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzEwIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsNTEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl8xMCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O01heWJlIHlvdeKAmXJlIGltYWdpbmluZyBpdCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtNYXliZSB5b3XigJlyZSBpbWFnaW5pbmcgaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtNYXliZSB5b3XigJlyZSBpbWFnaW5pbmcgaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7eW9sa2tob2xra3VvbGtrcm9sa2tVb2xra3pvbGtrYW9sa2t5JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyN5b2xra2hvbGtrdW9sa2tyb2xra1VvbGtrem9sa2thb2xra3kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBtZWFuLCB5b3XigJlyZSBub3QgZXZlbiBsb29raW5nIGF0IGhpbSwgcmlnaHQ/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMTEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIG1lYW4sIHlvdeKAmXJlIG5vdCBldmVuIGxvb2tpbmcgYXQgaGltLCByaWdodD8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMTEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDA3IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzJfMTEiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCw1MTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzExJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBtZWFuLCB5b3XigJlyZSBub3QgZXZlbiBsb29raW5nIGF0IGhpbSwgcmlnaHQ/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgbWVhbiwgeW914oCZcmUgbm90IGV2ZW4gbG9va2luZyBhdCBoaW0sIHJpZ2h0PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgbWVhbiwgeW914oCZcmUgbm90IGV2ZW4gbG9va2luZyBhdCBoaW0sIHJpZ2h0PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7UmlnaHQsIEkgaGF2ZW7igJl0IGxvb2tlZCBpbiBoaXMgZGlyZWN0aW9uIHNpbmNlIEkgbm90aWNlZCZxdW90OyAmcXVvdDtEb2xra05vbGtrbG9sa2t5b2xra2RvbGtrbW9sa2tWb2xra3FvbGtrZW9sa2tLb2xra1NvbGtra29sa2t1b2xra1ZvbGtrUW9sa2tUJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7UmlnaHQsIEkgaGF2ZW7igJl0IGxvb2tlZCBpbiBoaXMgZGlyZWN0aW9uIHNpbmNlIEkgbm90aWNlZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1JpZ2h0LCBJIGhhdmVu4oCZdCBsb29rZWQgaW4gaGlzIGRpcmVjdGlvbiBzaW5jZSBJIG5vdGljZWQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDt3b2xra0tvbGtrWG9sa2tPb2xra1lvbGtrZG9sa2tab2xra20mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuOXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3dvbGtrS29sa2tYb2xra09vbGtrWW9sa2tkb2xra1pvbGtrbSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGVuIGl04oCZcyBpbXBvc3NpYmxlIGZvciB5b3UgdG8ga25vdyBpZiBoZeKAmXMgc3RhcmluZyBpZiB5b3XigJlyZSBub3QgbG9va2luZyBhdCBoaW0mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMl8xMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoZW4gaXTigJlzIGltcG9zc2libGUgZm9yIHlvdSB0byBrbm93IGlmIGhl4oCZcyBzdGFyaW5nIGlmIHlvdeKAmXJlIG5vdCBsb29raW5nIGF0IGhpbSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMl8xMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0MDgiIG5hbWU9IkhhaWxleUNoYXRFcDNfMl8xMiIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDUxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMTImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGVuIGl04oCZcyBpbXBvc3NpYmxlIGZvciB5b3UgdG8ga25vdyBpZiBoZeKAmXMgc3RhcmluZyBpZiB5b3XigJlyZSBub3QgbG9va2luZyBhdCBoaW0mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhlbiBpdOKAmXMgaW1wb3NzaWJsZSBmb3IgeW91IHRvIGtub3cgaWYgaGXigJlzIHN0YXJpbmcgaWYgeW914oCZcmUgbm90IGxvb2tpbmcgYXQgaGltJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhlbiBpdOKAmXMgaW1wb3NzaWJsZSBmb3IgeW91IHRvIGtub3cgaWYgaGXigJlzIHN0YXJpbmcgaWYgeW914oCZcmUgbm90IGxvb2tpbmcgYXQgaGltJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3VvbGtrYm9sa2tKb2xra0pvbGtrWW9sa2tQb2xra3lvbGtrTiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjdW9sa2tib2xra0pvbGtrSm9sa2tZb2xra1BvbGtreW9sa2tOJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0FuZCBldmVuIGlmIGhlIGlzLCBpdOKAmXMgbm9ybWFsJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMTMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtBbmQgZXZlbiBpZiBoZSBpcywgaXTigJlzIG5vcm1hbCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMl8xMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0MDkiIG5hbWU9IkhhaWxleUNoYXRFcDNfMl8xMyIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCw1MTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzEzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7QW5kIGV2ZW4gaWYgaGUgaXMsIGl04oCZcyBub3JtYWwmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5kIGV2ZW4gaWYgaGUgaXMsIGl04oCZcyBub3JtYWwmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtBbmQgZXZlbiBpZiBoZSBpcywgaXTigJlzIG5vcm1hbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt4b2xra2VvbGtrRW9sa2t1b2xra3ZvbGtrc29sa2tJb2xra2QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3hvbGtrZW9sa2tFb2xra3VvbGtrdm9sa2tzb2xra0lvbGtrZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3XigJlyZSBpbiBhIG5pZ2h0Y2x1YiwgYW5kIGd1eXMgYXNzdW1lIGdpcmxzIGFyZSB0aGVyZSBmb3IgdGhlIHNhbWUgcmVhc29uIHRoZXkgYXJlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMTQmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3XigJlyZSBpbiBhIG5pZ2h0Y2x1YiwgYW5kIGd1eXMgYXNzdW1lIGdpcmxzIGFyZSB0aGVyZSBmb3IgdGhlIHNhbWUgcmVhc29uIHRoZXkgYXJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzE0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQxMCIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzE0IiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDUxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMTQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZb3XigJlyZSBpbiBhIG5pZ2h0Y2x1YiwgYW5kIGd1eXMgYXNzdW1lIGdpcmxzIGFyZSB0aGVyZSBmb3IgdGhlIHNhbWUgcmVhc29uIHRoZXkgYXJlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdeKAmXJlIGluIGEgbmlnaHRjbHViLCBhbmQgZ3V5cyBhc3N1bWUgZ2lybHMgYXJlIHRoZXJlIGZvciB0aGUgc2FtZSByZWFzb24gdGhleSBhcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZb3XigJlyZSBpbiBhIG5pZ2h0Y2x1YiwgYW5kIGd1eXMgYXNzdW1lIGdpcmxzIGFyZSB0aGVyZSBmb3IgdGhlIHNhbWUgcmVhc29uIHRoZXkgYXJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIHN1cG9zc2UgeW914oCZcmUgcmlnaHQuLi4mcXVvdDsgJnF1b3Q7VW9sa2tYb2xra1ZvbGtrQ29sa2trb2xra0tvbGtrUG9sa2tzb2xra0pvbGtrbG9sa2tIb2xra2NvbGtrVG9sa2twb2xra3ZvbGtrUSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgc3Vwb3NzZSB5b3XigJlyZSByaWdodC4uLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgc3Vwb3NzZSB5b3XigJlyZSByaWdodC4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O2JvbGtrcm9sa2tzb2xra0xvbGtrWW9sa2tqb2xra1hvbGtrYSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjYm9sa2tyb2xra3NvbGtrTG9sa2tZb2xra2pvbGtrWG9sa2thJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0xvb2ssIHRyeSB0byB0YWtlIGEgcGljdHVyZSB0byBzaG93IG1lIHdoYXQgaGUgbG9va3MgbGlrZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzE1JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7TG9vaywgdHJ5IHRvIHRha2UgYSBwaWN0dXJlIHRvIHNob3cgbWUgd2hhdCBoZSBsb29rcyBsaWtlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzE1JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQxMSIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzE1IiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsNTIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl8xNSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0xvb2ssIHRyeSB0byB0YWtlIGEgcGljdHVyZSB0byBzaG93IG1lIHdoYXQgaGUgbG9va3MgbGlrZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtMb29rLCB0cnkgdG8gdGFrZSBhIHBpY3R1cmUgdG8gc2hvdyBtZSB3aGF0IGhlIGxvb2tzIGxpa2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtMb29rLCB0cnkgdG8gdGFrZSBhIHBpY3R1cmUgdG8gc2hvdyBtZSB3aGF0IGhlIGxvb2tzIGxpa2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7R29sa2tGb2xra0ZvbGtrUW9sa2tzb2xra25vbGtrTW9sa2tDJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNHb2xra0ZvbGtrRm9sa2tRb2xra3NvbGtrbm9sa2tNb2xra0MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SnVzdCBkbyBpdCBkaXNjcmVldGx5LCBhbmQgaXTigJlsbCBiZSBmaW5lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMTYmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtKdXN0IGRvIGl0IGRpc2NyZWV0bHksIGFuZCBpdOKAmWxsIGJlIGZpbmUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMTYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDEyIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzJfMTYiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSw1MjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzE2JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SnVzdCBkbyBpdCBkaXNjcmVldGx5LCBhbmQgaXTigJlsbCBiZSBmaW5lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0p1c3QgZG8gaXQgZGlzY3JlZXRseSwgYW5kIGl04oCZbGwgYmUgZmluZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0p1c3QgZG8gaXQgZGlzY3JlZXRseSwgYW5kIGl04oCZbGwgYmUgZmluZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7QnV0IHdoYXQgaWYgaGUgbm90aWNlcz8mcXVvdDsgJnF1b3Q7RG9sa2tjb2xra3hvbGtrR29sa2tFb2xra3dvbGtrQm9sa2tVb2xra3NvbGtrcm9sa2tob2xra2pvbGtrYm9sa2tXb2xra3hvbGtrTSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCB3aGF0IGlmIGhlIG5vdGljZXM/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QnV0IHdoYXQgaWYgaGUgbm90aWNlcz8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtpb2xra0pvbGtrSG9sa2tpb2xra0FvbGtrbG9sa2trb2xra0QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuNHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I2lvbGtrSm9sa2tIb2xra2lvbGtrQW9sa2tsb2xra2tvbGtrRCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGVuIGhl4oCZbGwgdGhpbmsgeW914oCZcmUgc2VuZGluZyBhIHBpY3R1cmUgb2Ygc29tZSBob3QgZ3V5IHlvdSBzYXcgdG8gYSBmcmllbmQgb3Igc29tZXRoaW5nJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMTcmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaGVuIGhl4oCZbGwgdGhpbmsgeW914oCZcmUgc2VuZGluZyBhIHBpY3R1cmUgb2Ygc29tZSBob3QgZ3V5IHlvdSBzYXcgdG8gYSBmcmllbmQgb3Igc29tZXRoaW5nJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzE3JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQxMyIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzE3IiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsNTIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl8xNyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RoZW4gaGXigJlsbCB0aGluayB5b3XigJlyZSBzZW5kaW5nIGEgcGljdHVyZSBvZiBzb21lIGhvdCBndXkgeW91IHNhdyB0byBhIGZyaWVuZCBvciBzb21ldGhpbmcmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhlbiBoZeKAmWxsIHRoaW5rIHlvdeKAmXJlIHNlbmRpbmcgYSBwaWN0dXJlIG9mIHNvbWUgaG90IGd1eSB5b3Ugc2F3IHRvIGEgZnJpZW5kIG9yIHNvbWV0aGluZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RoZW4gaGXigJlsbCB0aGluayB5b3XigJlyZSBzZW5kaW5nIGEgcGljdHVyZSBvZiBzb21lIGhvdCBndXkgeW91IHNhdyB0byBhIGZyaWVuZCBvciBzb21ldGhpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgZG9u4oCZdCBrbm93JnF1b3Q7ICZxdW90O1hvbGtrVm9sa2tLb2xra05vbGtrcm9sa2t5b2xra0RvbGtrT29sa2t2b2xra3BvbGtrY29sa2t0b2xra3pvbGtrSG9sa2tIb2xra0gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGRvbuKAmXQga25vdyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgZG9u4oCZdCBrbm93JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4ycyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SeKAmWxsIHRyeS4uLiZxdW90OyAmcXVvdDtob2xra3VvbGtrRm9sa2tRb2xra2ZvbGtrY29sa2tub2xra2VvbGtrZG9sa2tDb2xra3ZvbGtrdG9sa2tWb2xra0RvbGtrWm9sa2t4JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmWxsIHRyeS4uLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0nigJlsbCB0cnkuLi4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi41cyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9pbWcgJnF1b3Q7YXNzZXRzL2ltZy9lcDMvaGFpbGV5X3Bob3RvXzUud2VicCZxdW90OyB0cnVlICZxdW90O1BvbGtrcW9sa2t6b2xra1ZvbGtrbm9sa2tJb2xra1RvbGtrWm9sa2tUb2xra0VvbGtrbW9sa2tIb2xra0RvbGtrY29sa2tab2xra1gmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDIsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2VwMy9oYWlsZXlfcGhvdG9fNS53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkcGhvdG9zLnB1c2goJnF1b3Q7YXNzZXRzL2ltZy9lcDMvaGFpbGV5X3Bob3RvXzUud2VicCZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy41cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtXaGF0IGRvIHlvdSB0aGluaz8mcXVvdDsgJnF1b3Q7YW9sa2tDb2xra2ZvbGtra29sa2tZb2xra01vbGtrbG9sa2tXb2xra1FvbGtrQW9sa2tub2xra0xvbGtrTm9sa2tlb2xra2ZvbGtrcyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1doYXQgZG8geW91IHRoaW5rPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1doYXQgZG8geW91IHRoaW5rPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1hvbGtrYm9sa2t5b2xra3pvbGtrSm9sa2tsb2xra2pvbGtrayZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC41cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjWG9sa2tib2xra3lvbGtrem9sa2tKb2xra2xvbGtram9sa2trJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgdGhpbmsgeW91IHNob3VsZCBnaXZlIGhpbSBhIGNoYW5jZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzE4YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgdGhpbmsgeW91IHNob3VsZCBnaXZlIGhpbSBhIGNoYW5jZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMl8xOGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I1hvbGtrYm9sa2t5b2xra3pvbGtrSm9sa2tsb2xra2pvbGtrayZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtPZiBjb3Vyc2Ugbm90JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMThiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7T2YgY291cnNlIG5vdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMl8xOGImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDE0IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzJfMThhIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsNTIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl8xOGEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIHRoaW5rIHlvdSBzaG91bGQgZ2l2ZSBoaW0gYSBjaGFuY2UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB0aGluayB5b3Ugc2hvdWxkIGdpdmUgaGltIGEgY2hhbmNlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSB0aGluayB5b3Ugc2hvdWxkIGdpdmUgaGltIGEgY2hhbmNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRoYWlsZXlfdWIgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X25vdGVzLnB1c2goJnF1b3Q7SGFpbGV5IHdlbnQgdG8gYSBuaWdodGNsdWIsIGFuZCBJIHJlY29tbWVuZGVkIHNoZSBoYXZlIHNleCB3aXRoIGFuIHVnbHkgYmFzdGFyZC4mcXVvdDspJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtUb2xra09vbGtrZG9sa2tSb2xra2ZvbGtrbG9sa2tyb2xra0kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I1RvbGtrT29sa2tkb2xra1JvbGtrZm9sa2tsb2xra3JvbGtrSSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtXaGF0IHlvdSBuZWVkIGlzIGV4cGVyaWVuY2UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMl8xOWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXaGF0IHlvdSBuZWVkIGlzIGV4cGVyaWVuY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMTlhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQxNSIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzE4YiIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDUyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMThiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7T2YgY291cnNlIG5vdCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPZiBjb3Vyc2Ugbm90JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7T2YgY291cnNlIG5vdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkaGFpbGV5X3ViID0gZmFsc2UmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfbm90ZXMucHVzaCgmcXVvdDtIYWlsZXkgd2VudCB0byBhIG5pZ2h0Y2x1YiwgYW5kIEkgdG9sZCBoZXIgbm90IHRvIGdldCBpbnZvbHZlZCB3aXRoIGFuIHVnbHkgYmFzdGFyZC4mcXVvdDspJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt1b2xra09vbGtrRG9sa2tUb2xra2tvbGtrZW9sa2tOb2xra2ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3VvbGtrT29sa2tEb2xra1RvbGtra29sa2tlb2xra05vbGtrYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3XigJlyZSB3YXkgdG9vIGJlYXV0aWZ1bCB0byBlbmQgdXAgd2l0aCBhIGd1eSBsaWtlIHRoYXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMl8xOWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3XigJlyZSB3YXkgdG9vIGJlYXV0aWZ1bCB0byBlbmQgdXAgd2l0aCBhIGd1eSBsaWtlIHRoYXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMTliJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQxNiIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzE5YSIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDUyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMTlhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7V2hhdCB5b3UgbmVlZCBpcyBleHBlcmllbmNlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1doYXQgeW91IG5lZWQgaXMgZXhwZXJpZW5jZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1doYXQgeW91IG5lZWQgaXMgZXhwZXJpZW5jZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtzb2xra2tvbGtrT29sa2tkb2xra0pvbGtrT29sa2t6b2xra28mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3NvbGtra29sa2tPb2xra2RvbGtrSm9sa2tPb2xra3pvbGtrbyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIHRoaW5rIHRoaXMgaXMgYSBnb29kIG1vbWVudCBmb3IgdGhhdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzIwYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgdGhpbmsgdGhpcyBpcyBhIGdvb2QgbW9tZW50IGZvciB0aGF0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzIwYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0MTciIG5hbWU9IkhhaWxleUNoYXRFcDNfMl8yMGEiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCw1MjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzIwYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgdGhpbmsgdGhpcyBpcyBhIGdvb2QgbW9tZW50IGZvciB0aGF0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgdGhpbmsgdGhpcyBpcyBhIGdvb2QgbW9tZW50IGZvciB0aGF0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSB0aGluayB0aGlzIGlzIGEgZ29vZCBtb21lbnQgZm9yIHRoYXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0FyZSB5b3Ugc3VyZT8mcXVvdDsgJnF1b3Q7cG9sa2tXb2xra1VvbGtrUm9sa2tEb2xra3BvbGtrUm9sa2t2b2xra2RvbGtrbW9sa2tNb2xra1NvbGtrVG9sa2tHb2xra1RvbGtrWiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FyZSB5b3Ugc3VyZT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtBcmUgeW91IHN1cmU/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7SG9sa2tzb2xra2tvbGtrZ29sa2tqb2xra2RvbGtrQm9sa2tvJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjJzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNIb2xra3NvbGtra29sa2tnb2xra2pvbGtrZG9sa2tCb2xra28mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WWVhaCwgaXTigJlzIG5vdCB0aGUgdGltZSB0byBiZSBwaWNreSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzIxYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1llYWgsIGl04oCZcyBub3QgdGhlIHRpbWUgdG8gYmUgcGlja3kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjFhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQxOCIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzIxYSIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDUyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjFhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WWVhaCwgaXTigJlzIG5vdCB0aGUgdGltZSB0byBiZSBwaWNreSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFoLCBpdOKAmXMgbm90IHRoZSB0aW1lIHRvIGJlIHBpY2t5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WWVhaCwgaXTigJlzIG5vdCB0aGUgdGltZSB0byBiZSBwaWNreSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtRb2xra1FvbGtrc29sa2tmb2xra1ZvbGtraW9sa2tRb2xra1YmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I1FvbGtrUW9sa2tzb2xra2ZvbGtrVm9sa2tpb2xra1FvbGtrViZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGlzIGlzIHlvdXIgZmlyc3Qgc3RlcCB0byBnYWluaW5nIG1vcmUgY29uZmlkZW5jZSBpbiB5b3Vyc2VsZiZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzIyYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoaXMgaXMgeW91ciBmaXJzdCBzdGVwIHRvIGdhaW5pbmcgbW9yZSBjb25maWRlbmNlIGluIHlvdXJzZWxmJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzIyYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0MTkiIG5hbWU9IkhhaWxleUNoYXRFcDNfMl8yMmEiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsNTIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl8yMmEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGlzIGlzIHlvdXIgZmlyc3Qgc3RlcCB0byBnYWluaW5nIG1vcmUgY29uZmlkZW5jZSBpbiB5b3Vyc2VsZiZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGlzIGlzIHlvdXIgZmlyc3Qgc3RlcCB0byBnYWluaW5nIG1vcmUgY29uZmlkZW5jZSBpbiB5b3Vyc2VsZiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RoaXMgaXMgeW91ciBmaXJzdCBzdGVwIHRvIGdhaW5pbmcgbW9yZSBjb25maWRlbmNlIGluIHlvdXJzZWxmJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjFzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtPa2F5Li4uJnF1b3Q7ICZxdW90O25vbGtrVm9sa2tpb2xra0xvbGtrQW9sa2tzb2xra2hvbGtrdm9sa2tXb2xra3RvbGtrS29sa2tyb2xra3ZvbGtrd29sa2ttb2xra2UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPa2F5Li4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7T2theS4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0J1dCB3aGF0IGRvIEkgZG8/JnF1b3Q7ICZxdW90O2dvbGtrQW9sa2tpb2xra1NvbGtrVm9sa2tSb2xra2dvbGtrT29sa2tmb2xra1dvbGtrTm9sa2tJb2xra2NvbGtram9sa2ttb2xra2UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgd2hhdCBkbyBJIGRvPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0J1dCB3aGF0IGRvIEkgZG8/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SnVzdCBnbyB1cCBhbmQgdGFsayB0byBoaW0/JnF1b3Q7ICZxdW90O2dvbGtrdG9sa2tsb2xra0dvbGtrV29sa2tmb2xra2pvbGtrTW9sa2thb2xra3VvbGtrRm9sa2tQb2xra2lvbGtrUm9sa2tPb2xra3UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtKdXN0IGdvIHVwIGFuZCB0YWxrIHRvIGhpbT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtKdXN0IGdvIHVwIGFuZCB0YWxrIHRvIGhpbT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtjb2xra2NvbGtrdG9sa2tmb2xra1pvbGtra29sa2tqb2xra2kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuNHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I2NvbGtrY29sa2t0b2xra2ZvbGtrWm9sa2trb2xra2pvbGtraSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZZWFoLCBJIHRoaW5rIGV2ZW4gYSBzbWlsZSB3b3VsZCBiZSBlbm91Z2gmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMl8yM2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZZWFoLCBJIHRoaW5rIGV2ZW4gYSBzbWlsZSB3b3VsZCBiZSBlbm91Z2gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjNhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQyMCIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzIzYSIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSw1MjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzIzYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1llYWgsIEkgdGhpbmsgZXZlbiBhIHNtaWxlIHdvdWxkIGJlIGVub3VnaCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFoLCBJIHRoaW5rIGV2ZW4gYSBzbWlsZSB3b3VsZCBiZSBlbm91Z2gmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZZWFoLCBJIHRoaW5rIGV2ZW4gYSBzbWlsZSB3b3VsZCBiZSBlbm91Z2gmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7aW9sa2tHb2xra0pvbGtrRW9sa2tUb2xra3FvbGtrUW9sa2tjJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNpb2xra0dvbGtrSm9sa2tFb2xra1RvbGtrcW9sa2tRb2xra2MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QnV0IGl0IHdvdWxkbuKAmXQgaHVydCB0byBhcHByb2FjaCBoaW0gdG8gc2VhbCB0aGUgZGVhbCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzI0YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0J1dCBpdCB3b3VsZG7igJl0IGh1cnQgdG8gYXBwcm9hY2ggaGltIHRvIHNlYWwgdGhlIGRlYWwmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjRhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQyMSIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzI0YSIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDUzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjRhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7QnV0IGl0IHdvdWxkbuKAmXQgaHVydCB0byBhcHByb2FjaCBoaW0gdG8gc2VhbCB0aGUgZGVhbCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgaXQgd291bGRu4oCZdCBodXJ0IHRvIGFwcHJvYWNoIGhpbSB0byBzZWFsIHRoZSBkZWFsJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QnV0IGl0IHdvdWxkbuKAmXQgaHVydCB0byBhcHByb2FjaCBoaW0gdG8gc2VhbCB0aGUgZGVhbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7V2hhdOKAmXMgdGhlIOKAnGRlYWzigJ0/JnF1b3Q7ICZxdW90O0hvbGtrbm9sa2tLb2xra2dvbGtrUW9sa2tlb2xra3RvbGtraW9sa2tMb2xra3VvbGtrV29sa2tSb2xra1FvbGtrbG9sa2t4b2xra08mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXaGF04oCZcyB0aGUg4oCcZGVhbOKAnT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtXaGF04oCZcyB0aGUg4oCcZGVhbOKAnT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4ycyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIGp1c3Qgd2FudCB0byBtYWtlIHN1cmUgSeKAmW0gbm90IG1pc3VuZGVyc3RhbmRpbmcgYW55dGhpbmcmcXVvdDsgJnF1b3Q7d29sa2tWb2xra0xvbGtrZ29sa2tQb2xra2VvbGtraG9sa2tFb2xra1VvbGtrRG9sa2tkb2xra09vbGtrV29sa2tCb2xra0VvbGtrQiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kganVzdCB3YW50IHRvIG1ha2Ugc3VyZSBJ4oCZbSBub3QgbWlzdW5kZXJzdGFuZGluZyBhbnl0aGluZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kganVzdCB3YW50IHRvIG1ha2Ugc3VyZSBJ4oCZbSBub3QgbWlzdW5kZXJzdGFuZGluZyBhbnl0aGluZyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1FvbGtrUW9sa2tIb2xra2hvbGtrb29sa2tsb2xra1dvbGtrUCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi44cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjUW9sa2tRb2xra0hvbGtraG9sa2tvb2xra2xvbGtrV29sa2tQJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1dlbGwsIEkgbWVhbiBoYXZpbmcgc2V4IHdpdGggaGltJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjVhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7V2VsbCwgSSBtZWFuIGhhdmluZyBzZXggd2l0aCBoaW0mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjVhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQyMiIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzI1YSIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDUzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjVhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7V2VsbCwgSSBtZWFuIGhhdmluZyBzZXggd2l0aCBoaW0mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2VsbCwgSSBtZWFuIGhhdmluZyBzZXggd2l0aCBoaW0mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtXZWxsLCBJIG1lYW4gaGF2aW5nIHNleCB3aXRoIGhpbSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbm9fd29yZHMud2VicCZxdW90OyB0cnVlICZxdW90O0hhaWxleSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX25vX3dvcmRzLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4xcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7U2V4JnF1b3Q7ICZxdW90O2JvbGtrb29sa2tmb2xra3BvbGtrcG9sa2tsb2xra2FvbGtrb29sa2tZb2xra3pvbGtrWm9sa2t5b2xra0pvbGtrUG9sa2tpb2xra1QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTZXgmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtTZXgmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjFzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDs/JnF1b3Q7ICZxdW90O0hvbGtrVm9sa2tOb2xra3JvbGtrc29sa2tTb2xra1lvbGtrWW9sa2tjb2xra0tvbGtrZm9sa2tjb2xra3hvbGtrTm9sa2tQb2xra0ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDs/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O0FvbGtrQW9sa2tqb2xra3ZvbGtrRm9sa2tEb2xra1NvbGtrdSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi43cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjQW9sa2tBb2xra2pvbGtrdm9sa2tGb2xra0RvbGtrU29sa2t1JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1llYWgsIHlvdeKAmXJlIGFuIGFkdWx0LCBIYWlsZXkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMl8yNmEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZZWFoLCB5b3XigJlyZSBhbiBhZHVsdCwgSGFpbGV5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzI2YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0MjMiIG5hbWU9IkhhaWxleUNoYXRFcDNfMl8yNmEiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCw1MzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzI2YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1llYWgsIHlvdeKAmXJlIGFuIGFkdWx0LCBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WWVhaCwgeW914oCZcmUgYW4gYWR1bHQsIEhhaWxleSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1llYWgsIHlvdeKAmXJlIGFuIGFkdWx0LCBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7WG9sa2tlb2xra29vbGtraW9sa2tqb2xra3pvbGtrV29sa2t1JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNYb2xra2VvbGtrb29sa2tpb2xra2pvbGtrem9sa2tXb2xra3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7V2hlbiBJIHNhaWQgeW91IG5lZWRlZCB0byBnbyBvdXQgYW5kIGhhdmUgZnVuLCB0aGlzIGlzIGV4YWN0bHkgd2hhdCBJIG1lYW50JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjdhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7V2hlbiBJIHNhaWQgeW91IG5lZWRlZCB0byBnbyBvdXQgYW5kIGhhdmUgZnVuLCB0aGlzIGlzIGV4YWN0bHkgd2hhdCBJIG1lYW50JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzI3YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0MjQiIG5hbWU9IkhhaWxleUNoYXRFcDNfMl8yN2EiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSw1MzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzI3YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1doZW4gSSBzYWlkIHlvdSBuZWVkZWQgdG8gZ28gb3V0IGFuZCBoYXZlIGZ1biwgdGhpcyBpcyBleGFjdGx5IHdoYXQgSSBtZWFudCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXaGVuIEkgc2FpZCB5b3UgbmVlZGVkIHRvIGdvIG91dCBhbmQgaGF2ZSBmdW4sIHRoaXMgaXMgZXhhY3RseSB3aGF0IEkgbWVhbnQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtXaGVuIEkgc2FpZCB5b3UgbmVlZGVkIHRvIGdvIG91dCBhbmQgaGF2ZSBmdW4sIHRoaXMgaXMgZXhhY3RseSB3aGF0IEkgbWVhbnQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Rm9sa2tFb2xra3FvbGtraG9sa2tsb2xra3JvbGtrQW9sa2t3JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNGb2xra0VvbGtrcW9sa2tob2xra2xvbGtrcm9sa2tBb2xra3cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7TWVldGluZyBndXlzLCBoYXZpbmcgc2V4LCBsaXZpbmcgbGlmZS4uLiZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzI4YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O01lZXRpbmcgZ3V5cywgaGF2aW5nIHNleCwgbGl2aW5nIGxpZmUuLi4mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjhhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQyNSIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzI4YSIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDUzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjhhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TWVldGluZyBndXlzLCBoYXZpbmcgc2V4LCBsaXZpbmcgbGlmZS4uLiZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtNZWV0aW5nIGd1eXMsIGhhdmluZyBzZXgsIGxpdmluZyBsaWZlLi4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7TWVldGluZyBndXlzLCBoYXZpbmcgc2V4LCBsaXZpbmcgbGlmZS4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS40cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7QnV0IEnigJltIG5vdCBzdXJlIEkgY2FuIGRvIHRoYXQgd2l0aCBhIHN0cmFuZ2VyIEkganVzdCBtZXQmcXVvdDsgJnF1b3Q7Qm9sa2ttb2xra2VvbGtrUG9sa2tab2xra3VvbGtrTW9sa2tGb2xra0hvbGtrdG9sa2tGb2xra2hvbGtrUW9sa2twb2xra0hvbGtreCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J1dCBJ4oCZbSBub3Qgc3VyZSBJIGNhbiBkbyB0aGF0IHdpdGggYSBzdHJhbmdlciBJIGp1c3QgbWV0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QnV0IEnigJltIG5vdCBzdXJlIEkgY2FuIGRvIHRoYXQgd2l0aCBhIHN0cmFuZ2VyIEkganVzdCBtZXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtKb2xra3NvbGtrb29sa2tab2xra2VvbGtrTm9sa2tSb2xra3AmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I0pvbGtrc29sa2tvb2xra1pvbGtrZW9sa2tOb2xra1JvbGtrcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtMb29rLCBIYWlsZXksIGV2ZXJ5b25lIGRvZXMgaXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMl8yOWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtMb29rLCBIYWlsZXksIGV2ZXJ5b25lIGRvZXMgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjlhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQyNiIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzI5YSIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDUzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjlhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TG9vaywgSGFpbGV5LCBldmVyeW9uZSBkb2VzIGl0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0xvb2ssIEhhaWxleSwgZXZlcnlvbmUgZG9lcyBpdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0xvb2ssIEhhaWxleSwgZXZlcnlvbmUgZG9lcyBpdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtNb2xra21vbGtrQm9sa2tlb2xra3NvbGtreW9sa2tRb2xra1EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I01vbGtrbW9sa2tCb2xra2VvbGtrc29sa2t5b2xra1FvbGtrUSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3UgZG9u4oCZdCBoYXZlIHRvIG1hcnJ5IGhpbSwganVzdCBoYXZlIHNvbWUgZnVuJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMzBhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WW91IGRvbuKAmXQgaGF2ZSB0byBtYXJyeSBoaW0sIGp1c3QgaGF2ZSBzb21lIGZ1biZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMl8zMGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDI3IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzJfMzBhIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsNTM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl8zMGEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZb3UgZG9u4oCZdCBoYXZlIHRvIG1hcnJ5IGhpbSwganVzdCBoYXZlIHNvbWUgZnVuJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBkb27igJl0IGhhdmUgdG8gbWFycnkgaGltLCBqdXN0IGhhdmUgc29tZSBmdW4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZb3UgZG9u4oCZdCBoYXZlIHRvIG1hcnJ5IGhpbSwganVzdCBoYXZlIHNvbWUgZnVuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1BvbGtrdm9sa2ttb2xra0tvbGtrcm9sa2tXb2xra0VvbGtrRSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjUG9sa2t2b2xra21vbGtrS29sa2tyb2xra1dvbGtrRW9sa2tFJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RydXN0IG1lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMzFhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VHJ1c3QgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMzFhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQyOCIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzMxYSIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDUzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMzFhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VHJ1c3QgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VHJ1c3QgbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUcnVzdCBtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfY3J5aW5nLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9jcnlpbmcud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtPa2F5LCBJ4oCZbGwgc2VlIHdoYXQgSSBjYW4gZG8mcXVvdDsgJnF1b3Q7VG9sa2tmb2xra1dvbGtrbG9sa2tZb2xra3JvbGtrSm9sa2t3b2xra05vbGtrWW9sa2tKb2xra0NvbGtra29sa2tIb2xra1ZvbGtrRSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09rYXksIEnigJlsbCBzZWUgd2hhdCBJIGNhbiBkbyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O09rYXksIEnigJlsbCBzZWUgd2hhdCBJIGNhbiBkbyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1NvbGtrR29sa2tSb2xra2dvbGtraW9sa2tKb2xra0NvbGtrUiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjU29sa2tHb2xra1JvbGtrZ29sa2tpb2xra0pvbGtrQ29sa2tSJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0dyZWF0LCBJ4oCZbGwgYmUgd2FpdGluZyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzMyYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0dyZWF0LCBJ4oCZbGwgYmUgd2FpdGluZyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMl8zMmEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDI5IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzJfMTliIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDUzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMTliJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WW914oCZcmUgd2F5IHRvbyBiZWF1dGlmdWwgdG8gZW5kIHVwIHdpdGggYSBndXkgbGlrZSB0aGF0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdeKAmXJlIHdheSB0b28gYmVhdXRpZnVsIHRvIGVuZCB1cCB3aXRoIGEgZ3V5IGxpa2UgdGhhdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1lvdeKAmXJlIHdheSB0b28gYmVhdXRpZnVsIHRvIGVuZCB1cCB3aXRoIGEgZ3V5IGxpa2UgdGhhdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfZmx1c2gud2VicCZxdW90OyB0cnVlICZxdW90O0hhaWxleSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2ZsdXNoLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4ycyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7VGhhbmtzICRuYW1lJnF1b3Q7ICZxdW90O3hvbGtrcm9sa2tPb2xra0xvbGtrTm9sa2tjb2xra1FvbGtrYm9sa2tYb2xra3pvbGtrWm9sa2t5b2xra3BvbGtrQm9sa2tQb2xra2omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGFua3MgJG5hbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGFua3MgJG5hbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIGRvbuKAmXQga25vdyB3aGF0IHRvIHNheSZxdW90OyAmcXVvdDt1b2xra05vbGtrTW9sa2tib2xra3FvbGtrUG9sa2twb2xra3lvbGtrUG9sa2tOb2xra1FvbGtreG9sa2tsb2xra2hvbGtrb29sa2tUJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBkb27igJl0IGtub3cgd2hhdCB0byBzYXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIGRvbuKAmXQga25vdyB3aGF0IHRvIHNheSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1JvbGtrdW9sa2tFb2xra3RvbGtrdm9sa2tEb2xra2NvbGtrUSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjUm9sa2t1b2xra0VvbGtrdG9sa2t2b2xra0RvbGtrY29sa2tRJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1lvdSBkb27igJl0IGhhdmUgdG8gc2F5IGFueXRoaW5nJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjBiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WW91IGRvbuKAmXQgaGF2ZSB0byBzYXkgYW55dGhpbmcmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjBiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQzMCIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzIwYiIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSw1MzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzIwYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdSBkb27igJl0IGhhdmUgdG8gc2F5IGFueXRoaW5nJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBkb27igJl0IGhhdmUgdG8gc2F5IGFueXRoaW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WW91IGRvbuKAmXQgaGF2ZSB0byBzYXkgYW55dGhpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Zm9sa2tNb2xra0pvbGtrZG9sa2t3b2xra0hvbGtreG9sa2taJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNmb2xra01vbGtrSm9sa2tkb2xra3dvbGtrSG9sa2t4b2xra1omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7TGlrZSBJIHNhaWQsIEnigJltIGhlcmUgdG8gaGVscCB5b3UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMl8yMWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtMaWtlIEkgc2FpZCwgSeKAmW0gaGVyZSB0byBoZWxwIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfMl8yMWImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDMxIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzJfMjFiIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsNTQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl8yMWImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtMaWtlIEkgc2FpZCwgSeKAmW0gaGVyZSB0byBoZWxwIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtMaWtlIEkgc2FpZCwgSeKAmW0gaGVyZSB0byBoZWxwIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0xpa2UgSSBzYWlkLCBJ4oCZbSBoZXJlIHRvIGhlbHAgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjRzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIGhhdmUgdG8gbWVudGlvbiwgSSByZWFsbHkgZmVlbCBsdWNreSB0byBoYXZlIHlvdSBpbiBteSBsaWZlJnF1b3Q7ICZxdW90O1hvbGtrUG9sa2tRb2xra1RvbGtrbm9sa2tyb2xra2NvbGtrc29sa2tOb2xra2NvbGtrSG9sa2trb2xra09vbGtrS29sa2tRb2xra3gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGhhdmUgdG8gbWVudGlvbiwgSSByZWFsbHkgZmVlbCBsdWNreSB0byBoYXZlIHlvdSBpbiBteSBsaWZlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSBoYXZlIHRvIG1lbnRpb24sIEkgcmVhbGx5IGZlZWwgbHVja3kgdG8gaGF2ZSB5b3UgaW4gbXkgbGlmZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O3lvbGtrY29sa2tub2xra2tvbGtrRW9sa2tub2xra2ZvbGtrRiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjeW9sa2tjb2xra25vbGtra29sa2tFb2xra25vbGtrZm9sa2tGJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0nigJltIHRoZSBsdWNreSBvbmUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfMl8yMmImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJ4oCZbSB0aGUgbHVja3kgb25lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzIyYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0MzIiIG5hbWU9IkhhaWxleUNoYXRFcDNfMl8yMmIiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSw1NDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzIyYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0nigJltIHRoZSBsdWNreSBvbmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gdGhlIGx1Y2t5IG9uZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0nigJltIHRoZSBsdWNreSBvbmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2JpZ19zbWlsZS53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7SGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfYmlnX3NtaWxlLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SGV5LCBJIHRoaW5rIHRoYXTigJlzIGVub3VnaCBmb3IgdG9uaWdodCZxdW90OyAmcXVvdDt1b2xra2RvbGtrUG9sa2tqb2xra09vbGtrTG9sa2txb2xra2tvbGtrTm9sa2tEb2xra2FvbGtrVG9sa2tWb2xra1BvbGtrV29sa2trJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGV5LCBJIHRoaW5rIHRoYXTigJlzIGVub3VnaCBmb3IgdG9uaWdodCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0hleSwgSSB0aGluayB0aGF04oCZcyBlbm91Z2ggZm9yIHRvbmlnaHQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIGp1c3Qgd2FudCB0byBnbyBob21lJnF1b3Q7ICZxdW90O2ZvbGtrVm9sa2tTb2xra2ZvbGtrTG9sa2tVb2xra2pvbGtrd29sa2tXb2xra0FvbGtrb29sa2tEb2xra2dvbGtrV29sa2tGb2xra0smcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGp1c3Qgd2FudCB0byBnbyBob21lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSBqdXN0IHdhbnQgdG8gZ28gaG9tZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O3VvbGtrZm9sa2tIb2xra2dvbGtrTm9sa2txb2xra2xvbGtrViZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy44cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjdW9sa2tmb2xra0hvbGtrZ29sa2tOb2xra3FvbGtrbG9sa2tWJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O05vdCBhIGJhZCBpZGVhJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjNiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7Tm90IGEgYmFkIGlkZWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjNiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQzMyIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzIzYiIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDU0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjNiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7Tm90IGEgYmFkIGlkZWEmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm90IGEgYmFkIGlkZWEmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtOb3QgYSBiYWQgaWRlYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDttb2xra3RvbGtrYW9sa2t6b2xra0dvbGtrZ29sa2tkb2xra2EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I21vbGtrdG9sa2thb2xra3pvbGtrR29sa2tnb2xra2RvbGtrYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJdCB3YXMgYSBnb29kIGZpcnN0IHRyeSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzI0YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0l0IHdhcyBhIGdvb2QgZmlyc3QgdHJ5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzI0YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0MzQiIG5hbWU9IkhhaWxleUNoYXRFcDNfMl8yNGIiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSw1NDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzI0YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0l0IHdhcyBhIGdvb2QgZmlyc3QgdHJ5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0l0IHdhcyBhIGdvb2QgZmlyc3QgdHJ5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SXQgd2FzIGEgZ29vZCBmaXJzdCB0cnkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7cW9sa2thb2xra3JvbGtrTm9sa2txb2xra29vbGtreW9sa2t2JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNxb2xra2FvbGtrcm9sa2tOb2xra3FvbGtrb29sa2t5b2xra3YmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SnVzdCBrZWVwIGF0IGl0IHVudGlsIHlvdSBmZWVsIG1vcmUgY29uZmlkZW50JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjViJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SnVzdCBrZWVwIGF0IGl0IHVudGlsIHlvdSBmZWVsIG1vcmUgY29uZmlkZW50JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzI1YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0MzUiIG5hbWU9IkhhaWxleUNoYXRFcDNfMl8yNWIiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCw1NDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzI1YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0p1c3Qga2VlcCBhdCBpdCB1bnRpbCB5b3UgZmVlbCBtb3JlIGNvbmZpZGVudCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtKdXN0IGtlZXAgYXQgaXQgdW50aWwgeW91IGZlZWwgbW9yZSBjb25maWRlbnQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtKdXN0IGtlZXAgYXQgaXQgdW50aWwgeW91IGZlZWwgbW9yZSBjb25maWRlbnQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNnMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgd2lsbCwgbm8gZG91YnQgYWJvdXQgaXQmcXVvdDsgJnF1b3Q7d29sa2tkb2xra0hvbGtrV29sa2tFb2xra1JvbGtrVm9sa2txb2xra0xvbGtrY29sa2tPb2xra0RvbGtraG9sa2tCb2xra01vbGtrRiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgd2lsbCwgbm8gZG91YnQgYWJvdXQgaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIHdpbGwsIG5vIGRvdWJ0IGFib3V0IGl0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7QnV0IGFueXdheSwgSeKAmWxsIGxldCB5b3UgZ2V0IGJhY2sgdG8geW91ciBzdHVmZiZxdW90OyAmcXVvdDtBb2xra01vbGtrbW9sa2tsb2xra0FvbGtrV29sa2tlb2xra29vbGtrZG9sa2tBb2xra2JvbGtrVm9sa2tmb2xra0NvbGtrdW9sa2tEJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IGFueXdheSwgSeKAmWxsIGxldCB5b3UgZ2V0IGJhY2sgdG8geW91ciBzdHVmZiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0J1dCBhbnl3YXksIEnigJlsbCBsZXQgeW91IGdldCBiYWNrIHRvIHlvdXIgc3R1ZmYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtIYXZlIGEgZ29vZCBuaWdodCAkbmFtZSZxdW90OyAmcXVvdDt4b2xra1hvbGtrUW9sa2t3b2xra1FvbGtrSm9sa2tMb2xra3VvbGtrcW9sa2trb2xra3pvbGtrT29sa2tZb2xra2dvbGtrb29sa2t5JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGF2ZSBhIGdvb2QgbmlnaHQgJG5hbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtIYXZlIGEgZ29vZCBuaWdodCAkbmFtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O0FvbGtrc29sa2tNb2xra1JvbGtrRW9sa2tNb2xra1VvbGtrWiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjQW9sa2tzb2xra01vbGtrUm9sa2tFb2xra01vbGtrVW9sa2taJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0dvb2QgbmlnaHQgSGFpbGV5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjZiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7R29vZCBuaWdodCBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjZiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQzNiIgbmFtZT0iSGFpbGV5Q2hhdEVwM18yXzI2YiIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDU0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMjZiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7R29vZCBuaWdodCBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7R29vZCBuaWdodCBIYWlsZXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtHb29kIG5pZ2h0IEhhaWxleSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7R29vZCBuaWdodCBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSA9ICZxdW90O0hhaWxleUNoYXRFcDNfMl8yNmImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RfaG91ciA9ICZxdW90OzA3OjM4JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0ID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkaG91ciA9ICZxdW90OzA3OjM4JnF1b3Q7Jmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtvZmZsaW5lLXRleHQmcXVvdDsmZ3Q7SGFpbGV5IGlzIG9mZmxpbmUmbHQ7L2RpdiZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJHRyYW5zaXRpb24gPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICR0cmFuc2l0aW9uVGV4dCA9ICZxdW90O1RoZSBuZXh0IG1vcm5pbmcmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2NoYXQgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgPSAmcXVvdDtBbm5pZUNoYXRFcDNfMSZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0dvb2QgbW9ybmluZyBob25leSZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0MzciIG5hbWU9IkhhaWxleUNoYXRFcDNfMl8zMmEiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCw1NDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18yXzMyYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0dyZWF0LCBJ4oCZbGwgYmUgd2FpdGluZyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtHcmVhdCwgSeKAmWxsIGJlIHdhaXRpbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtHcmVhdCwgSeKAmWxsIGJlIHdhaXRpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0dvb2QgbmlnaHQgSGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzJfMzJhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0X2hvdXIgPSAmcXVvdDswNzozOCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdCA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDswNzozOCZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7b2ZmbGluZS10ZXh0JnF1b3Q7Jmd0O0hhaWxleSBpcyBvZmZsaW5lJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICR0cmFuc2l0aW9uID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkdHJhbnNpdGlvblRleHQgPSAmcXVvdDtUaGUgbmV4dCBtb3JuaW5nJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVDaGF0RXAzXzEmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtHb29kIG1vcm5pbmcgaG9uZXkmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDM4IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfMSIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDU0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0hpICRuYW1lLCBob3cgYXJlIHlvdT8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGkgJG5hbWUsIGhvdyBhcmUgeW91PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0hpICRuYW1lLCBob3cgYXJlIHlvdT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSBqdXN0IHdhbnRlZCB0byB0aGFuayB5b3UgZm9yIHllc3RlcmRheSZxdW90OyAmcXVvdDtMb2xra25vbGtrem9sa2tsb2xra0lvbGtreW9sa2tlb2xra0VvbGtrRG9sa2tvb2xra3ZvbGtrUm9sa2tnb2xra2xvbGtrR29sa2tUJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBqdXN0IHdhbnRlZCB0byB0aGFuayB5b3UgZm9yIHllc3RlcmRheSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kganVzdCB3YW50ZWQgdG8gdGhhbmsgeW91IGZvciB5ZXN0ZXJkYXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtUb2xra3FvbGtrVG9sa2tCb2xra2FvbGtrY29sa2tWb2xra0MmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I1RvbGtrcW9sa2tUb2xra0JvbGtrYW9sa2tjb2xra1ZvbGtrQyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtIaSBIYWlsZXkmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfM18yJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SGkgSGFpbGV5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0MzkiIG5hbWU9IkhhaWxleUNoYXRFcDNfM18yIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDU0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0hpIEhhaWxleSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIaSBIYWlsZXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtIaSBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7VW9sa2t4b2xra21vbGtreG9sa2tOb2xra1VvbGtrcG9sa2t5JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNVb2xra3hvbGtrbW9sa2t4b2xra05vbGtrVW9sa2twb2xra3kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7Tm8gcHJvYmxlbSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtObyBwcm9ibGVtJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDQwIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfMyIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSw1NDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtObyBwcm9ibGVtJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O05vIHByb2JsZW0mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtObyBwcm9ibGVtJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2NvbGtrU29sa2tVb2xra0VvbGtrZW9sa2tnb2xra2ZvbGtrbSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjY29sa2tTb2xra1VvbGtrRW9sa2tlb2xra2dvbGtrZm9sa2ttJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0hhcHB5IHRvIGhlbHAmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfM180JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SGFwcHkgdG8gaGVscCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfM180JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ0MSIgbmFtZT0iSGFpbGV5Q2hhdEVwM18zXzQiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCw1NjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtIYXBweSB0byBoZWxwJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hhcHB5IHRvIGhlbHAmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtIYXBweSB0byBoZWxwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9iaWdfc21pbGUud2VicCZxdW90OyB0cnVlICZxdW90O0hhaWxleSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2JpZ19zbWlsZS53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OyZsdDsmbHQ7aWYgICRoYWlsZXlfdWIgPT0gdHJ1ZSZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0tvbGtrUW9sa2tUb2xra0pvbGtrd29sa2tIb2xra2xvbGtrVSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4xcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjS29sa2tRb2xra1RvbGtrSm9sa2t3b2xra0hvbGtrbG9sa2tVJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0hleSwgYnV0IHRlbGwgbWUsIGhvdyBkaWQgaXQgZ28gd2l0aCB0aGF0IGd1eSBsYXN0IG5pZ2h0PyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzVhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SGV5LCBidXQgdGVsbCBtZSwgaG93IGRpZCBpdCBnbyB3aXRoIHRoYXQgZ3V5IGxhc3QgbmlnaHQ/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzVhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtQb2xra0JvbGtrbG9sa2tsb2xra1BvbGtrdW9sa2tZb2xra0kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuMXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I1BvbGtrQm9sa2tsb2xra2xvbGtrUG9sa2t1b2xra1lvbGtrSSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtEaWQgeW91IHRhbGsgdG8gYW55IG90aGVyIGd1eXMgYWZ0ZXIgd2Ugc3RvcHBlZCB0ZXh0aW5nIGxhc3QgbmlnaHQ/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfNWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtEaWQgeW91IHRhbGsgdG8gYW55IG90aGVyIGd1eXMgYWZ0ZXIgd2Ugc3RvcHBlZCB0ZXh0aW5nIGxhc3QgbmlnaHQ/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzViJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0NDIiIG5hbWU9IkhhaWxleUNoYXRFcDNfM181YSIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDU2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfNWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtIZXksIGJ1dCB0ZWxsIG1lLCBob3cgZGlkIGl0IGdvIHdpdGggdGhhdCBndXkgbGFzdCBuaWdodD8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGV5LCBidXQgdGVsbCBtZSwgaG93IGRpZCBpdCBnbyB3aXRoIHRoYXQgZ3V5IGxhc3QgbmlnaHQ/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SGV5LCBidXQgdGVsbCBtZSwgaG93IGRpZCBpdCBnbyB3aXRoIHRoYXQgZ3V5IGxhc3QgbmlnaHQ/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtXZWxsLCBJIGZvbGxvd2VkIHlvdXIgYWR2aWNlJnF1b3Q7ICZxdW90O0RvbGtrcm9sa2tHb2xra1lvbGtrR29sa2tzb2xra0NvbGtrQm9sa2tRb2xra09vbGtrTm9sa2tZb2xra1BvbGtraG9sa2t2b2xra3cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZWxsLCBJIGZvbGxvd2VkIHlvdXIgYWR2aWNlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7V2VsbCwgSSBmb2xsb3dlZCB5b3VyIGFkdmljZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjRzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1dlIHN0YXJ0ZWQgdGFsa2luZyZxdW90OyAmcXVvdDtUb2xra2hvbGtrcW9sa2txb2xra1RvbGtrSG9sa2tRb2xra3VvbGtrcm9sa2tJb2xra0FvbGtrVG9sa2tZb2xra1NvbGtrbm9sa2tGJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2Ugc3RhcnRlZCB0YWxraW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7V2Ugc3RhcnRlZCB0YWxraW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SGUgd2FzIHZlcnkgaW50ZW5zZSwgaGUga2VwdCBsZWFuaW5nIGluIHdoaWxlIHdlIHRhbGtlZCZxdW90OyAmcXVvdDtCb2xra2NvbGtrWW9sa2t5b2xra3ZvbGtrWW9sa2tXb2xra2tvbGtrRG9sa2trb2xra01vbGtrUW9sa2tpb2xra2pvbGtrb29sa2taJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGUgd2FzIHZlcnkgaW50ZW5zZSwgaGUga2VwdCBsZWFuaW5nIGluIHdoaWxlIHdlIHRhbGtlZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0hlIHdhcyB2ZXJ5IGludGVuc2UsIGhlIGtlcHQgbGVhbmluZyBpbiB3aGlsZSB3ZSB0YWxrZWQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtxb2xra3lvbGtrSG9sa2tWb2xra2tvbGtrWW9sa2tHb2xra0ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuMHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3FvbGtreW9sa2tIb2xra1ZvbGtra29sa2tZb2xra0dvbGtrQiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtNbW1oLCBhbmQgd2hhdCBlbHNlPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzZhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7TW1taCwgYW5kIHdoYXQgZWxzZT8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfNmEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDQzIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfNmEiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCw1NjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzZhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TW1taCwgYW5kIHdoYXQgZWxzZT8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TW1taCwgYW5kIHdoYXQgZWxzZT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtNbW1oLCBhbmQgd2hhdCBlbHNlPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7V2VsbCwgSSBmb2xsb3dlZCB5b3VyIGFkdmljZSZxdW90OyAmcXVvdDtub2xra3hvbGtra29sa2trb2xra2pvbGtra29sa2tQb2xra3hvbGtrUm9sa2tqb2xra0VvbGtrcG9sa2tYb2xra3dvbGtrRG9sa2taJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2VsbCwgSSBmb2xsb3dlZCB5b3VyIGFkdmljZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1dlbGwsIEkgZm9sbG93ZWQgeW91ciBhZHZpY2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS40cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtUaGluZ3MgaGFwcGVuZWQsIGxldOKAmXMgc2F5JnF1b3Q7ICZxdW90O1JvbGtrTm9sa2trb2xra1ZvbGtrcm9sa2tEb2xra0hvbGtrcG9sa2tab2xra2JvbGtrZ29sa2tVb2xra2xvbGtrTG9sa2tPb2xra2UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGluZ3MgaGFwcGVuZWQsIGxldOKAmXMgc2F5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhpbmdzIGhhcHBlbmVkLCBsZXTigJlzIHNheSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O3dvbGtrc29sa2tUb2xra3lvbGtrQW9sa2tUb2xra2JvbGtrWSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjd29sa2tzb2xra1RvbGtreW9sa2tBb2xra1RvbGtrYm9sa2tZJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O09rYXksIHRlbGwgbWUgaW4gZGV0YWlsJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfN2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtPa2F5LCB0ZWxsIG1lIGluIGRldGFpbCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfM183YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0NDQiIG5hbWU9IkhhaWxleUNoYXRFcDNfM183YSIgdGFncz0iIiBwb3NpdGlvbj0iNDc1LDU2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfN2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtPa2F5LCB0ZWxsIG1lIGluIGRldGFpbCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPa2F5LCB0ZWxsIG1lIGluIGRldGFpbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O09rYXksIHRlbGwgbWUgaW4gZGV0YWlsJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9ub193b3Jkcy53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7SGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfbm9fd29yZHMud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjNzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtBYm91dCB0aGUgc2V4PyZxdW90OyAmcXVvdDtHb2xra2lvbGtrT29sa2tjb2xra09vbGtrdW9sa2tkb2xra2hvbGtrZW9sa2tUb2xra3NvbGtrR29sa2tFb2xra1dvbGtrTm9sa2tQJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QWJvdXQgdGhlIHNleD8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtBYm91dCB0aGUgc2V4PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1VvbGtrTW9sa2t1b2xra1lvbGtrcW9sa2tTb2xra0tvbGtrdiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjVW9sa2tNb2xra3VvbGtrWW9sa2txb2xra1NvbGtrS29sa2t2JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1llYWgsIHdoYXQgZWxzZT8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfM184YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1llYWgsIHdoYXQgZWxzZT8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfOGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDQ1IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfOGEiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCw1NjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzhhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WWVhaCwgd2hhdCBlbHNlPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFoLCB3aGF0IGVsc2U/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WWVhaCwgd2hhdCBlbHNlPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSBkb27igJl0IGtub3cgaWYgSSB3b3VsZCBmZWVsIGNvbWZvcnRhYmxlIHNoYXJpbmcgdGhhdCBzdHVmZiZxdW90OyAmcXVvdDtIb2xra2xvbGtrWG9sa2tub2xra1VvbGtrem9sa2tNb2xra1RvbGtrcG9sa2tlb2xra0lvbGtrYm9sa2tPb2xra0ZvbGtrdW9sa2ttJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBkb27igJl0IGtub3cgaWYgSSB3b3VsZCBmZWVsIGNvbWZvcnRhYmxlIHNoYXJpbmcgdGhhdCBzdHVmZiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgZG9u4oCZdCBrbm93IGlmIEkgd291bGQgZmVlbCBjb21mb3J0YWJsZSBzaGFyaW5nIHRoYXQgc3R1ZmYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtIb2xra0lvbGtrWW9sa2tJb2xra2tvbGtrdm9sa2tpb2xra0EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I0hvbGtrSW9sa2tZb2xra0lvbGtra29sa2t2b2xra2lvbGtrQSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJdOKAmXMgbm9ybWFsIHRvIHRhbGsgYWJvdXQgdGhlc2UgdGhpbmdzIHdpdGggeW91ciBmcmllbmRzJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfOWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJdOKAmXMgbm9ybWFsIHRvIHRhbGsgYWJvdXQgdGhlc2UgdGhpbmdzIHdpdGggeW91ciBmcmllbmRzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzlhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ0NiIgbmFtZT0iSGFpbGV5Q2hhdEVwM18zXzlhIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsNTYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfM185YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0l04oCZcyBub3JtYWwgdG8gdGFsayBhYm91dCB0aGVzZSB0aGluZ3Mgd2l0aCB5b3VyIGZyaWVuZHMmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXTigJlzIG5vcm1hbCB0byB0YWxrIGFib3V0IHRoZXNlIHRoaW5ncyB3aXRoIHlvdXIgZnJpZW5kcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0l04oCZcyBub3JtYWwgdG8gdGFsayBhYm91dCB0aGVzZSB0aGluZ3Mgd2l0aCB5b3VyIGZyaWVuZHMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7bm9sa2tzb2xra0hvbGtrVm9sa2tUb2xra1hvbGtrbG9sa2tXJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNub2xra3NvbGtrSG9sa2tWb2xra1RvbGtrWG9sa2tsb2xra1cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QmVzaWRlcywgeW91IGFza2VkIGZvciBteSBoZWxwJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMTBhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7QmVzaWRlcywgeW91IGFza2VkIGZvciBteSBoZWxwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzEwYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0NDciIG5hbWU9IkhhaWxleUNoYXRFcDNfM18xMGEiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCw1NjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzEwYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0Jlc2lkZXMsIHlvdSBhc2tlZCBmb3IgbXkgaGVscCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCZXNpZGVzLCB5b3UgYXNrZWQgZm9yIG15IGhlbHAmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtCZXNpZGVzLCB5b3UgYXNrZWQgZm9yIG15IGhlbHAmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7dW9sa2tub2xra01vbGtreG9sa2tGb2xra2RvbGtrYm9sa2tDJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyN1b2xra25vbGtrTW9sa2t4b2xra0ZvbGtrZG9sa2tib2xra0MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSBuZWVkIHRvIGtub3cgaG93IHRoaW5ncyBhcmUgZ29pbmcmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfM18xMWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIG5lZWQgdG8ga25vdyBob3cgdGhpbmdzIGFyZSBnb2luZyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfM18xMWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDQ4IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfMTFhIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsNTYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfM18xMWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIG5lZWQgdG8ga25vdyBob3cgdGhpbmdzIGFyZSBnb2luZyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIG5lZWQgdG8ga25vdyBob3cgdGhpbmdzIGFyZSBnb2luZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgbmVlZCB0byBrbm93IGhvdyB0aGluZ3MgYXJlIGdvaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIGRpZG7igJl0IGtub3cgaXQgd2FzIG5vcm1hbCB0byBzaGFyZSB0aGVzZSB0aGluZ3MmcXVvdDsgJnF1b3Q7cm9sa2tPb2xra0pvbGtrd29sa2tEb2xra0pvbGtrQm9sa2tDb2xra2hvbGtreW9sa2tkb2xra0NvbGtrbG9sa2tUb2xra0JvbGtrSSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZGlkbuKAmXQga25vdyBpdCB3YXMgbm9ybWFsIHRvIHNoYXJlIHRoZXNlIHRoaW5ncyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgZGlkbuKAmXQga25vdyBpdCB3YXMgbm9ybWFsIHRvIHNoYXJlIHRoZXNlIHRoaW5ncyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0nigJl2ZSBuZXZlciBoYWQgY2xvc2UgZnJpZW5kcyBsaWtlIHRoYXQmcXVvdDsgJnF1b3Q7dW9sa2tWb2xra0dvbGtreW9sa2tHb2xra0xvbGtreG9sa2tpb2xra3JvbGtrZW9sa2t5b2xra2VvbGtrTG9sa2t3b2xra2hvbGtrQiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJl2ZSBuZXZlciBoYWQgY2xvc2UgZnJpZW5kcyBsaWtlIHRoYXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJ4oCZdmUgbmV2ZXIgaGFkIGNsb3NlIGZyaWVuZHMgbGlrZSB0aGF0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7cG9sa2tMb2xra0JvbGtrRW9sa2tXb2xra1BvbGtrVG9sa2tsJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjJzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNwb2xra0xvbGtrQm9sa2tFb2xra1dvbGtrUG9sa2tUb2xra2wmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SnVzdCBnbyBmb3IgaXQsIHlvdeKAmWxsIGZlZWwgYmV0dGVyIHRhbGtpbmcgdG8gc29tZW9uZSBhYm91dCBpdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzEyYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0p1c3QgZ28gZm9yIGl0LCB5b3XigJlsbCBmZWVsIGJldHRlciB0YWxraW5nIHRvIHNvbWVvbmUgYWJvdXQgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMTJhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ0OSIgbmFtZT0iSGFpbGV5Q2hhdEVwM18zXzEyYSIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCw1NjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzEyYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0p1c3QgZ28gZm9yIGl0LCB5b3XigJlsbCBmZWVsIGJldHRlciB0YWxraW5nIHRvIHNvbWVvbmUgYWJvdXQgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SnVzdCBnbyBmb3IgaXQsIHlvdeKAmWxsIGZlZWwgYmV0dGVyIHRhbGtpbmcgdG8gc29tZW9uZSBhYm91dCBpdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0p1c3QgZ28gZm9yIGl0LCB5b3XigJlsbCBmZWVsIGJldHRlciB0YWxraW5nIHRvIHNvbWVvbmUgYWJvdXQgaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2RvdWJ0LndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9kb3VidC53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMnMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1RoZSBndXkgbGVhbmVkIGluIG9uIG1lLCBhbmQgaGUgc21lbGxlZCBzdHJvbmdseSBvZiBhbGNvaG9sJnF1b3Q7ICZxdW90O2VvbGtra29sa2tGb2xra0pvbGtrbW9sa2t0b2xra0xvbGtrWG9sa2tGb2xra0JvbGtrc29sa2tab2xra3RvbGtrZW9sa2tBb2xra3kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGUgZ3V5IGxlYW5lZCBpbiBvbiBtZSwgYW5kIGhlIHNtZWxsZWQgc3Ryb25nbHkgb2YgYWxjb2hvbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RoZSBndXkgbGVhbmVkIGluIG9uIG1lLCBhbmQgaGUgc21lbGxlZCBzdHJvbmdseSBvZiBhbGNvaG9sJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7VGhlbiBoZSBpbnZpdGVkIG1lIHRvIGdvIHNvbWV3aGVyZSBlbHNlJnF1b3Q7ICZxdW90O0hvbGtrWm9sa2t5b2xra2xvbGtrbG9sa2tIb2xra0RvbGtreW9sa2tsb2xra2xvbGtrWW9sa2tSb2xra3VvbGtram9sa2tlb2xra1ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGVuIGhlIGludml0ZWQgbWUgdG8gZ28gc29tZXdoZXJlIGVsc2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGVuIGhlIGludml0ZWQgbWUgdG8gZ28gc29tZXdoZXJlIGVsc2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC41cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjVzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJIHdvdWxkIG5ldmVyIGhhdmUgYWNjZXB0ZWQgdW5kZXIgbm9ybWFsIGNpcmN1bXN0YW5jZXMsIGJ1dCBJIGRlY2lkZWQgdG8gZm9sbG93IHlvdXIgYWR2aWNlJnF1b3Q7ICZxdW90O0dvbGtrcm9sa2tIb2xra1ZvbGtrc29sa2tkb2xra1pvbGtrUG9sa2tTb2xra3NvbGtrYW9sa2tjb2xra09vbGtrZW9sa2t6b2xra2gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHdvdWxkIG5ldmVyIGhhdmUgYWNjZXB0ZWQgdW5kZXIgbm9ybWFsIGNpcmN1bXN0YW5jZXMsIGJ1dCBJIGRlY2lkZWQgdG8gZm9sbG93IHlvdXIgYWR2aWNlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSB3b3VsZCBuZXZlciBoYXZlIGFjY2VwdGVkIHVuZGVyIG5vcm1hbCBjaXJjdW1zdGFuY2VzLCBidXQgSSBkZWNpZGVkIHRvIGZvbGxvdyB5b3VyIGFkdmljZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA2LjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1dlIGdvdCBpbiBoaXMgY2FyLCBhbmQgaGUgc3RhcnRlZCBwdXR0aW5nIGhpcyBoYW5kIHVuZGVyIG15IGRyZXNzJnF1b3Q7ICZxdW90O09vbGtrVm9sa2tnb2xra2lvbGtrVm9sa2tLb2xra2VvbGtrdm9sa2tqb2xra3BvbGtraG9sa2thb2xra3ZvbGtrVW9sa2tRb2xra04mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZSBnb3QgaW4gaGlzIGNhciwgYW5kIGhlIHN0YXJ0ZWQgcHV0dGluZyBoaXMgaGFuZCB1bmRlciBteSBkcmVzcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1dlIGdvdCBpbiBoaXMgY2FyLCBhbmQgaGUgc3RhcnRlZCBwdXR0aW5nIGhpcyBoYW5kIHVuZGVyIG15IGRyZXNzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDguNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSBmZWx0IHJlYWxseSB1bmNvbWZvcnRhYmxlLCBidXQgSSBsZXQgaGltIGJ5IG5vdCBzYXlpbmcgYW55dGhpbmcmcXVvdDsgJnF1b3Q7em9sa2tWb2xra3FvbGtrRW9sa2tRb2xra2dvbGtrVm9sa2tUb2xra01vbGtrUm9sa2tIb2xra0VvbGtrdm9sa2tzb2xra1hvbGtrZiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZmVsdCByZWFsbHkgdW5jb21mb3J0YWJsZSwgYnV0IEkgbGV0IGhpbSBieSBub3Qgc2F5aW5nIGFueXRoaW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSBmZWx0IHJlYWxseSB1bmNvbWZvcnRhYmxlLCBidXQgSSBsZXQgaGltIGJ5IG5vdCBzYXlpbmcgYW55dGhpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtMb2xra3JvbGtreW9sa2tNb2xra3VvbGtrV29sa2tyb2xra3AmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEwLjRzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNMb2xra3JvbGtreW9sa2tNb2xra3VvbGtrV29sa2tyb2xra3AmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7R28gb24mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfM18xM2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtHbyBvbiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfM18xM2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDUwIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfMTNhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDU2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMTNhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7R28gb24mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7R28gb24mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtHbyBvbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SGUgc3RhcnRlZCB0b3VjaGluZyBtZSZxdW90OyAmcXVvdDtTb2xra05vbGtrYW9sa2tIb2xra0FvbGtrc29sa2tVb2xra3BvbGtrQ29sa2trb2xra2lvbGtrU29sa2tub2xra2NvbGtrV29sa2txJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGUgc3RhcnRlZCB0b3VjaGluZyBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0hlIHN0YXJ0ZWQgdG91Y2hpbmcgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJcyBpdCByZWFsbHkgbm9ybWFsIHRvIHRhbGsgYWJvdXQgdGhpcz8mcXVvdDsgJnF1b3Q7Wm9sa2tzb2xra3NvbGtrVW9sa2tQb2xra2JvbGtrWm9sa2tvb2xra1RvbGtrZ29sa2tRb2xra3lvbGtrbW9sa2t3b2xra2hvbGtrcSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0lzIGl0IHJlYWxseSBub3JtYWwgdG8gdGFsayBhYm91dCB0aGlzPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0lzIGl0IHJlYWxseSBub3JtYWwgdG8gdGFsayBhYm91dCB0aGlzPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O2pvbGtrUm9sa2tRb2xra3VvbGtrb29sa2tkb2xra2dvbGtrSiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi43cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjam9sa2tSb2xra1FvbGtrdW9sa2tvb2xra2RvbGtrZ29sa2tKJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1llcywgSSBhbHJlYWR5IHRvbGQgeW91LCB5b3UgbmVlZCB0byBzdGVwIG91dCBvZiB5b3VyIGNvbWZvcnQgem9uZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzE0YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1llcywgSSBhbHJlYWR5IHRvbGQgeW91LCB5b3UgbmVlZCB0byBzdGVwIG91dCBvZiB5b3VyIGNvbWZvcnQgem9uZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfM18xNGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDUxIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfMTRhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsNTcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfM18xNGEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZZXMsIEkgYWxyZWFkeSB0b2xkIHlvdSwgeW91IG5lZWQgdG8gc3RlcCBvdXQgb2YgeW91ciBjb21mb3J0IHpvbmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WWVzLCBJIGFscmVhZHkgdG9sZCB5b3UsIHlvdSBuZWVkIHRvIHN0ZXAgb3V0IG9mIHlvdXIgY29tZm9ydCB6b25lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WWVzLCBJIGFscmVhZHkgdG9sZCB5b3UsIHlvdSBuZWVkIHRvIHN0ZXAgb3V0IG9mIHlvdXIgY29tZm9ydCB6b25lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9kb3VidC53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7SGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfZG91YnQud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtUaGVuIGhlIHN0YXJ0ZWQgdG91Y2hpbmcgbWUgZG93biB0aGVyZSZxdW90OyAmcXVvdDtLb2xra0ZvbGtrQW9sa2tVb2xra0NvbGtra29sa2tDb2xra1BvbGtrU29sa2tTb2xra3JvbGtrTm9sa2tNb2xra0ZvbGtrY29sa2trJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhlbiBoZSBzdGFydGVkIHRvdWNoaW5nIG1lIGRvd24gdGhlcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGVuIGhlIHN0YXJ0ZWQgdG91Y2hpbmcgbWUgZG93biB0aGVyZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0hlIGhhZCByZWFsbHkgYmlnIGhhbmRzJnF1b3Q7ICZxdW90O3RvbGtrU29sa2tBb2xra0tvbGtrYm9sa2tkb2xra1pvbGtrS29sa2tob2xra1dvbGtrb29sa2tFb2xra29vbGtraW9sa2tGb2xra3omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZSBoYWQgcmVhbGx5IGJpZyBoYW5kcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0hlIGhhZCByZWFsbHkgYmlnIGhhbmRzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7VGhleSB3ZXJlIGEgYml0IHNsaXBwZXJ5JnF1b3Q7ICZxdW90O1ZvbGtrbm9sa2t6b2xra3dvbGtrTm9sa2tpb2xra0lvbGtrSW9sa2tNb2xra05vbGtrVm9sa2tab2xra3pvbGtrdm9sa2twb2xra2QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGV5IHdlcmUgYSBiaXQgc2xpcHBlcnkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGV5IHdlcmUgYSBiaXQgc2xpcHBlcnkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtib2xra0tvbGtrR29sa2tJb2xra3FvbGtrUm9sa2tlb2xra1gmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuOHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I2JvbGtrS29sa2tHb2xra0lvbGtrcW9sa2tSb2xra2VvbGtrWCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtTbGlwcGVyeT8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfM18xNWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtTbGlwcGVyeT8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMTVhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ1MiIgbmFtZT0iSGFpbGV5Q2hhdEVwM18zXzE1YSIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDU3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMTVhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7U2xpcHBlcnk/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1NsaXBwZXJ5PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1NsaXBwZXJ5PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7VW0sIHdlbGwsIEkgd2FzIHJlYWxseSB3ZXQmcXVvdDsgJnF1b3Q7Sm9sa2tKb2xra3NvbGtrVW9sa2tPb2xra3JvbGtrSG9sa2tmb2xra25vbGtreG9sa2ttb2xra2ZvbGtrd29sa2tob2xra2RvbGtrQSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1VtLCB3ZWxsLCBJIHdhcyByZWFsbHkgd2V0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VW0sIHdlbGwsIEkgd2FzIHJlYWxseSB3ZXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS41cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtQbHVzLCBoZSByaXBwZWQgbXkgdW5kZXJ3ZWFyIHRvIGdldCBiZXR0ZXIgYWNjZXNzLCBJIGd1ZXNzJnF1b3Q7ICZxdW90O3BvbGtrZW9sa2trb2xra3hvbGtrUW9sa2tpb2xra1pvbGtrcW9sa2tib2xra2FvbGtrS29sa2tPb2xra3JvbGtrYm9sa2tKb2xra2kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtQbHVzLCBoZSByaXBwZWQgbXkgdW5kZXJ3ZWFyIHRvIGdldCBiZXR0ZXIgYWNjZXNzLCBJIGd1ZXNzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7UGx1cywgaGUgcmlwcGVkIG15IHVuZGVyd2VhciB0byBnZXQgYmV0dGVyIGFjY2VzcywgSSBndWVzcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1NvbGtrem9sa2tXb2xra1hvbGtrbm9sa2tab2xra3dvbGtreSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjU29sa2t6b2xra1dvbGtrWG9sa2tub2xra1pvbGtrd29sa2t5JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0FuZCB0aGVuPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzE2YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0FuZCB0aGVuPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfM18xNmEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDUzIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfMTZhIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsNTcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfM18xNmEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtBbmQgdGhlbj8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5kIHRoZW4/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QW5kIHRoZW4/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtUaGVuIHdlIHdlbnQgdG8gYW4gZW1wdHkgbG90JnF1b3Q7ICZxdW90O25vbGtrSW9sa2tMb2xra2pvbGtrZ29sa2tVb2xra2NvbGtrY29sa2tYb2xra2RvbGtrWG9sa2tRb2xra2JvbGtrem9sa2tnb2xra2QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGVuIHdlIHdlbnQgdG8gYW4gZW1wdHkgbG90JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhlbiB3ZSB3ZW50IHRvIGFuIGVtcHR5IGxvdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMnMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgdGhvdWdodCBoZSB3b3VsZCB0YWtlIG1lIHRvIGhpcyBwbGFjZSwgYnV0IGhlIGRpZG7igJl0JnF1b3Q7ICZxdW90O1BvbGtrQ29sa2tBb2xra3BvbGtrbm9sa2tGb2xra0pvbGtrVm9sa2tpb2xra3dvbGtrd29sa2tDb2xra3VvbGtrSm9sa2tnb2xra0wmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHRob3VnaHQgaGUgd291bGQgdGFrZSBtZSB0byBoaXMgcGxhY2UsIGJ1dCBoZSBkaWRu4oCZdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgdGhvdWdodCBoZSB3b3VsZCB0YWtlIG1lIHRvIGhpcyBwbGFjZSwgYnV0IGhlIGRpZG7igJl0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4zcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SGUgcHVzaGVkIG1lIG9udG8gdGhlIGhvb2Qgb2YgdGhlIGNhciBhbmQgbGlmdGVkIG15IGRyZXNzJnF1b3Q7ICZxdW90O0pvbGtrZW9sa2tYb2xra2xvbGtrZm9sa2t1b2xra09vbGtrR29sa2tab2xra2ZvbGtrRW9sa2tJb2xra2ZvbGtrVm9sa2tJb2xra2smcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZSBwdXNoZWQgbWUgb250byB0aGUgaG9vZCBvZiB0aGUgY2FyIGFuZCBsaWZ0ZWQgbXkgZHJlc3MmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtIZSBwdXNoZWQgbWUgb250byB0aGUgaG9vZCBvZiB0aGUgY2FyIGFuZCBsaWZ0ZWQgbXkgZHJlc3MmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtBcmUgeW91IHN1cmUgSSBzaG91bGQga2VlcCBnb2luZz8mcXVvdDsgJnF1b3Q7WG9sa2tob2xra0RvbGtrcG9sa2tSb2xra0ZvbGtraG9sa2tyb2xra0FvbGtrYm9sa2ttb2xra29vbGtrVW9sa2tob2xra2NvbGtrYyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FyZSB5b3Ugc3VyZSBJIHNob3VsZCBrZWVwIGdvaW5nPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0FyZSB5b3Ugc3VyZSBJIHNob3VsZCBrZWVwIGdvaW5nPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O25vbGtrV29sa2tmb2xra0JvbGtrbG9sa2tVb2xra3ZvbGtrdiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNi42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjbm9sa2tXb2xra2ZvbGtrQm9sa2tsb2xra1VvbGtrdm9sa2t2JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1llcywga2VlcCBnb2luZyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzE3YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1llcywga2VlcCBnb2luZyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfM18xN2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDU0IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfMTdhIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsNTcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfM18xN2EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZZXMsIGtlZXAgZ29pbmcmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WWVzLCBrZWVwIGdvaW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WWVzLCBrZWVwIGdvaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjNzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtMaWtlIEkgc2FpZCwgaGUgbGlmdGVkIG15IGRyZXNzIGFuZCBzdGFydGVkIGxpY2tpbmcgbWUgZG93biB0aGVyZSZxdW90OyAmcXVvdDt2b2xra0pvbGtrU29sa2t2b2xra1BvbGtraW9sa2tUb2xra1NvbGtrem9sa2tsb2xra0dvbGtrTW9sa2tRb2xra2dvbGtra29sa2t5JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGlrZSBJIHNhaWQsIGhlIGxpZnRlZCBteSBkcmVzcyBhbmQgc3RhcnRlZCBsaWNraW5nIG1lIGRvd24gdGhlcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtMaWtlIEkgc2FpZCwgaGUgbGlmdGVkIG15IGRyZXNzIGFuZCBzdGFydGVkIGxpY2tpbmcgbWUgZG93biB0aGVyZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNnMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1RoZW4gaGUgcHVsbGVkIGRvd24gaGlzIHBhbnRzJnF1b3Q7ICZxdW90O25vbGtrbW9sa2t4b2xra05vbGtrZm9sa2tEb2xra2ZvbGtrTW9sa2tUb2xra0FvbGtrU29sa2tGb2xra1dvbGtrYm9sa2tTb2xra2wmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGVuIGhlIHB1bGxlZCBkb3duIGhpcyBwYW50cyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RoZW4gaGUgcHVsbGVkIGRvd24gaGlzIHBhbnRzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSBjb3VsZCBzbWVsbCBhIHJlYWxseSBzdHJvbmcgb2RvciZxdW90OyAmcXVvdDtLb2xra1RvbGtreG9sa2tlb2xra3VvbGtrcW9sa2t4b2xra2xvbGtrcG9sa2tVb2xra3hvbGtrSm9sa2tqb2xra3RvbGtrSG9sa2tQJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBjb3VsZCBzbWVsbCBhIHJlYWxseSBzdHJvbmcgb2RvciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0kgY291bGQgc21lbGwgYSByZWFsbHkgc3Ryb25nIG9kb3ImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC43cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAyLjBzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtIaXMgZGljayB3YXMgcHJldHR5IGJpZyBldmVuIHdoZW4gc29mdC4gSSB0aG91Z2h0IHRoZXkgd2VyZW7igJl0IGFzIGJpZyBhcyBpbiBwb3JuLCBidXQgaGlzIHdhcyZxdW90OyAmcXVvdDtPb2xra29vbGtrWm9sa2tQb2xra2FvbGtrcm9sa2tPb2xra1ZvbGtrZW9sa2tTb2xra2ZvbGtrZW9sa2ttb2xra2NvbGtrVG9sa2tXJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGlzIGRpY2sgd2FzIHByZXR0eSBiaWcgZXZlbiB3aGVuIHNvZnQuIEkgdGhvdWdodCB0aGV5IHdlcmVu4oCZdCBhcyBiaWcgYXMgaW4gcG9ybiwgYnV0IGhpcyB3YXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtIaXMgZGljayB3YXMgcHJldHR5IGJpZyBldmVuIHdoZW4gc29mdC4gSSB0aG91Z2h0IHRoZXkgd2VyZW7igJl0IGFzIGJpZyBhcyBpbiBwb3JuLCBidXQgaGlzIHdhcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1BvbGtrSW9sa2tUb2xra1ZvbGtrZm9sa2tWb2xra3pvbGtreiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNy4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjUG9sa2tJb2xra1RvbGtrVm9sa2tmb2xra1ZvbGtrem9sa2t6JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1NvIHlvdSB3YXRjaCBhIGxvdCBvZiBwb3JuPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzE4YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1NvIHlvdSB3YXRjaCBhIGxvdCBvZiBwb3JuPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfM18xOGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDU1IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfMThhIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsNTcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfM18xOGEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtTbyB5b3Ugd2F0Y2ggYSBsb3Qgb2YgcG9ybj8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U28geW91IHdhdGNoIGEgbG90IG9mIHBvcm4/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7U28geW91IHdhdGNoIGEgbG90IG9mIHBvcm4/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9kb3VidC53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7SGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfZG91YnQud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtIZSBwdXNoZWQgbXkgaGVhZCB0b3dhcmQgaGlzIGRpY2smcXVvdDsgJnF1b3Q7aW9sa2tsb2xra1lvbGtrR29sa2tRb2xra1VvbGtra29sa2tob2xra05vbGtreW9sa2tHb2xra0hvbGtrVG9sa2tyb2xra0RvbGtrSyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hlIHB1c2hlZCBteSBoZWFkIHRvd2FyZCBoaXMgZGljayZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0hlIHB1c2hlZCBteSBoZWFkIHRvd2FyZCBoaXMgZGljayZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuN3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0FuZCBiZWZvcmUgSSBrbmV3IGl0LCBJIHdhcyBvbiBteSBrbmVlcyB3aXRoIHRoYXQgZ2lhbnQgdGhpbmcgaW4gbXkgbW91dGgmcXVvdDsgJnF1b3Q7Tm9sa2trb2xra1FvbGtreG9sa2tyb2xra2xvbGtram9sa2tLb2xra2ZvbGtrRG9sa2txb2xra3FvbGtrbW9sa2tnb2xra0dvbGtrTyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FuZCBiZWZvcmUgSSBrbmV3IGl0LCBJIHdhcyBvbiBteSBrbmVlcyB3aXRoIHRoYXQgZ2lhbnQgdGhpbmcgaW4gbXkgbW91dGgmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtBbmQgYmVmb3JlIEkga25ldyBpdCwgSSB3YXMgb24gbXkga25lZXMgd2l0aCB0aGF0IGdpYW50IHRoaW5nIGluIG15IG1vdXRoJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuOXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7VGhlIHNtZWxsIHdhcyByZWFsbHkgc3Ryb25nJnF1b3Q7ICZxdW90O3VvbGtrRG9sa2tSb2xra09vbGtrbW9sa2tsb2xra1NvbGtrSG9sa2tmb2xra3NvbGtrWW9sa2tPb2xra1NvbGtrWm9sa2t1b2xra0ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGUgc21lbGwgd2FzIHJlYWxseSBzdHJvbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGUgc21lbGwgd2FzIHJlYWxseSBzdHJvbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNi4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtBbmQgSSBjb3VsZCBiYXJlbHkgb3BlbiBteSBtb3V0aCB3aWRlIGVub3VnaCZxdW90OyAmcXVvdDtab2xra2hvbGtrVG9sa2tub2xra2hvbGtraG9sa2tWb2xra3FvbGtram9sa2t2b2xra0NvbGtrbm9sa2t0b2xra0xvbGtraW9sa2tMJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5kIEkgY291bGQgYmFyZWx5IG9wZW4gbXkgbW91dGggd2lkZSBlbm91Z2gmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtBbmQgSSBjb3VsZCBiYXJlbHkgb3BlbiBteSBtb3V0aCB3aWRlIGVub3VnaCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O0NvbGtrc29sa2tBb2xra2pvbGtrZW9sa2txb2xra2lvbGtrRCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNy41cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjQ29sa2tzb2xra0FvbGtram9sa2tlb2xra3FvbGtraW9sa2tEJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0FuZCBob3cgZGlkIGl0IGNvbnRpbnVlPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzE5YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0FuZCBob3cgZGlkIGl0IGNvbnRpbnVlPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfM18xOWEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDU2IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfMTlhIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsNTcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfM18xOWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtBbmQgaG93IGRpZCBpdCBjb250aW51ZT8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5kIGhvdyBkaWQgaXQgY29udGludWU/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QW5kIGhvdyBkaWQgaXQgY29udGludWU/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtIZSBzdGFydGVkIG1vdmluZyBpbnNpZGUgbXkgbW91dGgmcXVvdDsgJnF1b3Q7WW9sa2tvb2xra2hvbGtrcW9sa2tCb2xra25vbGtrWm9sa2tOb2xra2dvbGtrYm9sa2twb2xra2FvbGtrcG9sa2tsb2xra25vbGtrdyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hlIHN0YXJ0ZWQgbW92aW5nIGluc2lkZSBteSBtb3V0aCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0hlIHN0YXJ0ZWQgbW92aW5nIGluc2lkZSBteSBtb3V0aCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMnMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgZmVsdCBraW5kIG9mIGNob2tlZCB3aXRoIGFsbCBvZiBpdCBpbiBteSB0aHJvYXQmcXVvdDsgJnF1b3Q7TW9sa2tBb2xra0ZvbGtrRW9sa2tNb2xra0RvbGtrSm9sa2tMb2xra0VvbGtrT29sa2t1b2xra3pvbGtrZG9sa2tGb2xra1VvbGtrdSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZmVsdCBraW5kIG9mIGNob2tlZCB3aXRoIGFsbCBvZiBpdCBpbiBteSB0aHJvYXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIGZlbHQga2luZCBvZiBjaG9rZWQgd2l0aCBhbGwgb2YgaXQgaW4gbXkgdGhyb2F0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7QnV0IHRoZW4gd2Ugc2F3IHNvbWUgbGlnaHRzJnF1b3Q7ICZxdW90O3pvbGtrem9sa2tRb2xra2lvbGtrem9sa2tSb2xra1FvbGtrcm9sa2tVb2xra01vbGtrZ29sa2tEb2xra0FvbGtrUG9sa2tnb2xra0ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgdGhlbiB3ZSBzYXcgc29tZSBsaWdodHMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtCdXQgdGhlbiB3ZSBzYXcgc29tZSBsaWdodHMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC41cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtIZSBzYWlkIHNvbWVvbmUgaGFkIHByb2JhYmx5IGNhbGxlZCB0aGUgcG9saWNlJnF1b3Q7ICZxdW90O0dvbGtrVG9sa2tCb2xra3ZvbGtrdW9sa2tub2xra2ZvbGtrRm9sa2tPb2xra0lvbGtrem9sa2tVb2xra1lvbGtrTm9sa2tyb2xra0kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZSBzYWlkIHNvbWVvbmUgaGFkIHByb2JhYmx5IGNhbGxlZCB0aGUgcG9saWNlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SGUgc2FpZCBzb21lb25lIGhhZCBwcm9iYWJseSBjYWxsZWQgdGhlIHBvbGljZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1NvIHdlIGxlZnQmcXVvdDsgJnF1b3Q7Rm9sa2trb2xra01vbGtrUW9sa2tVb2xra3VvbGtrQm9sa2trb2xra1lvbGtrbW9sa2t2b2xra0JvbGtram9sa2t3b2xra3lvbGtrViZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1NvIHdlIGxlZnQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtTbyB3ZSBsZWZ0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDYuOHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SGUgd2FudGVkIHRvIGZpbmQgYW5vdGhlciBzcG90JnF1b3Q7ICZxdW90O2VvbGtrU29sa2tHb2xra1RvbGtram9sa2tGb2xra0hvbGtrUm9sa2tXb2xra2FvbGtrZm9sa2t2b2xra3dvbGtrcm9sa2tob2xra1ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIZSB3YW50ZWQgdG8gZmluZCBhbm90aGVyIHNwb3QmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtIZSB3YW50ZWQgdG8gZmluZCBhbm90aGVyIHNwb3QmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgOC4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtCdXQgaXQgd2FzIHByZXR0eSBsYXRlJnF1b3Q7ICZxdW90O1hvbGtrb29sa2tBb2xra1NvbGtrdm9sa2tLb2xra1VvbGtrV29sa2tMb2xra0FvbGtrWm9sa2tlb2xra1RvbGtrbm9sa2twb2xra2gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgaXQgd2FzIHByZXR0eSBsYXRlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QnV0IGl0IHdhcyBwcmV0dHkgbGF0ZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA5LjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuOXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1NvIEkgYXNrZWQgaGltIHRvIGRyb3AgbWUgb2ZmIGF0IHRoZSBidXMgc3RvcCBuZWFyYnksIHRoZW4gSSB0b29rIGFuIHViZXIgaG9tZSZxdW90OyAmcXVvdDtIb2xra0RvbGtrVm9sa2tib2xra29vbGtrb29sa2tob2xra0VvbGtrZG9sa2tyb2xra2lvbGtrYW9sa2thb2xra2JvbGtrWW9sa2tFJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U28gSSBhc2tlZCBoaW0gdG8gZHJvcCBtZSBvZmYgYXQgdGhlIGJ1cyBzdG9wIG5lYXJieSwgdGhlbiBJIHRvb2sgYW4gdWJlciBob21lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7U28gSSBhc2tlZCBoaW0gdG8gZHJvcCBtZSBvZmYgYXQgdGhlIGJ1cyBzdG9wIG5lYXJieSwgdGhlbiBJIHRvb2sgYW4gdWJlciBob21lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7WW9sa2t5b2xra1BvbGtrSW9sa2tib2xra0xvbGtrbW9sa2tNJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxMS42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjWW9sa2t5b2xra1BvbGtrSW9sa2tib2xra0xvbGtrbW9sa2tNJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0hlIGRpZG7igJl0IGV2ZW4gdGFrZSB5b3UgaG9tZT8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfM18yMGEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtIZSBkaWRu4oCZdCBldmVuIHRha2UgeW91IGhvbWU/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzIwYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0NTciIG5hbWU9IkhhaWxleUNoYXRFcDNfM18yMGEiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCw1NzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzIwYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0hlIGRpZG7igJl0IGV2ZW4gdGFrZSB5b3UgaG9tZT8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGUgZGlkbuKAmXQgZXZlbiB0YWtlIHlvdSBob21lPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0hlIGRpZG7igJl0IGV2ZW4gdGFrZSB5b3UgaG9tZT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O05vLCBoZSBldmVuIHNlZW1lZCBhbm5veWVkIHRoYXQgSSBkaWRu4oCZdCB3YW50IHRvIGdvIHNvbWV3aGVyZSBlbHNlIHdpdGggaGltJnF1b3Q7ICZxdW90O0hvbGtrUW9sa2tob2xra3dvbGtrb29sa2tib2xra2ZvbGtrRG9sa2t6b2xra2pvbGtrcW9sa2t1b2xra0RvbGtrVW9sa2tmb2xra2QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtObywgaGUgZXZlbiBzZWVtZWQgYW5ub3llZCB0aGF0IEkgZGlkbuKAmXQgd2FudCB0byBnbyBzb21ld2hlcmUgZWxzZSB3aXRoIGhpbSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O05vLCBoZSBldmVuIHNlZW1lZCBhbm5veWVkIHRoYXQgSSBkaWRu4oCZdCB3YW50IHRvIGdvIHNvbWV3aGVyZSBlbHNlIHdpdGggaGltJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7VGhvdWdoIGhlIGdhdmUgbWUgaGlzIG51bWJlciB0byBtZWV0IHVwIGFub3RoZXIgdGltZSZxdW90OyAmcXVvdDtyb2xra0RvbGtrVm9sa2t2b2xra3JvbGtrem9sa2tub2xra3JvbGtrbm9sa2t5b2xra3lvbGtrRW9sa2tVb2xra25vbGtrSW9sa2tqJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhvdWdoIGhlIGdhdmUgbWUgaGlzIG51bWJlciB0byBtZWV0IHVwIGFub3RoZXIgdGltZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1Rob3VnaCBoZSBnYXZlIG1lIGhpcyBudW1iZXIgdG8gbWVldCB1cCBhbm90aGVyIHRpbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDt5b2xra2VvbGtrUW9sa2txb2xra2ZvbGtrRm9sa2tFb2xra1ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuMXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3lvbGtrZW9sa2tRb2xra3FvbGtrZm9sa2tGb2xra0VvbGtrUiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIHNlZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzIxYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgc2VlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzIxYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0NTgiIG5hbWU9IkhhaWxleUNoYXRFcDNfM18yMWEiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSw1NzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzIxYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgc2VlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgc2VlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSBzZWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0RvIHlvdSB0aGluayBJIHNob3VsZCBjYWxsIGhpbSBvciBzb21ldGhpbmc/JnF1b3Q7ICZxdW90O1dvbGtrRG9sa2tpb2xra0FvbGtrV29sa2tzb2xra0lvbGtrSW9sa2tjb2xra3NvbGtreG9sa2tBb2xra0xvbGtrTG9sa2tnb2xra1ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtEbyB5b3UgdGhpbmsgSSBzaG91bGQgY2FsbCBoaW0gb3Igc29tZXRoaW5nPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0RvIHlvdSB0aGluayBJIHNob3VsZCBjYWxsIGhpbSBvciBzb21ldGhpbmc/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7UG9sa2t2b2xra2hvbGtrVW9sa2trb2xra2tvbGtrWG9sa2tRJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjhzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNQb2xra3ZvbGtraG9sa2tVb2xra2tvbGtra29sa2tYb2xra1EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WWVzLCBJIHRoaW5rIGl0IGNvdWxkIGJlIGludGVyZXN0aW5nJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMjJhXzEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZZXMsIEkgdGhpbmsgaXQgY291bGQgYmUgaW50ZXJlc3RpbmcmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMjJhXzEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I1BvbGtrdm9sa2tob2xra1VvbGtra29sa2trb2xra1hvbGtrUSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtObywgdGhhdCBndXkganVzdCB0b29rIGFkdmFudGFnZSBvZiB5b3UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfM18yMmJfMSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O05vLCB0aGF0IGd1eSBqdXN0IHRvb2sgYWR2YW50YWdlIG9mIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfM18yMmJfMSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0NTkiIG5hbWU9IkhhaWxleUNoYXRFcDNfM18yMmFfMSIgdGFncz0iIiBwb3NpdGlvbj0iMTEwMCw1NzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzIyYV8xJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WWVzLCBJIHRoaW5rIGl0IGNvdWxkIGJlIGludGVyZXN0aW5nJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1llcywgSSB0aGluayBpdCBjb3VsZCBiZSBpbnRlcmVzdGluZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1llcywgSSB0aGluayBpdCBjb3VsZCBiZSBpbnRlcmVzdGluZyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkaGFpbGV5X3ViX25leHQgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X25vdGVzLnB1c2goJnF1b3Q7SGFpbGV5IGhhZCBzZXggd2l0aCB0aGF0IHVnbHkgYmFzdGFyZCwgYW5kIEkgcmVjb21tZW5kZWQgc2hlIGtlZXAgc2VlaW5nIGhpbS4mcXVvdDspJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt0b2xra2FvbGtrRW9sa2tzb2xra2xvbGtrcG9sa2tsb2xra0QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3RvbGtrYW9sa2tFb2xra3NvbGtrbG9sa2twb2xra2xvbGtrRCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaG91Z2ggbm90IHJpZ2h0IG5vdyZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzIyYV8yJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhvdWdoIG5vdCByaWdodCBub3cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMjJhXzImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDYwIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfMjJhXzIiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsNTcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfM18yMmFfMiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1Rob3VnaCBub3QgcmlnaHQgbm93JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1Rob3VnaCBub3QgcmlnaHQgbm93JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhvdWdoIG5vdCByaWdodCBub3cmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7VG9sa2t5b2xra1BvbGtrY29sa2tub2xra2JvbGtreG9sa2t4JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNUb2xra3lvbGtrUG9sa2tjb2xra25vbGtrYm9sa2t4b2xra3gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7R2l2ZSBpdCBhIGNvdXBsZSBvZiBkYXlzJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMjJhXzMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtHaXZlIGl0IGEgY291cGxlIG9mIGRheXMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMjJhXzMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDYxIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfMjJhXzMiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCw1ODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzIyYV8zJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7R2l2ZSBpdCBhIGNvdXBsZSBvZiBkYXlzJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0dpdmUgaXQgYSBjb3VwbGUgb2YgZGF5cyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0dpdmUgaXQgYSBjb3VwbGUgb2YgZGF5cyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7T2theSwgSeKAmWxsIGNoZWNrIHdpdGggeW91IGJlZm9yZSBJIGRvJnF1b3Q7ICZxdW90O1ZvbGtrYm9sa2ttb2xra2RvbGtrem9sa2tKb2xra2xvbGtra29sa2t4b2xra2ZvbGtrem9sa2t2b2xra1pvbGtrZW9sa2tFb2xra3YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPa2F5LCBJ4oCZbGwgY2hlY2sgd2l0aCB5b3UgYmVmb3JlIEkgZG8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtPa2F5LCBJ4oCZbGwgY2hlY2sgd2l0aCB5b3UgYmVmb3JlIEkgZG8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS43cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtCeSB0aGUgd2F5LCB0aGFua3MgYWdhaW4gJG5hbWUmcXVvdDsgJnF1b3Q7ZG9sa2tqb2xra0tvbGtrVW9sa2tKb2xra0pvbGtrYm9sa2tKb2xra0dvbGtrbG9sa2tVb2xra0NvbGtra29sa2tGb2xra0RvbGtreiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0J5IHRoZSB3YXksIHRoYW5rcyBhZ2FpbiAkbmFtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0J5IHRoZSB3YXksIHRoYW5rcyBhZ2FpbiAkbmFtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0kgZmVlbCBwcm90ZWN0ZWQga25vd2luZyBJIGNhbiBjb3VudCBvbiB5b3UmcXVvdDsgJnF1b3Q7bW9sa2tLb2xra2tvbGtrbG9sa2tPb2xra0lvbGtrdW9sa2tnb2xra2lvbGtram9sa2twb2xra1VvbGtrcW9sa2tPb2xra2pvbGtraiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZmVlbCBwcm90ZWN0ZWQga25vd2luZyBJIGNhbiBjb3VudCBvbiB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIGZlZWwgcHJvdGVjdGVkIGtub3dpbmcgSSBjYW4gY291bnQgb24geW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7aG9sa2tNb2xra0lvbGtrc29sa2tub2xra0VvbGtrWm9sa2tjJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA0LjRzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNob2xra01vbGtrSW9sa2tzb2xra25vbGtrRW9sa2tab2xra2MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhhdOKAmXMgd2hhdCBmcmllbmRzIGFyZSBmb3ImcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfM18yMyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoYXTigJlzIHdoYXQgZnJpZW5kcyBhcmUgZm9yJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzIzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ2MiIgbmFtZT0iSGFpbGV5Q2hhdEVwM18zXzIyYl8xIiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsNTg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfM18yMmJfMSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O05vLCB0aGF0IGd1eSBqdXN0IHRvb2sgYWR2YW50YWdlIG9mIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtObywgdGhhdCBndXkganVzdCB0b29rIGFkdmFudGFnZSBvZiB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtObywgdGhhdCBndXkganVzdCB0b29rIGFkdmFudGFnZSBvZiB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGhhaWxleV91Yl9uZXh0ID0gZmFsc2UmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfbm90ZXMucHVzaCgmcXVvdDtIYWlsZXkgaGFkIHNleCB3aXRoIHRoYXQgdWdseSBiYXN0YXJkLCBhbmQgSSByZWNvbW1lbmRlZCBzaGUgc3RvcCBzZWVpbmcgaGltLiZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2ZvbGtrWG9sa2trb2xra2VvbGtrbG9sa2tWb2xra1FvbGtrTyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjZm9sa2tYb2xra2tvbGtrZW9sa2tsb2xra1ZvbGtrUW9sa2tPJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgZG9u4oCZdCB0aGluayBoZeKAmXMgd29ydGggaXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfM18yMmJfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgZG9u4oCZdCB0aGluayBoZeKAmXMgd29ydGggaXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMjJiXzImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDYzIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfMjJiXzIiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCw1ODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzIyYl8yJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBkb27igJl0IHRoaW5rIGhl4oCZcyB3b3J0aCBpdCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGRvbuKAmXQgdGhpbmsgaGXigJlzIHdvcnRoIGl0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSBkb27igJl0IHRoaW5rIGhl4oCZcyB3b3J0aCBpdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7VGhhbmtzICRuYW1lLCBJIGZlZWwgcHJvdGVjdGVkIGtub3dpbmcgSSBjYW4gY291bnQgb24geW91JnF1b3Q7ICZxdW90O01vbGtraG9sa2t1b2xra2FvbGtrZ29sa2tvb2xra3JvbGtreW9sa2tPb2xra2JvbGtrdW9sa2trb2xra3NvbGtrTW9sa2tnb2xra3YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGFua3MgJG5hbWUsIEkgZmVlbCBwcm90ZWN0ZWQga25vd2luZyBJIGNhbiBjb3VudCBvbiB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGFua3MgJG5hbWUsIEkgZmVlbCBwcm90ZWN0ZWQga25vd2luZyBJIGNhbiBjb3VudCBvbiB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtFb2xra0JvbGtrdm9sa2tmb2xra29vbGtrbm9sa2tEb2xra3gmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I0VvbGtrQm9sa2t2b2xra2ZvbGtrb29sa2tub2xra0RvbGtreCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGF04oCZcyB3aGF0IGZyaWVuZHMgYXJlIGZvciZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzIzJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhhdOKAmXMgd2hhdCBmcmllbmRzIGFyZSBmb3ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMjMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDY0IiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfMjMiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSw1ODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzIzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhhdOKAmXMgd2hhdCBmcmllbmRzIGFyZSBmb3ImcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhdOKAmXMgd2hhdCBmcmllbmRzIGFyZSBmb3ImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGF04oCZcyB3aGF0IGZyaWVuZHMgYXJlIGZvciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfYmlnX3NtaWxlLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9iaWdfc21pbGUud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtPaCwgYnkgdGhlIHdheSwgaG934oCZcyB0aGUgcmVwb3J0IGdvaW5nPyZxdW90OyAmcXVvdDt1b2xra3BvbGtrcW9sa2tUb2xra1ZvbGtrVW9sa2twb2xra2pvbGtrZm9sa2tJb2xra09vbGtrdG9sa2tEb2xra0xvbGtrYW9sa2tkJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2gsIGJ5IHRoZSB3YXksIGhvd+KAmXMgdGhlIHJlcG9ydCBnb2luZz8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtPaCwgYnkgdGhlIHdheSwgaG934oCZcyB0aGUgcmVwb3J0IGdvaW5nPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1BvbGtrT29sa2t1b2xra3dvbGtrYm9sa2thb2xra2tvbGtrQiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi43cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjUG9sa2tPb2xra3VvbGtrd29sa2tib2xra2FvbGtra29sa2tCJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1dlbGwsIGl04oCZcyBtb3ZpbmcgYWxvbmcsIHNsb3dseSBidXQgc3VyZWx5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMjQmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXZWxsLCBpdOKAmXMgbW92aW5nIGFsb25nLCBzbG93bHkgYnV0IHN1cmVseSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfM18yNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0NjUiIG5hbWU9IkhhaWxleUNoYXRFcDNfM18yNCIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDU4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMjQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtXZWxsLCBpdOKAmXMgbW92aW5nIGFsb25nLCBzbG93bHkgYnV0IHN1cmVseSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZWxsLCBpdOKAmXMgbW92aW5nIGFsb25nLCBzbG93bHkgYnV0IHN1cmVseSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1dlbGwsIGl04oCZcyBtb3ZpbmcgYWxvbmcsIHNsb3dseSBidXQgc3VyZWx5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3ZvbGtrZ29sa2tXb2xra2ZvbGtrem9sa2txb2xra0VvbGtreiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjdm9sa2tnb2xra1dvbGtrZm9sa2t6b2xra3FvbGtrRW9sa2t6JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgZG9u4oCZdCB0aGluayBJ4oCZdmUgZXZlciBkcmFuayB0aGlzIG11Y2ggUmVkIEJ1bGwgaW4gbXkgbGlmZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzI1JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBkb27igJl0IHRoaW5rIEnigJl2ZSBldmVyIGRyYW5rIHRoaXMgbXVjaCBSZWQgQnVsbCBpbiBteSBsaWZlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzI1JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ2NiIgbmFtZT0iSGFpbGV5Q2hhdEVwM18zXzI1IiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsNTg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfM18yNSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgZG9u4oCZdCB0aGluayBJ4oCZdmUgZXZlciBkcmFuayB0aGlzIG11Y2ggUmVkIEJ1bGwgaW4gbXkgbGlmZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGRvbuKAmXQgdGhpbmsgSeKAmXZlIGV2ZXIgZHJhbmsgdGhpcyBtdWNoIFJlZCBCdWxsIGluIG15IGxpZmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIGRvbuKAmXQgdGhpbmsgSeKAmXZlIGV2ZXIgZHJhbmsgdGhpcyBtdWNoIFJlZCBCdWxsIGluIG15IGxpZmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMnMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1RoYXTigJlzIGdvb2QsIHRoZSBpbXBvcnRhbnQgdGhpbmcgaXMgdGhhdCB5b3UgZmluaXNoIGl0IG9uIHRpbWUmcXVvdDsgJnF1b3Q7T29sa2tJb2xra2RvbGtrVm9sa2tjb2xra3dvbGtraG9sa2tab2xra1lvbGtrem9sa2tZb2xra2RvbGtrcm9sa2t2b2xra2tvbGtrVCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYXTigJlzIGdvb2QsIHRoZSBpbXBvcnRhbnQgdGhpbmcgaXMgdGhhdCB5b3UgZmluaXNoIGl0IG9uIHRpbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGF04oCZcyBnb29kLCB0aGUgaW1wb3J0YW50IHRoaW5nIGlzIHRoYXQgeW91IGZpbmlzaCBpdCBvbiB0aW1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSBrbm93IHlvdSBjYW4gZG8gaXQhJnF1b3Q7ICZxdW90O3hvbGtrSW9sa2tib2xra1VvbGtrSG9sa2txb2xra3VvbGtrS29sa2tOb2xra0lvbGtrZW9sa2trb2xra1RvbGtrR29sa2t4b2xra2YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGtub3cgeW91IGNhbiBkbyBpdCEmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIGtub3cgeW91IGNhbiBkbyBpdCEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtYb2xra2RvbGtrUm9sa2tEb2xra0RvbGtrTG9sa2tzb2xra1ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I1hvbGtrZG9sa2tSb2xra0RvbGtrRG9sa2tMb2xra3NvbGtrUiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGFua3MgSGFpbGV5LCBJIGJlbGlldmUgc28gdG9vJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMjYmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaGFua3MgSGFpbGV5LCBJIGJlbGlldmUgc28gdG9vJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzI2JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ2NyIgbmFtZT0iSGFpbGV5Q2hhdEVwM18zXzI2IiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsNTg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfM18yNiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RoYW5rcyBIYWlsZXksIEkgYmVsaWV2ZSBzbyB0b28mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhbmtzIEhhaWxleSwgSSBiZWxpZXZlIHNvIHRvbyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RoYW5rcyBIYWlsZXksIEkgYmVsaWV2ZSBzbyB0b28mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X21vdXRoLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9tb3V0aC53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtxb2xra3FvbGtra29sa2tqb2xra3dvbGtrRW9sa2tKb2xra2cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3FvbGtrcW9sa2trb2xra2pvbGtrd29sa2tFb2xra0pvbGtrZyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtBbnl3YXksIEkgc2hvdWxkIGdldCBiYWNrIHRvIHdvcmsmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfM18yNyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0FueXdheSwgSSBzaG91bGQgZ2V0IGJhY2sgdG8gd29yayZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfM18yNyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0NjgiIG5hbWU9IkhhaWxleUNoYXRFcDNfM18yNyIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDU4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMjcmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtBbnl3YXksIEkgc2hvdWxkIGdldCBiYWNrIHRvIHdvcmsmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW55d2F5LCBJIHNob3VsZCBnZXQgYmFjayB0byB3b3JrJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QW55d2F5LCBJIHNob3VsZCBnZXQgYmFjayB0byB3b3JrJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3FvbGtreW9sa2tTb2xra1VvbGtrWW9sa2tib2xra05vbGtrSyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjcW9sa2t5b2xra1NvbGtrVW9sa2tZb2xra2JvbGtrTm9sa2tLJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0xldOKAmXMgdGFsayBsYXRlciZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzI4JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7TGV04oCZcyB0YWxrIGxhdGVyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzI4JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ2OSIgbmFtZT0iSGFpbGV5Q2hhdEVwM18zXzI4IiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDU4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfMjgmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtMZXTigJlzIHRhbGsgbGF0ZXImcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGV04oCZcyB0YWxrIGxhdGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7TGV04oCZcyB0YWxrIGxhdGVyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtTb3VuZHMgZ29vZCAkbmFtZSwgdGhhbmtzIGFnYWluJnF1b3Q7ICZxdW90O3VvbGtrTm9sa2tLb2xra3dvbGtrem9sa2tlb2xra0lvbGtrbW9sa2tPb2xra0FvbGtrZW9sa2tzb2xra0tvbGtrZG9sa2tTb2xra3YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTb3VuZHMgZ29vZCAkbmFtZSwgdGhhbmtzIGFnYWluJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7U291bmRzIGdvb2QgJG5hbWUsIHRoYW5rcyBhZ2FpbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjRzJmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7U291bmRzIGdvb2QgJG5hbWUsIHRoYW5rcyBhZ2FpbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlID0gJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzI4JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0X2hvdXIgPSAmcXVvdDswOTo0NyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdCA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDswOTo0NyZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7b2ZmbGluZS10ZXh0JnF1b3Q7Jmd0O0hhaWxleSBpcyBvZmZsaW5lJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0ID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjRzJmd0OyZndDsmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdFN0YXRlID0gJnF1b3Q7UGhpbGxpcHNDaGF0RXAzXzEmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS40cyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtIb3figJlzIHRoZSBpbmNvbWUgcmVwb3J0IGNvbWluZyBhbG9uZz8mcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDcwIiBuYW1lPSJIYWlsZXlDaGF0RXAzXzNfNWIiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsNTg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfM181YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0RpZCB5b3UgdGFsayB0byBhbnkgb3RoZXIgZ3V5cyBhZnRlciB3ZSBzdG9wcGVkIHRleHRpbmcgbGFzdCBuaWdodD8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RGlkIHlvdSB0YWxrIHRvIGFueSBvdGhlciBndXlzIGFmdGVyIHdlIHN0b3BwZWQgdGV4dGluZyBsYXN0IG5pZ2h0PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0RpZCB5b3UgdGFsayB0byBhbnkgb3RoZXIgZ3V5cyBhZnRlciB3ZSBzdG9wcGVkIHRleHRpbmcgbGFzdCBuaWdodD8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O05vLCBJIGp1c3Qgd2VudCBob21lIGFmdGVyIHdlIGZpbmlzaGVkIHRhbGtpbmcmcXVvdDsgJnF1b3Q7Zm9sa2tIb2xra0tvbGtrZ29sa2tyb2xra3JvbGtrbG9sa2tFb2xra0NvbGtrTG9sa2tkb2xra3NvbGtrVG9sa2tob2xra3dvbGtreCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O05vLCBJIGp1c3Qgd2VudCBob21lIGFmdGVyIHdlIGZpbmlzaGVkIHRhbGtpbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtObywgSSBqdXN0IHdlbnQgaG9tZSBhZnRlciB3ZSBmaW5pc2hlZCB0YWxraW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuOHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSB3YXMga2luZCBvZiB0aXJlZCwgdG8gYmUgaG9uZXN0JnF1b3Q7ICZxdW90O3ZvbGtrSW9sa2tCb2xra1BvbGtrWW9sa2tWb2xra3ZvbGtrUW9sa2tMb2xra0xvbGtrS29sa2tvb2xra2ZvbGtreW9sa2tFb2xra04mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHdhcyBraW5kIG9mIHRpcmVkLCB0byBiZSBob25lc3QmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIHdhcyBraW5kIG9mIHRpcmVkLCB0byBiZSBob25lc3QmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtib2xra0dvbGtrWG9sa2tUb2xra0RvbGtrcm9sa2tFb2xra24mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuMnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I2JvbGtrR29sa2tYb2xra1RvbGtrRG9sa2tyb2xra0VvbGtrbiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGF04oCZcyBmaW5lLCBpdOKAmXMgYSBzdGVwLWJ5LXN0ZXAgdGhpbmcmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfM182YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoYXTigJlzIGZpbmUsIGl04oCZcyBhIHN0ZXAtYnktc3RlcCB0aGluZyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDNfM182YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0NzEiIG5hbWU9IkhhaWxleUNoYXRFcDNfM182YiIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDU5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzNfNmImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGF04oCZcyBmaW5lLCBpdOKAmXMgYSBzdGVwLWJ5LXN0ZXAgdGhpbmcmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhdOKAmXMgZmluZSwgaXTigJlzIGEgc3RlcC1ieS1zdGVwIHRoaW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhhdOKAmXMgZmluZSwgaXTigJlzIGEgc3RlcC1ieS1zdGVwIHRoaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2pvbGtrT29sa2tYb2xra2lvbGtrZW9sa2tLb2xra1VvbGtrUyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjam9sa2tPb2xra1hvbGtraW9sa2tlb2xra0tvbGtrVW9sa2tTJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1lvdSBkb27igJl0IGhhdmUgdG8gbGl2ZSBhbGwgdGhlIGV4cGVyaWVuY2VzIGluIG9uZSBuaWdodCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzdiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WW91IGRvbuKAmXQgaGF2ZSB0byBsaXZlIGFsbCB0aGUgZXhwZXJpZW5jZXMgaW4gb25lIG5pZ2h0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzdiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ3MiIgbmFtZT0iSGFpbGV5Q2hhdEVwM18zXzdiIiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsNTk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfM183YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdSBkb27igJl0IGhhdmUgdG8gbGl2ZSBhbGwgdGhlIGV4cGVyaWVuY2VzIGluIG9uZSBuaWdodCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3UgZG9u4oCZdCBoYXZlIHRvIGxpdmUgYWxsIHRoZSBleHBlcmllbmNlcyBpbiBvbmUgbmlnaHQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZb3UgZG9u4oCZdCBoYXZlIHRvIGxpdmUgYWxsIHRoZSBleHBlcmllbmNlcyBpbiBvbmUgbmlnaHQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7a29sa2tlb2xra1lvbGtrWm9sa2tEb2xra1NvbGtrdG9sa2tyJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNrb2xra2VvbGtrWW9sa2tab2xra0RvbGtrU29sa2t0b2xra3ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WW914oCZbGwgaGF2ZSBtb3JlIG9wcG9ydHVuaXRpZXMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfM184YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1lvdeKAmWxsIGhhdmUgbW9yZSBvcHBvcnR1bml0aWVzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzhiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ3MyIgbmFtZT0iSGFpbGV5Q2hhdEVwM18zXzhiIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsNTk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDNfM184YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdeKAmWxsIGhhdmUgbW9yZSBvcHBvcnR1bml0aWVzJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdeKAmWxsIGhhdmUgbW9yZSBvcHBvcnR1bml0aWVzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WW914oCZbGwgaGF2ZSBtb3JlIG9wcG9ydHVuaXRpZXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1RoYW5rcyAkbmFtZSwgSSBmZWVsIHByb3RlY3RlZCBrbm93aW5nIEkgY2FuIGNvdW50IG9uIHlvdSZxdW90OyAmcXVvdDtZb2xra1RvbGtrcm9sa2tFb2xra29vbGtrUG9sa2tVb2xra2hvbGtrSm9sa2tob2xra2ZvbGtrU29sa2twb2xra2lvbGtrSm9sa2tCJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhbmtzICRuYW1lLCBJIGZlZWwgcHJvdGVjdGVkIGtub3dpbmcgSSBjYW4gY291bnQgb24geW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7VGhhbmtzICRuYW1lLCBJIGZlZWwgcHJvdGVjdGVkIGtub3dpbmcgSSBjYW4gY291bnQgb24geW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7dW9sa2tCb2xra2VvbGtrSG9sa2tQb2xra2lvbGtrc29sa2tZJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjBzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyN1b2xra0JvbGtrZW9sa2tIb2xra1BvbGtraW9sa2tzb2xra1kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhhdOKAmXMgd2hhdCBmcmllbmRzIGFyZSBmb3ImcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDNfM18yMyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoYXTigJlzIHdoYXQgZnJpZW5kcyBhcmUgZm9yJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwM18zXzIzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ3NCIgbmFtZT0iSGFpbGV5Q2hhdEVwNF8xXzEiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSw1OTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1VvbGtram9sa2tZb2xra0lvbGtrbm9sa2tDb2xra09vbGtrSyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I1VvbGtram9sa2tZb2xra0lvbGtrbm9sa2tDb2xra09vbGtrSyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtIZXkgSGFpbGV5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXA0XzFfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0hleSBIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXA0XzFfMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ3NSIgbmFtZT0iSGFpbGV5Q2hhdEVwNF8xXzIiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCw1OTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwNF8xXzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtIZXkgSGFpbGV5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hleSBIYWlsZXkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtIZXkgSGFpbGV5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtIZXkgYWdhaW4mcXVvdDsgJnF1b3Q7Um9sa2tib2xra3pvbGtrTG9sa2tQb2xra09vbGtrUW9sa2twb2xra2NvbGtrQ29sa2tGb2xra1lvbGtrU29sa2tGb2xra3RvbGtrRCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hleSBhZ2FpbiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0hleSBhZ2FpbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1doYXTigJlzIHVwICRuYW1lPyZxdW90OyAmcXVvdDtob2xra3BvbGtrVW9sa2t3b2xra1NvbGtrZW9sa2tOb2xra0VvbGtrUG9sa2tRb2xra25vbGtrZ29sa2tLb2xra3BvbGtrdG9sa2tEJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2hhdOKAmXMgdXAgJG5hbWU/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7V2hhdOKAmXMgdXAgJG5hbWU/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7dW9sa2tFb2xra0dvbGtrYm9sa2t1b2xra0JvbGtrWm9sa2tEJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjBzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyN1b2xra0VvbGtrR29sa2tib2xra3VvbGtrQm9sa2tab2xra0QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SnVzdCB3YW50ZWQgdG8gbGV0IHlvdSBrbm93IHRoYXQgQW5uaWUgd2lsbCBicmluZyB0aGUgZmlsZXMgdG8gdGhlIG9mZmljZSBoZXJzZWxmJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXA0XzFfMyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0p1c3Qgd2FudGVkIHRvIGxldCB5b3Uga25vdyB0aGF0IEFubmllIHdpbGwgYnJpbmcgdGhlIGZpbGVzIHRvIHRoZSBvZmZpY2UgaGVyc2VsZiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O0hhaWxleUNoYXRFcDRfMV8zJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ3NiIgbmFtZT0iSGFpbGV5Q2hhdEVwNF8xXzMiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSw1OTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwNF8xXzMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtKdXN0IHdhbnRlZCB0byBsZXQgeW91IGtub3cgdGhhdCBBbm5pZSB3aWxsIGJyaW5nIHRoZSBmaWxlcyB0byB0aGUgb2ZmaWNlIGhlcnNlbGYmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SnVzdCB3YW50ZWQgdG8gbGV0IHlvdSBrbm93IHRoYXQgQW5uaWUgd2lsbCBicmluZyB0aGUgZmlsZXMgdG8gdGhlIG9mZmljZSBoZXJzZWxmJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SnVzdCB3YW50ZWQgdG8gbGV0IHlvdSBrbm93IHRoYXQgQW5uaWUgd2lsbCBicmluZyB0aGUgZmlsZXMgdG8gdGhlIG9mZmljZSBoZXJzZWxmJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0RvbGtrVm9sa2tLb2xra2lvbGtrQm9sa2tOb2xra0pvbGtrRyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjRG9sa2tWb2xra0tvbGtraW9sa2tCb2xra05vbGtrSm9sa2tHJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1NoZSBoYXMgc29tZSB0aW1lIGFyb3VuZCBub29uJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXA0XzFfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1NoZSBoYXMgc29tZSB0aW1lIGFyb3VuZCBub29uJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwNF8xXzQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDc3IiBuYW1lPSJIYWlsZXlDaGF0RXA0XzFfNCIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDU5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXA0XzFfNCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1NoZSBoYXMgc29tZSB0aW1lIGFyb3VuZCBub29uJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1NoZSBoYXMgc29tZSB0aW1lIGFyb3VuZCBub29uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7U2hlIGhhcyBzb21lIHRpbWUgYXJvdW5kIG5vb24mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O09oLCB0aGF04oCZcyBncmVhdCZxdW90OyAmcXVvdDtIb2xra0hvbGtrRW9sa2tib2xra1hvbGtrQm9sa2thb2xra0NvbGtrYm9sa2tYb2xra1VvbGtrcW9sa2tub2xra1RvbGtrc29sa2t0JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2gsIHRoYXTigJlzIGdyZWF0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7T2gsIHRoYXTigJlzIGdyZWF0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SeKAmW0gcmVhbGx5IGJ1c3kgdG9kYXkgdGJoJnF1b3Q7ICZxdW90O0pvbGtrU29sa2tXb2xra3dvbGtrY29sa2tSb2xra3dvbGtrbG9sa2tBb2xra29vbGtrZW9sa2tsb2xra1RvbGtrWW9sa2tYb2xra1EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSByZWFsbHkgYnVzeSB0b2RheSB0YmgmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJ4oCZbSByZWFsbHkgYnVzeSB0b2RheSB0YmgmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAyLjFzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtCdXQgdGVsbCBoZXIgdG8gbGV0IG1lIGtub3cgd2hlbiBzaGUgZ2V0cyB0byB0aGUgbWFpbiBvZmZpY2UsIGFuZCBJ4oCZbGwgY29tZSBwaWNrIHRoZW0gdXAgbXlzZWxmJnF1b3Q7ICZxdW90O2FvbGtrb29sa2tvb2xra1VvbGtrV29sa2twb2xra1VvbGtrY29sa2tvb2xra2xvbGtrbG9sa2tyb2xra29vbGtrc29sa2tPb2xra3gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgdGVsbCBoZXIgdG8gbGV0IG1lIGtub3cgd2hlbiBzaGUgZ2V0cyB0byB0aGUgbWFpbiBvZmZpY2UsIGFuZCBJ4oCZbGwgY29tZSBwaWNrIHRoZW0gdXAgbXlzZWxmJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QnV0IHRlbGwgaGVyIHRvIGxldCBtZSBrbm93IHdoZW4gc2hlIGdldHMgdG8gdGhlIG1haW4gb2ZmaWNlLCBhbmQgSeKAmWxsIGNvbWUgcGljayB0aGVtIHVwIG15c2VsZiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O29vbGtrbG9sa2tSb2xra2xvbGtrc29sa2thb2xra1VvbGtrciZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNS4wcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjb29sa2tsb2xra1JvbGtrbG9sa2tzb2xra2FvbGtrVW9sa2tyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1BlcmZlY3QsIEnigJlsbCBkbyB0aGF0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXA0XzFfNSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1BlcmZlY3QsIEnigJlsbCBkbyB0aGF0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwNF8xXzUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDc4IiBuYW1lPSJIYWlsZXlDaGF0RXA0XzFfNSIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDU5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXA0XzFfNSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1BlcmZlY3QsIEnigJlsbCBkbyB0aGF0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1BlcmZlY3QsIEnigJlsbCBkbyB0aGF0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7UGVyZmVjdCwgSeKAmWxsIGRvIHRoYXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O09oLCBvbmUgbW9yZSB0aGluZyAkbmFtZSZxdW90OyAmcXVvdDtYb2xra21vbGtrSm9sa2tkb2xra0VvbGtrcW9sa2tBb2xra3RvbGtrVm9sa2t6b2xra1RvbGtreW9sa2tYb2xra1hvbGtrU29sa2tKJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2gsIG9uZSBtb3JlIHRoaW5nICRuYW1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7T2gsIG9uZSBtb3JlIHRoaW5nICRuYW1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7U29sa2t5b2xra09vbGtrV29sa2tQb2xra2lvbGtrS29sa2tzJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxLjRzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNTb2xra3lvbGtrT29sa2tXb2xra1BvbGtraW9sa2tLb2xra3MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WWVhaD8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDRfMV82JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WWVhaD8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXA0XzFfNiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0NzkiIG5hbWU9IkhhaWxleUNoYXRFcDRfMV82IiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDU5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSAgPSAmcXVvdDtIYWlsZXlDaGF0RXA0XzFfNiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1llYWg/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1llYWg/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7WWVhaD8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0lzIGl0IG9rYXkgaWYgeW91ciBnaXJsZnJpZW5kIGZpbmRzIG91dCBhYm91dCB5b3UgaGVscGluZyBtZSBsaWtlIHRoaXM/JnF1b3Q7ICZxdW90O2dvbGtrcm9sa2tnb2xra3VvbGtrVm9sa2tYb2xra0lvbGtrSG9sa2tEb2xra1dvbGtrU29sa2txb2xra01vbGtrem9sa2txb2xra2MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJcyBpdCBva2F5IGlmIHlvdXIgZ2lybGZyaWVuZCBmaW5kcyBvdXQgYWJvdXQgeW91IGhlbHBpbmcgbWUgbGlrZSB0aGlzPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0lzIGl0IG9rYXkgaWYgeW91ciBnaXJsZnJpZW5kIGZpbmRzIG91dCBhYm91dCB5b3UgaGVscGluZyBtZSBsaWtlIHRoaXM/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS43cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSBtZWFuLCBJ4oCZbSBub3QgcGxhbm5pbmcgdG8gYnJpbmcgaXQgdXAgd2hlbiBJIHNlZSBoZXIgb3IgYW55dGhpbmcgbGlrZSB0aGF0JnF1b3Q7ICZxdW90O0JvbGtrUm9sa2t0b2xra2ZvbGtrVm9sa2txb2xra1pvbGtrQW9sa2tEb2xra3NvbGtrQW9sa2txb2xra0ZvbGtrR29sa2t5b2xra3kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIG1lYW4sIEnigJltIG5vdCBwbGFubmluZyB0byBicmluZyBpdCB1cCB3aGVuIEkgc2VlIGhlciBvciBhbnl0aGluZyBsaWtlIHRoYXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIG1lYW4sIEnigJltIG5vdCBwbGFubmluZyB0byBicmluZyBpdCB1cCB3aGVuIEkgc2VlIGhlciBvciBhbnl0aGluZyBsaWtlIHRoYXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAzLjBzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJ4oCZbSBqdXN0IGFza2luZyBpZiBpdOKAmXMgbm9ybWFsIGZvciBhIGZyaWVuZCBsaWtlIHlvdSB0byBoZWxwIG1lIHdpdGggb3RoZXIgZ3V5cywgb3IgaWYgSSBzaG91bGQgYXZvaWQgbWVudGlvbmluZyBpdCBpZiB0aGUgdG9waWMgZXZlciBjb21lcyB1cCZxdW90OyAmcXVvdDtZb2xra0tvbGtrQ29sa2tqb2xra09vbGtrVG9sa2tJb2xra2FvbGtrUG9sa2tLb2xra2xvbGtrSm9sa2tFb2xra2tvbGtrSm9sa2tLJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0ganVzdCBhc2tpbmcgaWYgaXTigJlzIG5vcm1hbCBmb3IgYSBmcmllbmQgbGlrZSB5b3UgdG8gaGVscCBtZSB3aXRoIG90aGVyIGd1eXMsIG9yIGlmIEkgc2hvdWxkIGF2b2lkIG1lbnRpb25pbmcgaXQgaWYgdGhlIHRvcGljIGV2ZXIgY29tZXMgdXAmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJ4oCZbSBqdXN0IGFza2luZyBpZiBpdOKAmXMgbm9ybWFsIGZvciBhIGZyaWVuZCBsaWtlIHlvdSB0byBoZWxwIG1lIHdpdGggb3RoZXIgZ3V5cywgb3IgaWYgSSBzaG91bGQgYXZvaWQgbWVudGlvbmluZyBpdCBpZiB0aGUgdG9waWMgZXZlciBjb21lcyB1cCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O2VvbGtrem9sa2tob2xra1JvbGtram9sa2tRb2xra1VvbGtrQiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgOC4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjZW9sa2t6b2xra2hvbGtrUm9sa2tqb2xra1FvbGtrVW9sa2tCJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1llYWgsIGl04oCZcyBjb21wbGV0ZWx5IG5vcm1hbCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwNF8xXzdhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WWVhaCwgaXTigJlzIGNvbXBsZXRlbHkgbm9ybWFsJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwNF8xXzdhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNlb2xra3pvbGtraG9sa2tSb2xra2pvbGtrUW9sa2tVb2xra0ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SSB3b3VsZCBwcmVmZXIgaWYgeW91IGRpZG7igJl0IG1lbnRpb24gaXQgdG8gaGVyJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXA0XzFfN2ImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIHdvdWxkIHByZWZlciBpZiB5b3UgZGlkbuKAmXQgbWVudGlvbiBpdCB0byBoZXImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXA0XzFfN2ImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDgwIiBuYW1lPSJIYWlsZXlDaGF0RXA0XzFfN2EiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsNTk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDRfMV83YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1llYWgsIGl04oCZcyBjb21wbGV0ZWx5IG5vcm1hbCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFoLCBpdOKAmXMgY29tcGxldGVseSBub3JtYWwmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtZZWFoLCBpdOKAmXMgY29tcGxldGVseSBub3JtYWwmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGhhaWxleV9hbm5pZSA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Zm9sa2tlb2xra1JvbGtrT29sa2tSb2xra3FvbGtrWm9sa2tMJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNmb2xra2VvbGtrUm9sa2tPb2xra1JvbGtrcW9sa2tab2xra0wmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7RmVlbCBmcmVlIHRvIG1lbnRpb24gaXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDRfMV84YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0ZlZWwgZnJlZSB0byBtZW50aW9uIGl0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwNF8xXzhhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ4MSIgbmFtZT0iSGFpbGV5Q2hhdEVwNF8xXzdiIiB0YWdzPSIiIHBvc2l0aW9uPSIxMDAsNjEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDRfMV83YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgd291bGQgcHJlZmVyIGlmIHlvdSBkaWRu4oCZdCBtZW50aW9uIGl0IHRvIGhlciZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIHdvdWxkIHByZWZlciBpZiB5b3UgZGlkbuKAmXQgbWVudGlvbiBpdCB0byBoZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJIHdvdWxkIHByZWZlciBpZiB5b3UgZGlkbuKAmXQgbWVudGlvbiBpdCB0byBoZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfbm90ZXMucHVzaCgmcXVvdDtJIGFza2VkIGhlciBub3QgdG8gdGVsbCBBbm5pZSBhbnl0aGluZyBhYm91dCBtZSBoZWxwaW5nIGhlciBnZXQgbGFpZCB3aXRoIGd1eXMuJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJGhhaWxleV9hbm5pZSA9IGZhbHNlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0RvbGtrdm9sa2tRb2xra3dvbGtrc29sa2tHb2xra1ZvbGtrbCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjRG9sa2t2b2xra1FvbGtrd29sa2tzb2xra0dvbGtrVm9sa2tsJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0nigJltIG5vdCBzYXlpbmcgaXTigJlzIG5vdCBub3JtYWwmcXVvdDssIHBhc3NhZ2U6ICZxdW90O0hhaWxleUNoYXRFcDRfMV84YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0nigJltIG5vdCBzYXlpbmcgaXTigJlzIG5vdCBub3JtYWwmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXA0XzFfOGImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDgyIiBuYW1lPSJIYWlsZXlDaGF0RXA0XzFfOGEiIHRhZ3M9IiIgcG9zaXRpb249IjIyNSw2MTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwNF8xXzhhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7RmVlbCBmcmVlIHRvIG1lbnRpb24gaXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7RmVlbCBmcmVlIHRvIG1lbnRpb24gaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtGZWVsIGZyZWUgdG8gbWVudGlvbiBpdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDt4b2xra2VvbGtrcG9sa2tMb2xra0FvbGtrcm9sa2tGb2xra2gmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3hvbGtrZW9sa2twb2xra0xvbGtrQW9sa2tyb2xra0ZvbGtraCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtBbm5pZSB3aWxsIHVuZGVyc3RhbmQganVzdCBmaW5lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXA0XzFfOWEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtBbm5pZSB3aWxsIHVuZGVyc3RhbmQganVzdCBmaW5lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwNF8xXzlhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ4MyIgbmFtZT0iSGFpbGV5Q2hhdEVwNF8xXzlhIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsNjEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDRfMV85YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0FubmllIHdpbGwgdW5kZXJzdGFuZCBqdXN0IGZpbmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5uaWUgd2lsbCB1bmRlcnN0YW5kIGp1c3QgZmluZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0FubmllIHdpbGwgdW5kZXJzdGFuZCBqdXN0IGZpbmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0FoaCwgZ3JlYXQgdGhlbiZxdW90OyAmcXVvdDtMb2xra2hvbGtrVG9sa2trb2xra0JvbGtram9sa2tJb2xra1RvbGtreG9sa2tPb2xra0hvbGtrR29sa2txb2xra01vbGtrZ29sa2t6JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QWhoLCBncmVhdCB0aGVuJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7QWhoLCBncmVhdCB0aGVuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SSBmZWVsIGJldHRlciBrbm93aW5nIGl0IHdvbuKAmXQgY2F1c2UgYW55IGNvbmZsaWN0IGluIHRoZSBmdXR1cmUmcXVvdDsgJnF1b3Q7Tm9sa2tjb2xra1lvbGtrcG9sa2tRb2xra1lvbGtraG9sa2tqb2xra3NvbGtrS29sa2tmb2xra2ZvbGtrZ29sa2tib2xra2pvbGtrTyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZmVlbCBiZXR0ZXIga25vd2luZyBpdCB3b27igJl0IGNhdXNlIGFueSBjb25mbGljdCBpbiB0aGUgZnV0dXJlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SSBmZWVsIGJldHRlciBrbm93aW5nIGl0IHdvbuKAmXQgY2F1c2UgYW55IGNvbmZsaWN0IGluIHRoZSBmdXR1cmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7a29sa2tvb2xra0JvbGtrWW9sa2tSb2xra1dvbGtrVm9sa2ttJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAzLjBzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNrb2xra29vbGtrQm9sa2tZb2xra1JvbGtrV29sa2tWb2xra20mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7T2YgY291cnNlLCBkb27igJl0IHdvcnJ5IGFib3V0IGl0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXA0XzFfMTBhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7T2YgY291cnNlLCBkb27igJl0IHdvcnJ5IGFib3V0IGl0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwNF8xXzEwYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0ODQiIG5hbWU9IkhhaWxleUNoYXRFcDRfMV8xMGEiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSw2MTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwNF8xXzEwYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O09mIGNvdXJzZSwgZG9u4oCZdCB3b3JyeSBhYm91dCBpdCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtPZiBjb3Vyc2UsIGRvbuKAmXQgd29ycnkgYWJvdXQgaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtPZiBjb3Vyc2UsIGRvbuKAmXQgd29ycnkgYWJvdXQgaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1dlbGwsIEnigJl2ZSBnb3QgdG8gZ2V0IGJhY2sgdG8gd29yayBoZXJlJnF1b3Q7ICZxdW90O0dvbGtrbW9sa2tsb2xra1ZvbGtraG9sa2trb2xra09vbGtram9sa2tYb2xra2lvbGtrQ29sa2tXb2xra3VvbGtrV29sa2tGb2xra2gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZWxsLCBJ4oCZdmUgZ290IHRvIGdldCBiYWNrIHRvIHdvcmsgaGVyZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1dlbGwsIEnigJl2ZSBnb3QgdG8gZ2V0IGJhY2sgdG8gd29yayBoZXJlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuOHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS40cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7UmVtZW1iZXIgdG8gdGVsbCBBbm5pZSB0byBjYWxsIG1lIGtub3cgd2hlbiBzaGUgZ2V0cyB0byB0aGUgYnVpbGRpbmcmcXVvdDsgJnF1b3Q7V29sa2tyb2xra1ZvbGtrd29sa2tub2xra1JvbGtrRW9sa2tTb2xra0xvbGtrZG9sa2tnb2xra2JvbGtrd29sa2tqb2xra05vbGtrciZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1JlbWVtYmVyIHRvIHRlbGwgQW5uaWUgdG8gY2FsbCBtZSBrbm93IHdoZW4gc2hlIGdldHMgdG8gdGhlIGJ1aWxkaW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7UmVtZW1iZXIgdG8gdGVsbCBBbm5pZSB0byBjYWxsIG1lIGtub3cgd2hlbiBzaGUgZ2V0cyB0byB0aGUgYnVpbGRpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDt0b2xra2ZvbGtrVW9sa2tab2xra1BvbGtrTG9sa2tCb2xra1EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuOHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I3RvbGtrZm9sa2tVb2xra1pvbGtrUG9sa2tMb2xra0JvbGtrUSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtHb3QgaXQgSGFpbGV5LCBJ4oCZbGwgZG8gdGhhdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwNF8xXzExYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0dvdCBpdCBIYWlsZXksIEnigJlsbCBkbyB0aGF0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwNF8xXzExYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0ODUiIG5hbWU9IkhhaWxleUNoYXRFcDRfMV8xMWEiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCw2MTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwNF8xXzExYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0dvdCBpdCBIYWlsZXksIEnigJlsbCBkbyB0aGF0JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0dvdCBpdCBIYWlsZXksIEnigJlsbCBkbyB0aGF0JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7R290IGl0IEhhaWxleSwgSeKAmWxsIGRvIHRoYXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Rm9sa2tzb2xra1pvbGtrU29sa2t5b2xra1lvbGtrbG9sa2t5JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdElkICA9ICZxdW90OyNGb2xra3NvbGtrWm9sa2tTb2xra3lvbGtrWW9sa2tsb2xra3kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhhbmtzIGFnYWluJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXA0XzFfMTJhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhhbmtzIGFnYWluJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwNF8xXzEyYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0ODYiIG5hbWU9IkhhaWxleUNoYXRFcDRfMV8xMmEiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSw2MTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwNF8xXzEyYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1RoYW5rcyBhZ2FpbiZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGFua3MgYWdhaW4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtUaGFua3MgYWdhaW4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1RoYW5rcyBhZ2FpbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlID0gJnF1b3Q7SGFpbGV5Q2hhdEVwNF8xXzEyYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdF9ob3VyID0gJnF1b3Q7MTE6MzYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXQgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRob3VyID0gJnF1b3Q7MTE6MzYmcXVvdDsmZ3Q7Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O29mZmxpbmUtdGV4dCZxdW90OyZndDtIYWlsZXkgaXMgb2ZmbGluZSZsdDsvZGl2Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdCA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSA9ICZxdW90O0FubmllQ2hhdEVwNF8xXzEmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIZXkgaG9uZXkmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDg3IiBuYW1lPSJIYWlsZXlDaGF0RXA0XzFfOGIiIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCw2MTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgID0gJnF1b3Q7SGFpbGV5Q2hhdEVwNF8xXzhiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJEhhaWxleV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SeKAmW0gbm90IHNheWluZyBpdOKAmXMgbm90IG5vcm1hbCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBub3Qgc2F5aW5nIGl04oCZcyBub3Qgbm9ybWFsJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SeKAmW0gbm90IHNheWluZyBpdOKAmXMgbm90IG5vcm1hbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtLb2xra1RvbGtrRm9sa2t3b2xra1NvbGtrc29sa2tvb2xra1gmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I0tvbGtrVG9sa2tGb2xra3dvbGtrU29sa2tzb2xra29vbGtrWCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtCdXQgeW91IGtub3cgaG93IGdpcmxmcmllbmRzIGFjdCBzb21ldGltZXMsIHNoZSBtaWdodCBnZXQgamVhbG91cyBmb3Igbm8gcmVhc29uJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXA0XzFfOWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtCdXQgeW91IGtub3cgaG93IGdpcmxmcmllbmRzIGFjdCBzb21ldGltZXMsIHNoZSBtaWdodCBnZXQgamVhbG91cyBmb3Igbm8gcmVhc29uJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwNF8xXzliJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ4OCIgbmFtZT0iSGFpbGV5Q2hhdEVwNF8xXzliIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsNjEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDRfMV85YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRIYWlsZXlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0J1dCB5b3Uga25vdyBob3cgZ2lybGZyaWVuZHMgYWN0IHNvbWV0aW1lcywgc2hlIG1pZ2h0IGdldCBqZWFsb3VzIGZvciBubyByZWFzb24mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IHlvdSBrbm93IGhvdyBnaXJsZnJpZW5kcyBhY3Qgc29tZXRpbWVzLCBzaGUgbWlnaHQgZ2V0IGplYWxvdXMgZm9yIG5vIHJlYXNvbiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0J1dCB5b3Uga25vdyBob3cgZ2lybGZyaWVuZHMgYWN0IHNvbWV0aW1lcywgc2hlIG1pZ2h0IGdldCBqZWFsb3VzIGZvciBubyByZWFzb24mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1VtbSwgc3VyZSwgSSBnZXQgaXQmcXVvdDsgJnF1b3Q7bG9sa2tIb2xra2tvbGtra29sa2twb2xra0lvbGtrUm9sa2t6b2xra1BvbGtrV29sa2tCb2xra2dvbGtrbm9sa2tHb2xra3BvbGtrbCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtIYWlsZXkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1VtbSwgc3VyZSwgSSBnZXQgaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtVbW0sIHN1cmUsIEkgZ2V0IGl0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtIYWlsZXkmcXVvdDsgJnF1b3Q7SXTigJlzIGdvb2QgSSBhc2tlZCB0aGVuJnF1b3Q7ICZxdW90O3BvbGtrcG9sa2tKb2xra0hvbGtrWm9sa2tmb2xra0tvbGtrZm9sa2tob2xra2FvbGtrQm9sa2tjb2xra2dvbGtrT29sa2t0b2xra0EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdOKAmXMgZ29vZCBJIGFza2VkIHRoZW4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtJdOKAmXMgZ29vZCBJIGFza2VkIHRoZW4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi41cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjNzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtJ4oCZbGwgbWFrZSBzdXJlIHRvIG5ldmVyIGJyaW5nIHRoaXMgdXAgaW4gZnJvbnQgb2YgeW91ciBnaXJsZnJpZW5kJnF1b3Q7ICZxdW90O1RvbGtrVW9sa2tab2xra2xvbGtrem9sa2tnb2xra25vbGtraW9sa2tSb2xra3BvbGtrZm9sa2tib2xra1RvbGtrc29sa2twb2xra1AmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbGwgbWFrZSBzdXJlIHRvIG5ldmVyIGJyaW5nIHRoaXMgdXAgaW4gZnJvbnQgb2YgeW91ciBnaXJsZnJpZW5kJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SeKAmWxsIG1ha2Ugc3VyZSB0byBuZXZlciBicmluZyB0aGlzIHVwIGluIGZyb250IG9mIHlvdXIgZ2lybGZyaWVuZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtSb2xra3hvbGtrVm9sa2tmb2xra1JvbGtrWW9sa2tVb2xra0ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuNHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0SWQgID0gJnF1b3Q7I1JvbGtreG9sa2tWb2xra2ZvbGtrUm9sa2tZb2xra1VvbGtrQiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZZWFoLCBJIHRoaW5rIHRoYXTigJlzIGZvciB0aGUgYmVzdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7SGFpbGV5Q2hhdEVwNF8xXzEwYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1llYWgsIEkgdGhpbmsgdGhhdOKAmXMgZm9yIHRoZSBiZXN0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7SGFpbGV5Q2hhdEVwNF8xXzEwYiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0ODkiIG5hbWU9IkhhaWxleUNoYXRFcDRfMV8xMGIiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsNjEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlICA9ICZxdW90O0hhaWxleUNoYXRFcDRfMV8xMGImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkSGFpbGV5X2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtZZWFoLCBJIHRoaW5rIHRoYXTigJlzIGZvciB0aGUgYmVzdCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZZWFoLCBJIHRoaW5rIHRoYXTigJlzIGZvciB0aGUgYmVzdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1llYWgsIEkgdGhpbmsgdGhhdOKAmXMgZm9yIHRoZSBiZXN0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtXZWxsICRuYW1lLCBJ4oCZdmUgZ290IHRvIGdldCBiYWNrIHRvIHdvcmsgaGVyZSZxdW90OyAmcXVvdDtEb2xra0tvbGtrYm9sa2tHb2xra0NvbGtrUm9sa2tib2xra2NvbGtrYm9sa2trb2xra0pvbGtrcm9sa2tGb2xra3hvbGtrQm9sa2tCJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O0hhaWxleSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2VsbCAkbmFtZSwgSeKAmXZlIGdvdCB0byBnZXQgYmFjayB0byB3b3JrIGhlcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDtXZWxsICRuYW1lLCBJ4oCZdmUgZ290IHRvIGdldCBiYWNrIHRvIHdvcmsgaGVyZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNHMgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O1JlbWVtYmVyIHRvIHRlbGwgQW5uaWUgdG8gY2FsbCBtZSBrbm93IHdoZW4gc2hlIGdldHMgdG8gdGhlIGJ1aWxkaW5nJnF1b3Q7ICZxdW90O09vbGtreW9sa2tHb2xra0ZvbGtrcG9sa2tvb2xra3lvbGtrbW9sa2tnb2xra0VvbGtrWm9sa2tKb2xra25vbGtrWW9sa2tub2xra3UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7SGFpbGV5JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtSZW1lbWJlciB0byB0ZWxsIEFubmllIHRvIGNhbGwgbWUga25vdyB3aGVuIHNoZSBnZXRzIHRvIHRoZSBidWlsZGluZyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1JlbWVtYmVyIHRvIHRlbGwgQW5uaWUgdG8gY2FsbCBtZSBrbm93IHdoZW4gc2hlIGdldHMgdG8gdGhlIGJ1aWxkaW5nJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2VvbGtrbm9sa2tYb2xra0RvbGtrSW9sa2tYb2xra2VvbGtrRiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMy45cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3RJZCAgPSAmcXVvdDsjZW9sa2tub2xra1hvbGtrRG9sa2tJb2xra1hvbGtrZW9sa2tGJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0dvdCBpdCBIYWlsZXksIEnigJlsbCBkbyB0aGF0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtIYWlsZXlDaGF0RXA0XzFfMTFhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7R290IGl0IEhhaWxleSwgSeKAmWxsIGRvIHRoYXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtIYWlsZXlDaGF0RXA0XzFfMTFhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ5MCIgbmFtZT0iSGFpbGV5X25vdGUiIHRhZ3M9Im5vdGVzaW4gbm90aG91ciIgcG9zaXRpb249IjEyMjUsNjEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtoZWFkZXIgJnF1b3Q7SGFpbGV5JnF1b3Q7ICZxdW90O0hhaWxleSZxdW90OyAmcXVvdDtOb3RlcyZxdW90OyB0cnVlJmd0OyZndDsKICAgICZsdDtkaXYgaWQ9JnF1b3Q7cGFkZGluZy1jb250YWluZXImcXVvdDsgY2xhc3M9JnF1b3Q7dGV4dF9ibGFjayZxdW90OyZndDsKICAgICAgICAmbHQ7ZGl2Jmd0Oy0gU2hl4oCZcyBhIGNvd29ya2VyLiBFdmVyIHNpbmNlIHNoZSBqb2luZWQgdGhlIGNvbXBhbnksIEkgZGVjaWRlZCB0byBoZWxwIGhlciBmaXQgaW4gZmFzdGVyLiBTaGXigJlzIGEgdmVyeSByZXNwb25zaWJsZSBhbmQgaGFyZHdvcmtpbmcgZ2lybCwgdGhvdWdoIHNoZSBzZWVtcyBhIGJpdCBsb25lbHkuJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDtmb3IgX2kgcmFuZ2UgJEhhaWxleV9ub3RlcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgc3R5bGU9JnF1b3Q7bWFyZ2luLXRvcDogMTZweCZxdW90OyZndDstIF9pJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDsvZm9yJmd0OyZndDsKICAgICZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ5MSIgbmFtZT0iSmVubmFfY2hhdCIgdGFncz0ibWFwcCBub3Rob3VyIiBwb3NpdGlvbj0iMTAwLDYyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7Ci8qcmVnaW9uIEVtaWx5IGNoYXQqLwombHQ7Jmx0O2lmICRwbWRscCA9PSB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJEplbm5hX2NoYXQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtoZWFkZXIgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsgJEplbm5hX3BhdXNlZCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtoZWFkZXIgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsgdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aGVhZGVyICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7bWVzc2FnZV9jb250YWluZXImcXVvdDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O0plbm5hJnF1b3Q7ICZxdW90O0plbm5hIGlzIGFuIGV4Y2x1c2l2ZSBjaGFyYWN0ZXIgZm9yIFBhdHJlb24gc3VwcG9ydGVycy4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMXMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfaW1nICZxdW90O2Fzc2V0cy9pbWcvcHJlbWl1bS9KZW5uYS9qZW5uYV9waG90b18wMC53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7UG9sa2tXb2xra0NvbGtrcG9sa2tTb2xra3VvbGtrc29sa2tNb2xra2NvbGtrd29sa2tDb2xra1JvbGtrVW9sa2tXb2xra0ZvbGtrayZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNXMgJnF1b3Q7SmVubmEmcXVvdDsgJnF1b3Q7VGhpcyBjaGF0IGluY2x1ZGVzIGEgc3RvcnlsaW5lIHdpdGggYW4gZXgtY293ZXJrZXIgdGhhdCBub3cgaXMgYSBuc2Z3IGNvbnRlbnQgY3JlYXRvci4mcXVvdDsgJnF1b3Q7TW9sa2t6b2xra2pvbGtrRW9sa2tMb2xra3FvbGtrRm9sa2tqb2xra0lvbGtrWW9sa2tWb2xra2dvbGtrd29sa2t2b2xra2pvbGtraiZxdW90OygpJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS41cyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtUaGlzIHJvdXRlIGlzIG9ubHkgYXZhaWxhYmxlIGluIHRoZSBwcmVtaXVtIHZlcnNpb24sIHlvdSBjYW4gYWNjZXNzIGl0IGJ5IGRvd25sb2FkaW5nIGl0IGZyb20gb3VyIFBhdHJlb24gcGFnZS4KJnF1b3Q7ICZxdW90O3JvbGtrUW9sa2tCb2xra09vbGtrRm9sa2t1b2xra2hvbGtrTW9sa2ttb2xra1VvbGtrbG9sa2tKb2xra3FvbGtrVW9sa2thb2xra3ImcXVvdDsoKSZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICBzZXR1cC5zY3JvbGwoKTsKICAgICAgICAgICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDtlbmQmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2NoYXRfYmFyJnF1b3Q7Jmd0OwogICAgJmx0O2RpdiBpZD0mcXVvdDtjb250ZW50JnF1b3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkcG1kbHAgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgCiAgICAgICAgJmx0OyZsdDtpZiAkSmVubmFfcGF1c2VkID09IHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2lmICRKZW5uYV9vcHRpb25zWzBdJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7bGluayAkSmVubmFfb3B0aW9uc1swXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJEplbm5hX29wdGlvbnNbMF0ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2lmICRKZW5uYV9vcHRpb25zWzFdJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7bGluayAkSmVubmFfb3B0aW9uc1sxXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJEplbm5hX29wdGlvbnNbMV0ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2lmICRKZW5uYV9vcHRpb25zWzJdJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7bGluayAkSmVubmFfb3B0aW9uc1syXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJEplbm5hX29wdGlvbnNbMl0ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2lmICRKZW5uYV9vcHRpb25zWzNdJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7bGluayAkSmVubmFfb3B0aW9uc1szXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJEplbm5hX29wdGlvbnNbM10ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICZxdW90O1VubG9jayBQcmVtaXVtIENvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O3J1biB3aW5kb3cub3BlbigmcXVvdDtodHRwczovL3d3dy5wYXRyZW9uLmNvbS9UaGVQaG9uZUd1eSZxdW90OywgJnF1b3Q7X2JsYW5rJnF1b3Q7KSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7dGltZWQgMC4ycyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsSW5zdGEoKTsKICAgICZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0OTIiIG5hbWU9Ikplbm5hX25vdGUiIHRhZ3M9Im5vdGVzaW4gbm90aG91ciIgcG9zaXRpb249IjIyNSw2MjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2hlYWRlciAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtKZW5uYSZxdW90OyAmcXVvdDtOb3RlcyZxdW90OyB0cnVlJmd0OyZndDsKICAgICZsdDtkaXYgaWQ9JnF1b3Q7cGFkZGluZy1jb250YWluZXImcXVvdDsgY2xhc3M9JnF1b3Q7dGV4dF9ibGFjayZxdW90OyZndDsKICAgICAgICAmbHQ7ZGl2Jmd0Oy0gV2Ugam9pbmVkIHRoZSBjb21wYW55IGFyb3VuZCB0aGUgc2FtZSB0aW1lLiBJIGNvbnNpZGVyZWQgaGVyIGEgZ29vZCBmcmllbmQgdW50aWwgTXIuIFBoaWxsaXBzIHRhcmdldGVkIGhlciBhbmQgZ290IGhlciBmaXJlZC4gQWZ0ZXIgdGhhdCwgc2hlIGp1c3QgZGlzYXBwZWFyZWQgYW5kIEkgbmV2ZXIgaGVhcmQgYW55dGhpbmcgYWJvdXQgaGVyIGxpZmUgYWdhaW4uJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDtmb3IgX2kgcmFuZ2UgJEplbm5hX25vdGVzJmd0OyZndDsKICAgICAgICAgICAgJmx0O2RpdiBzdHlsZT0mcXVvdDttYXJnaW4tdG9wOiAxNnB4JnF1b3Q7Jmd0Oy0gX2kmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7Jmx0Oy9mb3ImZ3Q7Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNDkzIiBuYW1lPSJOYW9taV9jaGF0IiB0YWdzPSJtYXBwIG5vdGhvdXIiIHBvc2l0aW9uPSIzNTAsNjIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKLypyZWdpb24gRW1pbHkgY2hhdCovCiZsdDsmbHQ7aWYgJE5hb21pX2NoYXQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2hlYWRlciAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyAkTmFvbWlfcGF1c2VkJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtoZWFkZXIgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsgdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDttZXNzYWdlX2NvbnRhaW5lciZxdW90OyZndDsKJmx0OyZsdDtmb3IgX2xpbmUgcmFuZ2UgJE5hb21pX2NoYXRMb2cmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiBfbGluZS50eXBlID09IDEmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCBfbGluZS5zZW5kZXIgX2xpbmUubWVzc2FnZSBfbGluZS5hdmF0YXImZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlaWYgX2xpbmUudHlwZSA9PSAyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VfaW1nIF9saW5lLm1lc3NhZ2UmZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlaWYgX2xpbmUudHlwZSA9PSAzJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VfdmlkZW8gX2xpbmUubWVzc2FnZVswXSBfbGluZS5tZXNzYWdlWzFdJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZWlmIF9saW5lLnR5cGUgPT0gNCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDttZXNzYWdlX2Vtb2ppIF9saW5lLm1lc3NhZ2UgZmFsc2UgX2xpbmUuc2VuZGVyJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDsvZm9yJmd0OyZndDsKJmx0OyZsdDtpZiAkTmFvbWlfcGF1c2VkID09IGZhbHNlJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJE5hb21pX2NoYXQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICROYW9taV9jaGF0U3RhdGUmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAmbHQ7ZGl2IEBpZD0mcXVvdDskTmFvbWlfbGFzdElkLnNsaWNlKDEpJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7ZW5kJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwombHQ7L2RpdiZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtjaGF0X2JhciZxdW90OyZndDsKJmx0O2RpdiBpZD0mcXVvdDtjb250ZW50JnF1b3Q7Jmd0OwombHQ7Jmx0O2lmICROYW9taV9wYXVzZWQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICROYW9taV9vcHRpb25zWzBdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJE5hb21pX29wdGlvbnNbMF0udGV4dCZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkTmFvbWlfb3B0aW9uc1swXS5wYXNzYWdlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJE5hb21pX29wdGlvbnNbMV0mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bGluayAkTmFvbWlfb3B0aW9uc1sxXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpbmNsdWRlICROYW9taV9vcHRpb25zWzFdLnBhc3NhZ2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkTmFvbWlfb3B0aW9uc1syXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICROYW9taV9vcHRpb25zWzJdLnRleHQmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJE5hb21pX29wdGlvbnNbMl0ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICROYW9taV9vcHRpb25zWzNdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJE5hb21pX29wdGlvbnNbM10udGV4dCZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkTmFvbWlfb3B0aW9uc1szXS5wYXNzYWdlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7L2RpdiZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7dGltZWQgMC4ycyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsSW5zdGEoKTsKICAgICZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0OTQiIG5hbWU9Ik5hb21pU3RhcnQxIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsNjIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtIb25lc3RseSwgSSBoYXZlIHRvIGNvbmdyYXR1bGF0ZSB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hvbmVzdGx5LCBJIGhhdmUgdG8gY29uZ3JhdHVsYXRlIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7SG9uZXN0bHksIEkgaGF2ZSB0byBjb25ncmF0dWxhdGUgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1pvbGtrdG9sa2tPb2xra05vbGtrS29sa2tQb2xra3FvbGtrTyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RJZCAgPSAmcXVvdDsjWm9sa2t0b2xra09vbGtrTm9sa2tLb2xra1BvbGtrcW9sa2tPJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7TmFvbWk/IEkgdGhvdWdodCB5b3UgaGF0ZWQgbWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O05hb21pU3RhcnQxXzImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtOYW9taT8gSSB0aG91Z2h0IHlvdSBoYXRlZCBtZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O05hb21pU3RhcnQxXzImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0OTUiIG5hbWU9Ik5hb21pU3RhcnQxXzIiIHRhZ3M9IiIgcG9zaXRpb249IjYwMCw2MjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRTdGF0ZSAgPSAmcXVvdDtOYW9taVN0YXJ0MV8yJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkTmFvbWlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O05hb21pPyBJIHRob3VnaHQgeW91IGhhdGVkIG1lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TmFvbWk/IEkgdGhvdWdodCB5b3UgaGF0ZWQgbWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O05hb21pPyBJIHRob3VnaHQgeW91IGhhdGVkIG1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O29vbGtrWm9sa2tib2xra21vbGtrVm9sa2t4b2xra1JvbGtrZyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RJZCAgPSAmcXVvdDsjb29sa2tab2xra2JvbGtrbW9sa2tWb2xra3hvbGtrUm9sa2tnJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7V2hhdCBkbyBJIG93ZSB0aGUgcGxlYXN1cmU/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taVN0YXJ0MV8zJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7V2hhdCBkbyBJIG93ZSB0aGUgcGxlYXN1cmU/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlTdGFydDFfMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0OTYiIG5hbWU9Ik5hb21pU3RhcnQxXzMiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSw2MjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRTdGF0ZSAgPSAmcXVvdDtOYW9taVN0YXJ0MV8zJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkTmFvbWlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1doYXQgZG8gSSBvd2UgdGhlIHBsZWFzdXJlPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1doYXQgZG8gSSBvd2UgdGhlIHBsZWFzdXJlPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7V2hhdCBkbyBJIG93ZSB0aGUgcGxlYXN1cmU/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O0hhdGUgaXMgYSB2ZXJ5IHN0cm9uZyB3b3JkJnF1b3Q7ICZxdW90O1FvbGtrem9sa2tDb2xra1BvbGtrYW9sa2tlb2xra0ZvbGtrUG9sa2tpb2xra0FvbGtrWG9sa2tRb2xra2pvbGtrbW9sa2tIb2xra1UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGF0ZSBpcyBhIHZlcnkgc3Ryb25nIHdvcmQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0hhdGUgaXMgYSB2ZXJ5IHN0cm9uZyB3b3JkJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtMZXTigJlzIGp1c3Qgc2F5IEkgbmV2ZXIgdGhvdWdodCB5b3Ugd2VyZSBnb29kIGVub3VnaCBmb3IgQW5uaWUmcXVvdDsgJnF1b3Q7Ym9sa2t5b2xra0pvbGtrVG9sa2tIb2xra1BvbGtrYW9sa2tOb2xra1RvbGtrbW9sa2t3b2xra2pvbGtram9sa2tvb2xra1lvbGtrTyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtMZXTigJlzIGp1c3Qgc2F5IEkgbmV2ZXIgdGhvdWdodCB5b3Ugd2VyZSBnb29kIGVub3VnaCBmb3IgQW5uaWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0xldOKAmXMganVzdCBzYXkgSSBuZXZlciB0aG91Z2h0IHlvdSB3ZXJlIGdvb2QgZW5vdWdoIGZvciBBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7QnV0IG5vdyBJIGNhbiBzYXkgSSByZXNwZWN0IHlvdXIgc3RhbmNlJnF1b3Q7ICZxdW90O2pvbGtrdG9sa2tQb2xra2xvbGtrQW9sa2t6b2xra0pvbGtrUG9sa2tvb2xra0pvbGtrYm9sa2tQb2xra3lvbGtrZm9sa2tQb2xra2QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IG5vdyBJIGNhbiBzYXkgSSByZXNwZWN0IHlvdXIgc3RhbmNlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtCdXQgbm93IEkgY2FuIHNheSBJIHJlc3BlY3QgeW91ciBzdGFuY2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtWb2xra0RvbGtrcm9sa2tWb2xra1RvbGtrYm9sa2trb2xra1omcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuOHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I1ZvbGtrRG9sa2tyb2xra1ZvbGtrVG9sa2tib2xra2tvbGtrWiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgY2Fu4oCZdCBiZWxpZXZlIGl0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taVN0YXJ0MV80JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taVN0YXJ0MV80JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ5NyIgbmFtZT0iTmFvbWlTdGFydDFfNCIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDYyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pU3RhcnQxXzQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgaXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGNhbuKAmXQgYmVsaWV2ZSBpdCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7SSBjYW7igJl0IGJlbGlldmUgaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Q29sa2tzb2xra0lvbGtraG9sa2tib2xra3BvbGtrVm9sa2tYJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyNDb2xra3NvbGtrSW9sa2tob2xra2JvbGtrcG9sa2tWb2xra1gmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtBbm5pZSB0b2xkIHlvdT8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O05hb21pU3RhcnQxXzUmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtBbm5pZSB0b2xkIHlvdT8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taVN0YXJ0MV81JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjQ5OCIgbmFtZT0iTmFvbWlTdGFydDFfNSIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDYyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pU3RhcnQxXzUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7QW5uaWUgdG9sZCB5b3U/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5uaWUgdG9sZCB5b3U/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtBbm5pZSB0b2xkIHlvdT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7V2hhdCBkaWQgeW91IGV4cGVjdD8mcXVvdDsgJnF1b3Q7c29sa2tVb2xra2ZvbGtreW9sa2tab2xra09vbGtrYm9sa2tSb2xra0ZvbGtrSG9sa2tKb2xra3lvbGtrYW9sa2tCb2xra01vbGtraCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXaGF0IGRpZCB5b3UgZXhwZWN0PyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7V2hhdCBkaWQgeW91IGV4cGVjdD8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjRzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O1dl4oCZdmUgYmVlbiBiZXN0IGZyaWVuZHMgc2luY2UgaGlnaCBzY2hvb2wsIGFuZCB3ZSB3b3JrIGF0IHRoZSBzYW1lIGNvbXBhbnkmcXVvdDsgJnF1b3Q7WG9sa2tqb2xra2pvbGtrT29sa2tXb2xra2RvbGtrRG9sa2tLb2xra1NvbGtrQW9sa2txb2xra0FvbGtrWm9sa2tNb2xra3dvbGtrQiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZeKAmXZlIGJlZW4gYmVzdCBmcmllbmRzIHNpbmNlIGhpZ2ggc2Nob29sLCBhbmQgd2Ugd29yayBhdCB0aGUgc2FtZSBjb21wYW55JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtXZeKAmXZlIGJlZW4gYmVzdCBmcmllbmRzIHNpbmNlIGhpZ2ggc2Nob29sLCBhbmQgd2Ugd29yayBhdCB0aGUgc2FtZSBjb21wYW55JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC40cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtTaGUgdGVsbHMgbWUgZXZlcnl0aGluZyZxdW90OyAmcXVvdDtyb2xra2JvbGtrdG9sa2tZb2xra3BvbGtrUG9sa2trb2xra0dvbGtrcm9sa2t4b2xra01vbGtrZm9sa2t4b2xra2FvbGtrS29sa2t0JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1NoZSB0ZWxscyBtZSBldmVyeXRoaW5nJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtTaGUgdGVsbHMgbWUgZXZlcnl0aGluZyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O2ZvbGtrem9sa2tPb2xra3ZvbGtrTm9sa2tkb2xra1lvbGtrdyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RJZCAgPSAmcXVvdDsjZm9sa2t6b2xra09vbGtrdm9sa2tOb2xra2RvbGtrWW9sa2t3JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7Li4uJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taVN0YXJ0MV82JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7Li4uJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlTdGFydDFfNiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI0OTkiIG5hbWU9Ik5hb21pU3RhcnQxXzYiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsNjIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgID0gJnF1b3Q7TmFvbWlTdGFydDFfNiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJE5hb21pX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDsuLi4mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDsuLi4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90Oy4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS40cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtBbHRob3VnaCwgdG8gYmUgZmFpciwgc2hlIGRvZXNu4oCZdCBrbm93IGFib3V0IHRoaXMgY29udmVyc2F0aW9uIHdl4oCZcmUgaGF2aW5nIHJpZ2h0IG5vdyZxdW90OyAmcXVvdDtmb2xra0RvbGtrdG9sa2tob2xra2pvbGtrdW9sa2ttb2xra0RvbGtrR29sa2tHb2xra2ZvbGtrcG9sa2tBb2xra3dvbGtrcm9sa2tqJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0FsdGhvdWdoLCB0byBiZSBmYWlyLCBzaGUgZG9lc27igJl0IGtub3cgYWJvdXQgdGhpcyBjb252ZXJzYXRpb24gd2XigJlyZSBoYXZpbmcgcmlnaHQgbm93JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtBbHRob3VnaCwgdG8gYmUgZmFpciwgc2hlIGRvZXNu4oCZdCBrbm93IGFib3V0IHRoaXMgY29udmVyc2F0aW9uIHdl4oCZcmUgaGF2aW5nIHJpZ2h0IG5vdyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7TGV0IG1lIGdldCBzdHJhaWdodCB0byB0aGUgcG9pbnQmcXVvdDsgJnF1b3Q7Qm9sa2tSb2xra2dvbGtrUm9sa2tSb2xra2FvbGtrSG9sa2tGb2xra3FvbGtrRW9sa2tQb2xra1dvbGtrTm9sa2tqb2xra3ZvbGtrbCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtMZXQgbWUgZ2V0IHN0cmFpZ2h0IHRvIHRoZSBwb2ludCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7TGV0IG1lIGdldCBzdHJhaWdodCB0byB0aGUgcG9pbnQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O0nigJl2ZSBhbHdheXMgdGhvdWdodCBBbm5pZSBzaG91bGTigJl2ZSBsaXZlZCBoZXIgbGlmZSBtb3JlJnF1b3Q7ICZxdW90O2FvbGtrSW9sa2tlb2xra0NvbGtrcm9sa2ttb2xra3ZvbGtrUm9sa2tEb2xra3NvbGtrcW9sa2tHb2xra05vbGtrRW9sa2tsb2xra0gmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmXZlIGFsd2F5cyB0aG91Z2h0IEFubmllIHNob3VsZOKAmXZlIGxpdmVkIGhlciBsaWZlIG1vcmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0nigJl2ZSBhbHdheXMgdGhvdWdodCBBbm5pZSBzaG91bGTigJl2ZSBsaXZlZCBoZXIgbGlmZSBtb3JlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDUuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtZb3Ugd2VyZSBoZXIgZmlyc3QgYm95ZnJpZW5kJnF1b3Q7ICZxdW90O3ZvbGtrUm9sa2tmb2xra3JvbGtrUW9sa2tCb2xra1dvbGtrWG9sa2t6b2xra1JvbGtrQm9sa2tnb2xra3dvbGtrZm9sa2t6b2xra3YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IHdlcmUgaGVyIGZpcnN0IGJveWZyaWVuZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7WW91IHdlcmUgaGVyIGZpcnN0IGJveWZyaWVuZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA2LjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7VGhlbiBvdXQgb2Ygbm93aGVyZSwgeW91IHR3byBtb3ZlZCBpbiB0b2dldGhlciZxdW90OyAmcXVvdDt5b2xra0NvbGtrVm9sa2t4b2xra2ZvbGtreW9sa2tRb2xra1JvbGtrcW9sa2t2b2xra09vbGtrWW9sa2tOb2xra1FvbGtrdW9sa2tzJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoZW4gb3V0IG9mIG5vd2hlcmUsIHlvdSB0d28gbW92ZWQgaW4gdG9nZXRoZXImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1RoZW4gb3V0IG9mIG5vd2hlcmUsIHlvdSB0d28gbW92ZWQgaW4gdG9nZXRoZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNy43cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O0FuZCBJIG5ldmVyIHJlYWxseSBnb3QgdG8gZ28gb3V0IHdpdGggbXkgZnJpZW5kJnF1b3Q7ICZxdW90O3lvbGtrS29sa2tnb2xra2JvbGtrZm9sa2tsb2xra0hvbGtrYW9sa2tmb2xra3FvbGtrYW9sa2tBb2xra0NvbGtreW9sa2t3b2xra3kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5kIEkgbmV2ZXIgcmVhbGx5IGdvdCB0byBnbyBvdXQgd2l0aCBteSBmcmllbmQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0FuZCBJIG5ldmVyIHJlYWxseSBnb3QgdG8gZ28gb3V0IHdpdGggbXkgZnJpZW5kJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDkuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC44cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtObyBiYXJzLCBubyBtZWV0aW5nIGd1eXMsIG5vIHNoYXJlZCBhZHZlbnR1cmVzJnF1b3Q7ICZxdW90O3ZvbGtrVG9sa2tSb2xra1JvbGtrV29sa2tmb2xra2FvbGtrTG9sa2tPb2xra1VvbGtraW9sa2tHb2xra0ZvbGtrQW9sa2tSb2xra2omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm8gYmFycywgbm8gbWVldGluZyBndXlzLCBubyBzaGFyZWQgYWR2ZW50dXJlcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7Tm8gYmFycywgbm8gbWVldGluZyBndXlzLCBubyBzaGFyZWQgYWR2ZW50dXJlcyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxMC44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O0xldCBtZSBqdXN0IHNheSBJIGRvbuKAmXQgaGF0ZSB5b3UmcXVvdDsgJnF1b3Q7em9sa2tvb2xra05vbGtrUW9sa2tlb2xra0VvbGtraG9sa2tBb2xra1ZvbGtrTG9sa2twb2xra2RvbGtrdW9sa2tCb2xra2tvbGtrYSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtMZXQgbWUganVzdCBzYXkgSSBkb27igJl0IGhhdGUgeW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtMZXQgbWUganVzdCBzYXkgSSBkb27igJl0IGhhdGUgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEyLjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuNXMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7QnV0IEkgZGlkbuKAmXQgbGlrZSBob3cgeW91IHN3b29wZWQgaW4gYW5kIHN0b2xlIG15IGZyaWVuZCBhd2F5IGZyb20gbWUmcXVvdDsgJnF1b3Q7Um9sa2tyb2xra1FvbGtrdW9sa2tCb2xra3ZvbGtraG9sa2tjb2xra3pvbGtrQ29sa2t3b2xra0tvbGtrRG9sa2tUb2xra2xvbGtrdyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgSSBkaWRu4oCZdCBsaWtlIGhvdyB5b3Ugc3dvb3BlZCBpbiBhbmQgc3RvbGUgbXkgZnJpZW5kIGF3YXkgZnJvbSBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7QnV0IEkgZGlkbuKAmXQgbGlrZSBob3cgeW91IHN3b29wZWQgaW4gYW5kIHN0b2xlIG15IGZyaWVuZCBhd2F5IGZyb20gbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDt2b2xra3VvbGtrUG9sa2tOb2xra2JvbGtram9sa2tPb2xra1kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDE0LjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyN2b2xra3VvbGtrUG9sa2tOb2xra2JvbGtram9sa2tPb2xra1kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIHNlZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlTdGFydDFfN2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIHNlZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O05hb21pU3RhcnQxXzdhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I3ZvbGtrdW9sa2tQb2xra05vbGtrYm9sa2tqb2xra09vbGtrWSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1Nv4oCmJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taVN0YXJ0MV83YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1Nv4oCmJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlTdGFydDFfN2ImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTAwIiBuYW1lPSJOYW9taVN0YXJ0MV83YSIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSw2MjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRTdGF0ZSAgPSAmcXVvdDtOYW9taVN0YXJ0MV83YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJE5hb21pX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIHNlZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgc2VlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtJIHNlZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtqb2xra0FvbGtrRm9sa2t0b2xra3pvbGtrYm9sa2t6b2xra3QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I2pvbGtrQW9sa2tGb2xra3RvbGtrem9sa2tib2xra3pvbGtrdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0J1dCB3aGF0IGRvIHlvdSB3YW50IGZyb20gbWU/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taVN0YXJ0MV84YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0J1dCB3aGF0IGRvIHlvdSB3YW50IGZyb20gbWU/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlTdGFydDFfOGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTAxIiBuYW1lPSJOYW9taVN0YXJ0MV83YiIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDYzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pU3RhcnQxXzdiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkTmFvbWlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1Nv4oCmJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U2/igKYmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1Nv4oCmJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O1NvLCBsZXQgbWUgbWFrZSBvbmUgdGhpbmcgY2xlYXImcXVvdDsgJnF1b3Q7aG9sa2tKb2xra3RvbGtrZ29sa2tqb2xra2RvbGtrRG9sa2tYb2xra2FvbGtrWm9sa2tub2xra0pvbGtrVW9sa2tDb2xra1dvbGtreCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtTbywgbGV0IG1lIG1ha2Ugb25lIHRoaW5nIGNsZWFyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtTbywgbGV0IG1lIG1ha2Ugb25lIHRoaW5nIGNsZWFyJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtBbm5pZSB3b3VsZCBuZXZlciBhZ3JlZSB0byBmdWxmaWxsIHRoYXQgZmV0aXNoIG9mIHlvdXJzJnF1b3Q7ICZxdW90O1NvbGtrR29sa2tqb2xra1BvbGtrRW9sa2tKb2xra0VvbGtrQ29sa2t4b2xra0NvbGtreW9sa2tOb2xra2NvbGtreW9sa2tJb2xra2QmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5uaWUgd291bGQgbmV2ZXIgYWdyZWUgdG8gZnVsZmlsbCB0aGF0IGZldGlzaCBvZiB5b3VycyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7QW5uaWUgd291bGQgbmV2ZXIgYWdyZWUgdG8gZnVsZmlsbCB0aGF0IGZldGlzaCBvZiB5b3VycyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7Tm90IHdpdGhvdXQgbWUgY29udmluY2luZyBoZXImcXVvdDsgJnF1b3Q7S29sa2tNb2xra1dvbGtrYW9sa2tHb2xra1RvbGtrRm9sa2tYb2xra0hvbGtrUG9sa2tmb2xra0xvbGtrUG9sa2tSb2xra1BvbGtrWiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtOb3Qgd2l0aG91dCBtZSBjb252aW5jaW5nIGhlciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7Tm90IHdpdGhvdXQgbWUgY29udmluY2luZyBoZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjVzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O0nigJl2ZSBhbHJlYWR5IHRhbGtlZCB0byBoZXIsIGFuZCBJIHRoaW5rIHRoaW5ncyBtaWdodCBoZWFkIGluIHRoZSByaWdodCBkaXJlY3Rpb24mcXVvdDsgJnF1b3Q7Qm9sa2tGb2xra0pvbGtrVm9sa2tkb2xra2RvbGtrVG9sa2tNb2xra1JvbGtrZm9sa2tub2xra3hvbGtrVm9sa2tib2xra0pvbGtrciZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZdmUgYWxyZWFkeSB0YWxrZWQgdG8gaGVyLCBhbmQgSSB0aGluayB0aGluZ3MgbWlnaHQgaGVhZCBpbiB0aGUgcmlnaHQgZGlyZWN0aW9uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtJ4oCZdmUgYWxyZWFkeSB0YWxrZWQgdG8gaGVyLCBhbmQgSSB0aGluayB0aGluZ3MgbWlnaHQgaGVhZCBpbiB0aGUgcmlnaHQgZGlyZWN0aW9uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDYuNHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtXaGF0IEnigJltIG9mZmVyaW5nIGlzIGhlbHAsIGhlbHAgdG8gZ2V0IHdoYXQgeW914oCZcmUgbG9va2luZyBmb3ImcXVvdDsgJnF1b3Q7aW9sa2tNb2xra2JvbGtrQm9sa2thb2xra21vbGtrQm9sa2tXb2xra2VvbGtrWG9sa2t5b2xra1ZvbGtrWW9sa2tTb2xra01vbGtrdSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXaGF0IEnigJltIG9mZmVyaW5nIGlzIGhlbHAsIGhlbHAgdG8gZ2V0IHdoYXQgeW914oCZcmUgbG9va2luZyBmb3ImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1doYXQgSeKAmW0gb2ZmZXJpbmcgaXMgaGVscCwgaGVscCB0byBnZXQgd2hhdCB5b3XigJlyZSBsb29raW5nIGZvciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA4LjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7QW5kLCBpbiByZXR1cm4sIEkgZ2V0IG15IGZyaWVuZCBiYWNrIGZvciBteXNlbGYmcXVvdDsgJnF1b3Q7am9sa2tGb2xra0ZvbGtrTG9sa2tab2xra2lvbGtrbW9sa2tyb2xra0xvbGtrZ29sa2tLb2xra0FvbGtrRW9sa2tab2xra3VvbGtrZiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbmQsIGluIHJldHVybiwgSSBnZXQgbXkgZnJpZW5kIGJhY2sgZm9yIG15c2VsZiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7QW5kLCBpbiByZXR1cm4sIEkgZ2V0IG15IGZyaWVuZCBiYWNrIGZvciBteXNlbGYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDttb2xra0dvbGtrUW9sa2tjb2xra1ZvbGtrem9sa2tCb2xra0MmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDkuOHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I21vbGtrR29sa2tRb2xra2NvbGtrVm9sa2t6b2xra0JvbGtrQyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgaGF2ZSB0byBzYXksIHRoYXQgZG9lc24mIzM5O3Qgc291bmQgYmFkIGF0IGFsbCZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlTdGFydDFfMTFhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SSBoYXZlIHRvIHNheSwgdGhhdCBkb2VzbiYjMzk7dCBzb3VuZCBiYWQgYXQgYWxsJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlTdGFydDFfMTFhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I21vbGtrR29sa2tRb2xra2NvbGtrVm9sa2t6b2xra0JvbGtrQyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0kgZG9uJiMzOTt0IHdhbnQgeW91IGludm9sdmVkIGluIHRoaXMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O05hb21pU3RhcnQxXzExYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgZG9uJiMzOTt0IHdhbnQgeW91IGludm9sdmVkIGluIHRoaXMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taVN0YXJ0MV8xMWImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTAyIiBuYW1lPSJOYW9taVN0YXJ0MV84YSIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDYzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pU3RhcnQxXzhhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkTmFvbWlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0J1dCB3aGF0IGRvIHlvdSB3YW50IGZyb20gbWU/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IHdoYXQgZG8geW91IHdhbnQgZnJvbSBtZT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0J1dCB3aGF0IGRvIHlvdSB3YW50IGZyb20gbWU/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O2tvbGtraW9sa2tlb2xra0RvbGtrRG9sa2ttb2xra21vbGtrWCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RJZCAgPSAmcXVvdDsja29sa2tpb2xra2VvbGtrRG9sa2tEb2xra21vbGtrbW9sa2tYJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SXMgdGhpcyBzb21lIGtpbmQgb2YgYXBvbG9neT8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O05hb21pU3RhcnQxXzEwYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0lzIHRoaXMgc29tZSBraW5kIG9mIGFwb2xvZ3k/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlTdGFydDFfMTBhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjUwMyIgbmFtZT0iTmFvbWlTdGFydDFfMTBhIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsNjM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgID0gJnF1b3Q7TmFvbWlTdGFydDFfMTBhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkTmFvbWlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0lzIHRoaXMgc29tZSBraW5kIG9mIGFwb2xvZ3k/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SXMgdGhpcyBzb21lIGtpbmQgb2YgYXBvbG9neT8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0lzIHRoaXMgc29tZSBraW5kIG9mIGFwb2xvZ3k/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O09oLCBsZXQgbWUgdGVsbCB5b3UsIGl04oCZcyBtdWNoIG1vcmUgdGhhbiB0aGF0JnF1b3Q7ICZxdW90O3FvbGtrTG9sa2tub2xra0pvbGtrS29sa2tLb2xra0ZvbGtreW9sa2tub2xra1ZvbGtrRm9sa2t1b2xra0JvbGtrRm9sa2tGb2xra0kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2gsIGxldCBtZSB0ZWxsIHlvdSwgaXTigJlzIG11Y2ggbW9yZSB0aGFuIHRoYXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O09oLCBsZXQgbWUgdGVsbCB5b3UsIGl04oCZcyBtdWNoIG1vcmUgdGhhbiB0aGF0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuOXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtZb3Ugc2VlLCBBbm5pZSB3b3VsZCBuZXZlciBhZ3JlZSB0byBmdWxmaWxsIHRoYXQgZmV0aXNoIG9mIHlvdXJzJnF1b3Q7ICZxdW90O0pvbGtrRG9sa2tmb2xra2RvbGtrZ29sa2tib2xra1VvbGtrT29sa2tHb2xra1NvbGtrVW9sa2tLb2xra0NvbGtrQW9sa2t5b2xra20mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IHNlZSwgQW5uaWUgd291bGQgbmV2ZXIgYWdyZWUgdG8gZnVsZmlsbCB0aGF0IGZldGlzaCBvZiB5b3VycyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7WW91IHNlZSwgQW5uaWUgd291bGQgbmV2ZXIgYWdyZWUgdG8gZnVsZmlsbCB0aGF0IGZldGlzaCBvZiB5b3VycyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNXMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7Tm90IHdpdGhvdXQgbWUgY29udmluY2luZyBoZXImcXVvdDsgJnF1b3Q7R29sa2tFb2xra2xvbGtrbW9sa2tLb2xra1dvbGtrcW9sa2tWb2xra2tvbGtrRG9sa2tEb2xra0xvbGtrWW9sa2tqb2xra09vbGtrSyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtOb3Qgd2l0aG91dCBtZSBjb252aW5jaW5nIGhlciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7Tm90IHdpdGhvdXQgbWUgY29udmluY2luZyBoZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNC44cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjVzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O0nigJl2ZSBhbHJlYWR5IHRhbGtlZCB0byBoZXIsIGFuZCBJIHRoaW5rIHRoaW5ncyBtaWdodCBoZWFkIGluIHRoZSByaWdodCBkaXJlY3Rpb24mcXVvdDsgJnF1b3Q7aG9sa2tFb2xra3FvbGtrVm9sa2tpb2xra2ZvbGtrSW9sa2tvb2xra2NvbGtrY29sa2tHb2xra3FvbGtrSW9sa2tRb2xra3FvbGtrRCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZdmUgYWxyZWFkeSB0YWxrZWQgdG8gaGVyLCBhbmQgSSB0aGluayB0aGluZ3MgbWlnaHQgaGVhZCBpbiB0aGUgcmlnaHQgZGlyZWN0aW9uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtJ4oCZdmUgYWxyZWFkeSB0YWxrZWQgdG8gaGVyLCBhbmQgSSB0aGluayB0aGluZ3MgbWlnaHQgaGVhZCBpbiB0aGUgcmlnaHQgZGlyZWN0aW9uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDYuOXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtXaGF0IEnigJltIG9mZmVyaW5nIGlzIGhlbHAsIGhlbHAgdG8gZ2V0IHdoYXQgeW914oCZcmUgbG9va2luZyBmb3ImcXVvdDsgJnF1b3Q7SG9sa2tCb2xra2tvbGtrdW9sa2tVb2xra3VvbGtrbW9sa2ttb2xra2pvbGtrRG9sa2tEb2xra3RvbGtrR29sa2tMb2xra1pvbGtrSyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXaGF0IEnigJltIG9mZmVyaW5nIGlzIGhlbHAsIGhlbHAgdG8gZ2V0IHdoYXQgeW914oCZcmUgbG9va2luZyBmb3ImcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1doYXQgSeKAmW0gb2ZmZXJpbmcgaXMgaGVscCwgaGVscCB0byBnZXQgd2hhdCB5b3XigJlyZSBsb29raW5nIGZvciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA4LjdzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7QW5kLCBpbiByZXR1cm4sIEkgZ2V0IG15IGZyaWVuZCBiYWNrIGZvciBteXNlbGYmcXVvdDsgJnF1b3Q7WW9sa2tGb2xra3BvbGtrTG9sa2tjb2xra3ZvbGtrWW9sa2tob2xra3NvbGtrRG9sa2tZb2xra0NvbGtrSG9sa2tVb2xra05vbGtrZSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbmQsIGluIHJldHVybiwgSSBnZXQgbXkgZnJpZW5kIGJhY2sgZm9yIG15c2VsZiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7QW5kLCBpbiByZXR1cm4sIEkgZ2V0IG15IGZyaWVuZCBiYWNrIGZvciBteXNlbGYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtub2xra1VvbGtrTW9sa2tLb2xra1FvbGtra29sa2tvb2xra1EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyNub2xra1VvbGtrTW9sa2tLb2xra1FvbGtra29sa2tvb2xra1EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGhhdmUgdG8gc2F5LCB0aGF0IGRvZXNuJiMzOTt0IHNvdW5kIGJhZCBhdCBhbGwmcXVvdDssIHBhc3NhZ2U6ICZxdW90O05hb21pU3RhcnQxXzExYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgaGF2ZSB0byBzYXksIHRoYXQgZG9lc24mIzM5O3Qgc291bmQgYmFkIGF0IGFsbCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O05hb21pU3RhcnQxXzExYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyNub2xra1VvbGtrTW9sa2tLb2xra1FvbGtra29sa2tvb2xra1EmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIGRvbiYjMzk7dCB3YW50IHlvdSBpbnZvbHZlZCBpbiB0aGlzJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taVN0YXJ0MV8xMWImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJIGRvbiYjMzk7dCB3YW50IHlvdSBpbnZvbHZlZCBpbiB0aGlzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlTdGFydDFfMTFiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjUwNCIgbmFtZT0iTmFvbWlTdGFydDFfMTFhIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsNjM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgID0gJnF1b3Q7TmFvbWlTdGFydDFfMTFhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkTmFvbWlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgaGF2ZSB0byBzYXksIHRoYXQgZG9lc27igJl0IHNvdW5kIGJhZCBhdCBhbGwmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGhhdmUgdG8gc2F5LCB0aGF0IGRvZXNu4oCZdCBzb3VuZCBiYWQgYXQgYWxsJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtJIGhhdmUgdG8gc2F5LCB0aGF0IGRvZXNu4oCZdCBzb3VuZCBiYWQgYXQgYWxsJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRuYW9taV9vZmZlciA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICROYW9taV9ub3Rlcy5wdXNoKCZxdW90O1NoZSBmb3VuZCBvdXQgYWJvdXQgbXkgZmFudGFzeSwgb2ZmZXJlZCB0byBoZWxwIGFuZCBJIGFjY2VwdGVkLiBJIGp1c3QgaG9wZSB0aGlzIGRvZXNu4oCZdCBlbmQgYmFkbHkuJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Z29sa2tsb2xra0xvbGtrd29sa2tTb2xra3BvbGtrWG9sa2tPJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyNnb2xra2xvbGtrTG9sa2t3b2xra1NvbGtrcG9sa2tYb2xra08mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtXaGF0IGRvIHlvdSBoYXZlIGluIG1pbmQ/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taVN0YXJ0MV8xMmEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXaGF0IGRvIHlvdSBoYXZlIGluIG1pbmQ/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlTdGFydDFfMTJhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjUwNSIgbmFtZT0iTmFvbWlTdGFydDFfMTFiIiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsNjM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgID0gJnF1b3Q7TmFvbWlTdGFydDFfMTFiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkTmFvbWlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgZG9u4oCZdCB3YW50IHlvdSBpbnZvbHZlZCBpbiB0aGlzJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBkb27igJl0IHdhbnQgeW91IGludm9sdmVkIGluIHRoaXMmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0kgZG9u4oCZdCB3YW50IHlvdSBpbnZvbHZlZCBpbiB0aGlzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRuYW9taV9vZmZlciA9IGZhbHNlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkTmFvbWlfbm90ZXMucHVzaCgmcXVvdDtTaGUgZm91bmQgb3V0IGFib3V0IG15IGZhbnRhc3kgYW5kIG9mZmVyZWQgdG8gaGVscCwgYnV0IEkgdHVybmVkIGhlciBkb3duLiBJ4oCZZCByYXRoZXIga2VlcCBoZXIgb3V0IG9mIHRoaXMuJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Y29sa2t4b2xra2dvbGtra29sa2tOb2xra0hvbGtrVW9sa2tuJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyNjb2xra3hvbGtrZ29sa2trb2xra05vbGtrSG9sa2tVb2xra24mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGlzIGhhcyBub3RoaW5nIHRvIGRvIHdpdGggeW91JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taVN0YXJ0MV8xMmImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaGlzIGhhcyBub3RoaW5nIHRvIGRvIHdpdGggeW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlTdGFydDFfMTJiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjUwNiIgbmFtZT0iTmFvbWlTdGFydDFfMTJhIiB0YWdzPSIiIHBvc2l0aW9uPSI3MjUsNjM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgID0gJnF1b3Q7TmFvbWlTdGFydDFfMTJhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkTmFvbWlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1doYXQgZG8geW91IGhhdmUgaW4gbWluZD8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXaGF0IGRvIHlvdSBoYXZlIGluIG1pbmQ/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtXaGF0IGRvIHlvdSBoYXZlIGluIG1pbmQ/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O0p1c3QgZ2l2ZSBtZSB0aW1lIHRvIHdvcmsgbXkgbWFnaWMmcXVvdDsgJnF1b3Q7eG9sa2tVb2xra0RvbGtrUm9sa2t1b2xra0JvbGtrU29sa2t4b2xra1JvbGtrR29sa2tsb2xra1lvbGtrcm9sa2tTb2xra2JvbGtrUCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtKdXN0IGdpdmUgbWUgdGltZSB0byB3b3JrIG15IG1hZ2ljJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtKdXN0IGdpdmUgbWUgdGltZSB0byB3b3JrIG15IG1hZ2ljJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtCdXQgeW914oCZbGwgc2VlIHNvb24gZW5vdWdoJnF1b3Q7ICZxdW90O0pvbGtrWG9sa2tKb2xra0xvbGtrZm9sa2tHb2xra1FvbGtrWm9sa2t5b2xra3VvbGtrT29sa2tMb2xra1lvbGtrUW9sa2tmb2xra1cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IHlvdeKAmWxsIHNlZSBzb29uIGVub3VnaCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7QnV0IHlvdeKAmWxsIHNlZSBzb29uIGVub3VnaCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O2JvbGtrRG9sa2tQb2xra3ZvbGtrTm9sa2tzb2xra3lvbGtrSSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi44cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RJZCAgPSAmcXVvdDsjYm9sa2tEb2xra1BvbGtrdm9sa2tOb2xra3NvbGtreW9sa2tJJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QWxyaWdodCwgSSB0cnVzdCB5b3UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O05hb21pU3RhcnQxXzEzYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0FscmlnaHQsIEkgdHJ1c3QgeW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlTdGFydDFfMTNhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjUwNyIgbmFtZT0iTmFvbWlTdGFydDFfMTNhIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsNjM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgID0gJnF1b3Q7TmFvbWlTdGFydDFfMTNhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkTmFvbWlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0FscmlnaHQsIEkgdHJ1c3QgeW91JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QWxyaWdodCwgSSB0cnVzdCB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0FscmlnaHQsIEkgdHJ1c3QgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O0dvbGtrd29sa2t6b2xra2JvbGtrem9sa2ttb2xra0lvbGtrdiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RJZCAgPSAmcXVvdDsjR29sa2t3b2xra3pvbGtrYm9sa2t6b2xra21vbGtrSW9sa2t2JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SnVzdCBrZWVwIG1lIHVwZGF0ZWQsIG9rYXk/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taVN0YXJ0MV8xNGEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtKdXN0IGtlZXAgbWUgdXBkYXRlZCwgb2theT8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taVN0YXJ0MV8xNGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTA4IiBuYW1lPSJOYW9taVN0YXJ0MV8xNGEiIHRhZ3M9IiIgcG9zaXRpb249Ijk3NSw2MzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRTdGF0ZSAgPSAmcXVvdDtOYW9taVN0YXJ0MV8xNGEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SnVzdCBrZWVwIG1lIHVwZGF0ZWQsIG9rYXk/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SnVzdCBrZWVwIG1lIHVwZGF0ZWQsIG9rYXk/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtKdXN0IGtlZXAgbWUgdXBkYXRlZCwgb2theT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuMnMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7SSB3aWxsJnF1b3Q7ICZxdW90O1dvbGtrVm9sa2txb2xra0RvbGtrSW9sa2t2b2xra3VvbGtrQ29sa2tPb2xra2VvbGtrUG9sa2tvb2xra1ZvbGtrdG9sa2tOb2xra2wmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSB3aWxsJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtJIHdpbGwmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4xcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV93aW5rLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtOYW9taSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV93aW5rLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDIuMXMmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O/CfmIkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlID0gJnF1b3Q7TmFvbWlTdGFydDdhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RfaG91ciA9ICZxdW90OzA4OjM3JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2NoYXQgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRob3VyID0gJnF1b3Q7MDg6MzcmcXVvdDsmZ3Q7Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O29mZmxpbmUtdGV4dCZxdW90OyZndDtOYW9taSBpcyBvZmZsaW5lJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMXMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgPSAmcXVvdDtBbm5pZUNoYXQzXzEmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4xcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIb25leSwgSeKAmW0gc29ycnkmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4xcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2NoYXQgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjUwOSIgbmFtZT0iTmFvbWlTdGFydDFfMTJiIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDYzNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pU3RhcnQxXzEyYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJE5hb21pX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGlzIGhhcyBub3RoaW5nIHRvIGRvIHdpdGggeW91JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhpcyBoYXMgbm90aGluZyB0byBkbyB3aXRoIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7VGhpcyBoYXMgbm90aGluZyB0byBkbyB3aXRoIHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtPaCwgSSBkaXNhZ3JlZSZxdW90OyAmcXVvdDtCb2xra2lvbGtrTW9sa2tkb2xra0dvbGtrUG9sa2trb2xra1FvbGtrUG9sa2tob2xra0JvbGtrbG9sa2tTb2xra0JvbGtrUG9sa2tuJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O09oLCBJIGRpc2FncmVlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtPaCwgSSBkaXNhZ3JlZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjJzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7QW55dGhpbmcgaW52b2x2aW5nIG15IGJlc3QgZnJpZW5kIGhhcyBldmVyeXRoaW5nIHRvIGRvIHdpdGggbWUmcXVvdDsgJnF1b3Q7eG9sa2tZb2xra3hvbGtrYm9sa2tub2xra29vbGtrQW9sa2tTb2xra2ZvbGtrTW9sa2tYb2xra2hvbGtrYm9sa2tib2xra25vbGtrTyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbnl0aGluZyBpbnZvbHZpbmcgbXkgYmVzdCBmcmllbmQgaGFzIGV2ZXJ5dGhpbmcgdG8gZG8gd2l0aCBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7QW55dGhpbmcgaW52b2x2aW5nIG15IGJlc3QgZnJpZW5kIGhhcyBldmVyeXRoaW5nIHRvIGRvIHdpdGggbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi45cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O0nigJl2ZSBrbm93biBoZXIgZmFyIGxvbmdlciB0aGFuIHlvdSBoYXZlJnF1b3Q7ICZxdW90O0VvbGtrdm9sa2tUb2xra1VvbGtrV29sa2t0b2xra2FvbGtrVG9sa2txb2xra2FvbGtrSG9sa2thb2xra1pvbGtrbm9sa2tKb2xra1kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmXZlIGtub3duIGhlciBmYXIgbG9uZ2VyIHRoYW4geW91IGhhdmUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0nigJl2ZSBrbm93biBoZXIgZmFyIGxvbmdlciB0aGFuIHlvdSBoYXZlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDQuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC42cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtCdXQgaGV5LCB5b3XigJlsbCB0aGFuayBtZSBldmVudHVhbGx5JnF1b3Q7ICZxdW90O0ZvbGtrem9sa2tub2xra3JvbGtreG9sa2tRb2xra1FvbGtrWW9sa2tlb2xra3JvbGtrWW9sa2t5b2xra3VvbGtrV29sa2t4b2xra04mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IGhleSwgeW914oCZbGwgdGhhbmsgbWUgZXZlbnR1YWxseSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7QnV0IGhleSwgeW914oCZbGwgdGhhbmsgbWUgZXZlbnR1YWxseSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA1LjVzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7VGhhbmtzIHRvIG1lLCB5b3VyIGRhcmtlc3QgZmFudGFzaWVzIHdpbGwgY29tZSB0cnVlJnF1b3Q7ICZxdW90O0pvbGtrY29sa2t4b2xra2RvbGtrVm9sa2t4b2xra2JvbGtram9sa2tqb2xra0JvbGtrcG9sa2tXb2xra3NvbGtram9sa2tTb2xra3cmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhbmtzIHRvIG1lLCB5b3VyIGRhcmtlc3QgZmFudGFzaWVzIHdpbGwgY29tZSB0cnVlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtUaGFua3MgdG8gbWUsIHlvdXIgZGFya2VzdCBmYW50YXNpZXMgd2lsbCBjb21lIHRydWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtUb2xra0JvbGtreG9sa2tKb2xra3BvbGtrSm9sa2tBb2xra3QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDcuMHMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I1RvbGtrQm9sa2t4b2xra0pvbGtrcG9sa2tKb2xra0FvbGtrdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0nigJltIGRvbmUgdGFsa2luZyB0byB5b3UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O05hb21pU3RhcnQxXzEzYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0nigJltIGRvbmUgdGFsa2luZyB0byB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taVN0YXJ0MV8xM2ImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTEwIiBuYW1lPSJOYW9taVN0YXJ0MV8xM2IiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsNjM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgID0gJnF1b3Q7TmFvbWlTdGFydDFfMTNiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkTmFvbWlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0nigJltIGRvbmUgdGFsa2luZyB0byB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbSBkb25lIHRhbGtpbmcgdG8geW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtJ4oCZbSBkb25lIHRhbGtpbmcgdG8geW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7bWVzc2FnZV9lbW9qaSAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV93aW5rLndlYnAmcXVvdDsgdHJ1ZSAmcXVvdDtOYW9taSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV93aW5rLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O/CfmIkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlID0gJnF1b3Q7TmFvbWlTdGFydDdhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RfaG91ciA9ICZxdW90OzA4OjM3JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2NoYXQgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRob3VyID0gJnF1b3Q7MDg6MzcmcXVvdDsmZ3Q7Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O29mZmxpbmUtdGV4dCZxdW90OyZndDtOYW9taSBpcyBvZmZsaW5lJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgPSAmcXVvdDtBbm5pZUNoYXQzXzEmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIb25leSwgSeKAmW0gc29ycnkmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2NoYXQgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjUxMSIgbmFtZT0iTmFvbWlDaGF0RXAyXzFfMSIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDY0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7SGV5LCBpdOKAmXMgbWUgYWdhaW4uLi4mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hleSwgaXTigJlzIG1lIGFnYWluLi4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtIZXksIGl04oCZcyBtZSBhZ2Fpbi4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtlb2xra1JvbGtrZW9sa2tSb2xra0xvbGtrTG9sa2tNb2xra2QmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuNnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I2VvbGtrUm9sa2tlb2xra1JvbGtrTG9sa2tMb2xra01vbGtrZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O05hb21pLCB3aGF0IGRvIHlvdSB3YW50IG5vdz8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O05hb21pQ2hhdEVwMl8xXzImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtOYW9taSwgd2hhdCBkbyB5b3Ugd2FudCBub3c/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlDaGF0RXAyXzFfMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjUxMiIgbmFtZT0iTmFvbWlDaGF0RXAyXzFfMiIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDY0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pQ2hhdEVwMl8xXzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TmFvbWksIHdoYXQgZG8geW91IHdhbnQgbm93PyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O05hb21pLCB3aGF0IGRvIHlvdSB3YW50IG5vdz8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O05hb21pLCB3aGF0IGRvIHlvdSB3YW50IG5vdz8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7SSBhc3N1bWUgeW914oCZdmUgaGVhcmQmcXVvdDsgJnF1b3Q7cG9sa2tnb2xra3hvbGtrTm9sa2tqb2xra0hvbGtrVm9sa2tEb2xra0ZvbGtrcG9sa2tZb2xra1dvbGtrd29sa2tZb2xra0VvbGtrYiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIGFzc3VtZSB5b3XigJl2ZSBoZWFyZCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7SSBhc3N1bWUgeW914oCZdmUgaGVhcmQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtQb2xra1hvbGtrb29sa2tzb2xra1BvbGtraG9sa2tDb2xra2kmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I1BvbGtrWG9sa2tvb2xra3NvbGtrUG9sa2tob2xra0NvbGtraSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0hlYXJkIHdoYXQ/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taUNoYXRFcDJfMV8zYSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0hlYXJkIHdoYXQ/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlDaGF0RXAyXzFfM2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RJZCAgPSAmcXVvdDsjUG9sa2tYb2xra29vbGtrc29sa2tQb2xra2hvbGtrQ29sa2tpJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhhdCB5b3XigJlyZSBnb2luZyBvdXQgdG8gYSBuaWdodGNsdWIgdG9tb3Jyb3c/JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taUNoYXRFcDJfMV8zYiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoYXQgeW914oCZcmUgZ29pbmcgb3V0IHRvIGEgbmlnaHRjbHViIHRvbW9ycm93PyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O05hb21pQ2hhdEVwMl8xXzNiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjUxMyIgbmFtZT0iTmFvbWlDaGF0RXAyXzFfM2EiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCw2NDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRTdGF0ZSAgPSAmcXVvdDtOYW9taUNoYXRFcDJfMV8zYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJE5hb21pX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtIZWFyZCB3aGF0PyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hlYXJkIHdoYXQ/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtIZWFyZCB3aGF0PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtUaGF0IHdl4oCZcmUgZ29pbmcgdG8gYSBuaWdodGNsdWIgdG9tb3Jyb3cmcXVvdDsgJnF1b3Q7T29sa2tyb2xra2pvbGtrQ29sa2tnb2xra3pvbGtrSG9sa2t6b2xra1ZvbGtrSW9sa2tCb2xra1BvbGtrdW9sa2tVb2xra0JvbGtreSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGF0IHdl4oCZcmUgZ29pbmcgdG8gYSBuaWdodGNsdWIgdG9tb3Jyb3cmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1RoYXQgd2XigJlyZSBnb2luZyB0byBhIG5pZ2h0Y2x1YiB0b21vcnJvdyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O3ZvbGtrUm9sa2trb2xra1VvbGtrSW9sa2tMb2xra1dvbGtrQiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RJZCAgPSAmcXVvdDsjdm9sa2tSb2xra2tvbGtrVW9sa2tJb2xra0xvbGtrV29sa2tCJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7WWVhaCwgQW5uaWUgYWxyZWFkeSB0b2xkIG1lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taUNoYXRFcDJfMV80JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7WWVhaCwgQW5uaWUgYWxyZWFkeSB0b2xkIG1lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlDaGF0RXAyXzFfNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1MTQiIG5hbWU9Ik5hb21pQ2hhdEVwMl8xXzNiIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsNjQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgID0gJnF1b3Q7TmFvbWlDaGF0RXAyXzFfM2ImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhhdCB5b3XigJlyZSBnb2luZyBvdXQgdG8gYSBuaWdodGNsdWIgdG9tb3Jyb3c/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhdCB5b3XigJlyZSBnb2luZyBvdXQgdG8gYSBuaWdodGNsdWIgdG9tb3Jyb3c/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtUaGF0IHlvdeKAmXJlIGdvaW5nIG91dCB0byBhIG5pZ2h0Y2x1YiB0b21vcnJvdz8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Tm9sa2tCb2xra0lvbGtrSG9sa2tlb2xra0RvbGtrcG9sa2taJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyNOb2xra0JvbGtrSW9sa2tIb2xra2VvbGtrRG9sa2twb2xra1omcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZZWFoLCBBbm5pZSBhbHJlYWR5IHRvbGQgbWUmcXVvdDssIHBhc3NhZ2U6ICZxdW90O05hb21pQ2hhdEVwMl8xXzQmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZZWFoLCBBbm5pZSBhbHJlYWR5IHRvbGQgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taUNoYXRFcDJfMV80JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjUxNSIgbmFtZT0iTmFvbWlDaGF0RXAyXzFfNCIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDY0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pQ2hhdEVwMl8xXzQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7WWVhaCwgQW5uaWUgYWxyZWFkeSB0b2xkIG1lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WWVhaCwgQW5uaWUgYWxyZWFkeSB0b2xkIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtZZWFoLCBBbm5pZSBhbHJlYWR5IHRvbGQgbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7V29sa2t4b2xra2RvbGtraG9sa2t3b2xra1NvbGtreW9sa2tkJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyNXb2xra3hvbGtrZG9sa2tob2xra3dvbGtrU29sa2t5b2xra2QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtTbyB3aGF0IGFib3V0IGl0PyZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlDaGF0RXAyXzFfNSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1NvIHdoYXQgYWJvdXQgaXQ/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlDaGF0RXAyXzFfNSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1MTYiIG5hbWU9Ik5hb21pQ2hhdEVwMl8xXzUiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSw2NDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRTdGF0ZSAgPSAmcXVvdDtOYW9taUNoYXRFcDJfMV81JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkTmFvbWlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1NvIHdoYXQgYWJvdXQgaXQ/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U28gd2hhdCBhYm91dCBpdD8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1NvIHdoYXQgYWJvdXQgaXQ/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjFzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O1dlbGwsIEkgdGhpbmsgeW91IGFscmVhZHkga25vdyB3aGF0IEnigJltIGdvaW5nIHRvIHNheSZxdW90OyAmcXVvdDtJb2xra09vbGtrdG9sa2tjb2xra2hvbGtrb29sa2tNb2xra0pvbGtraW9sa2tQb2xra3BvbGtrZ29sa2twb2xra2FvbGtrY29sa2t6JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1dlbGwsIEkgdGhpbmsgeW91IGFscmVhZHkga25vdyB3aGF0IEnigJltIGdvaW5nIHRvIHNheSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7V2VsbCwgSSB0aGluayB5b3UgYWxyZWFkeSBrbm93IHdoYXQgSeKAmW0gZ29pbmcgdG8gc2F5JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtCdXQgeW91IHN0aWxsIGhhdmUgdGltZSB0byB0YWtlIG1lIHVwIG9uIG15IG9mZmVyJnF1b3Q7ICZxdW90O0JvbGtreG9sa2tlb2xra1hvbGtrQ29sa2tzb2xra2dvbGtrQW9sa2tBb2xra0tvbGtram9sa2tXb2xra0VvbGtraW9sa2tjb2xra3ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IHlvdSBzdGlsbCBoYXZlIHRpbWUgdG8gdGFrZSBtZSB1cCBvbiBteSBvZmZlciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7QnV0IHlvdSBzdGlsbCBoYXZlIHRpbWUgdG8gdGFrZSBtZSB1cCBvbiBteSBvZmZlciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAzLjhzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7WW91IGp1c3QgbmVlZCB0byBsZXQgbWUgYmUgeW91ciBmYWlyeSBnb2Rtb3RoZXImcXVvdDsgJnF1b3Q7aW9sa2tqb2xra1dvbGtrdW9sa2tmb2xra2JvbGtreG9sa2tOb2xra1FvbGtrc29sa2tZb2xra1NvbGtrYW9sa2t4b2xra05vbGtrTiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3UganVzdCBuZWVkIHRvIGxldCBtZSBiZSB5b3VyIGZhaXJ5IGdvZG1vdGhlciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7WW91IGp1c3QgbmVlZCB0byBsZXQgbWUgYmUgeW91ciBmYWlyeSBnb2Rtb3RoZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgNS40cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O0EgZmFpcnkgZ29kbW90aGVyIHdob+KAmWxsIGhlbHAgeW91ciB3aWxkZXN0IGRlc2lyZXMgY29tZSB0cnVlJnF1b3Q7ICZxdW90O2hvbGtrZW9sa2tib2xra0xvbGtreW9sa2tUb2xra1VvbGtrbW9sa2tBb2xra1FvbGtrSm9sa2tQb2xra2tvbGtrd29sa2tRb2xra3MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QSBmYWlyeSBnb2Rtb3RoZXIgd2hv4oCZbGwgaGVscCB5b3VyIHdpbGRlc3QgZGVzaXJlcyBjb21lIHRydWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0EgZmFpcnkgZ29kbW90aGVyIHdob+KAmWxsIGhlbHAgeW91ciB3aWxkZXN0IGRlc2lyZXMgY29tZSB0cnVlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7WG9sa2t5b2xra1FvbGtra29sa2thb2xra1NvbGtrWW9sa2tpJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCA3LjBzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyNYb2xra3lvbGtrUW9sa2trb2xra2FvbGtrU29sa2tZb2xra2kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtZb3Uga25vdywgd2hlbiB5b3UgcHV0IGl0IGxpa2UgdGhhdCwgaXQgZG9lc27igJl0IHNvdW5kIHNvIGJhZCZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlDaGF0RXAyXzFfNmEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtZb3Uga25vdywgd2hlbiB5b3UgcHV0IGl0IGxpa2UgdGhhdCwgaXQgZG9lc27igJl0IHNvdW5kIHNvIGJhZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O05hb21pQ2hhdEVwMl8xXzZhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I1hvbGtreW9sa2tRb2xra2tvbGtrYW9sa2tTb2xra1lvbGtraSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0xpa2UgSSBzYWlkLCBJ4oCZbSBub3QgaW50ZXJlc3RlZCZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlDaGF0RXAyXzFfNmImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtMaWtlIEkgc2FpZCwgSeKAmW0gbm90IGludGVyZXN0ZWQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taUNoYXRFcDJfMV82YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1MTciIG5hbWU9Ik5hb21pQ2hhdEVwMl8xXzZhIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsNjQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgID0gJnF1b3Q7TmFvbWlDaGF0RXAyXzFfNmEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJG5hb21pX29mZmVyID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICROYW9taV9ub3Rlcy5wdXNoKCZxdW90O1NoZSB0ZXh0ZWQgbWUgYWdhaW4gdG8gb2ZmZXIgaGVyIGhlbHAgaW4gbWFraW5nIHRoZSBmYW50YXN5IGhhcHBlbiwgYW5kIEkgZGVjaWRlZCB0byBhY2NlcHQuJnF1b3Q7KSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1lvdSBrbm93LCB3aGVuIHlvdSBwdXQgaXQgbGlrZSB0aGF0LCBpdCBkb2VzbuKAmXQgc291bmQgc28gYmFkJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGtub3csIHdoZW4geW91IHB1dCBpdCBsaWtlIHRoYXQsIGl0IGRvZXNu4oCZdCBzb3VuZCBzbyBiYWQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1lvdSBrbm93LCB3aGVuIHlvdSBwdXQgaXQgbGlrZSB0aGF0LCBpdCBkb2VzbuKAmXQgc291bmQgc28gYmFkJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3RvbGtrcG9sa2thb2xra2ZvbGtrSW9sa2tPb2xra2ZvbGtrdSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RJZCAgPSAmcXVvdDsjdG9sa2twb2xra2FvbGtrZm9sa2tJb2xra09vbGtrZm9sa2t1JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7QWxyaWdodCwgeW914oCZdmUgY29udmluY2VkIG1lLiBMZXTigJlzIHNlZSB3aGF0IHlvdeKAmXZlIGdvdCZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlDaGF0RXAyXzFfN2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtBbHJpZ2h0LCB5b3XigJl2ZSBjb252aW5jZWQgbWUuIExldOKAmXMgc2VlIHdoYXQgeW914oCZdmUgZ290JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlDaGF0RXAyXzFfN2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTE4IiBuYW1lPSJOYW9taUNoYXRFcDJfMV82YiIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDY0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pQ2hhdEVwMl8xXzZiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkTmFvbWlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRuYW9taV9lbmVteSA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkTmFvbWlfbm90ZXMucHVzaCgmcXVvdDtOYW9taSB0ZXh0ZWQgbWUgYWdhaW4gdG8gb2ZmZXIgaGVyIGhlbHAgaW4gbWFraW5nIHRoZSBmYW50YXN5IGhhcHBlbiwgYnV0IEkgdHVybmVkIGhlciBkb3duIG9uY2UgbW9yZS4mcXVvdDspJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TGlrZSBJIHNhaWQsIEnigJltIG5vdCBpbnRlcmVzdGVkJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGlrZSBJIHNhaWQsIEnigJltIG5vdCBpbnRlcmVzdGVkJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtMaWtlIEkgc2FpZCwgSeKAmW0gbm90IGludGVyZXN0ZWQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7eW9sa2tGb2xra2RvbGtrS29sa2t6b2xra1BvbGtrSW9sa2t5JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyN5b2xra0ZvbGtrZG9sa2tLb2xra3pvbGtrUG9sa2tJb2xra3kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGlzIGlzIGJldHdlZW4gQW5uaWUgYW5kIG1lJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taUNoYXRFcDJfMV83YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoaXMgaXMgYmV0d2VlbiBBbm5pZSBhbmQgbWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtOYW9taUNoYXRFcDJfMV83YiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1MTkiIG5hbWU9Ik5hb21pQ2hhdEVwMl8xXzdhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDY0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pQ2hhdEVwMl8xXzdhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkTmFvbWlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0FscmlnaHQsIHlvdeKAmXZlIGNvbnZpbmNlZCBtZS4gTGV04oCZcyBzZWUgd2hhdCB5b3XigJl2ZSBnb3QmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbHJpZ2h0LCB5b3XigJl2ZSBjb252aW5jZWQgbWUuIExldOKAmXMgc2VlIHdoYXQgeW914oCZdmUgZ290JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtBbHJpZ2h0LCB5b3XigJl2ZSBjb252aW5jZWQgbWUuIExldOKAmXMgc2VlIHdoYXQgeW914oCZdmUgZ290JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjVzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O1lvdSB3b27igJl0IHJlZ3JldCB0aGlzLCAkbmFtZSZxdW90OyAmcXVvdDtSb2xra0JvbGtrTW9sa2tUb2xra3NvbGtrbG9sa2t2b2xra3lvbGtrTm9sa2thb2xra3VvbGtrQW9sa2tLb2xra3lvbGtrSW9sa2tZJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSB3b27igJl0IHJlZ3JldCB0aGlzLCAkbmFtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7WW91IHdvbuKAmXQgcmVncmV0IHRoaXMsICRuYW1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O05vbGtrc29sa2tsb2xra2VvbGtrY29sa2tnb2xra3NvbGtrcSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMS40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3RJZCAgPSAmcXVvdDsjTm9sa2tzb2xra2xvbGtrZW9sa2tjb2xra2dvbGtrc29sa2txJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7V2UmIzM5O2xsIHNlZS4uLiZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlDaGF0RXAyXzFfOGEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXZSYjMzk7bGwgc2VlLi4uJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlDaGF0RXAyXzFfOGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTIwIiBuYW1lPSJOYW9taUNoYXRFcDJfMV83YiIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSw2NDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRTdGF0ZSAgPSAmcXVvdDtOYW9taUNoYXRFcDJfMV83YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJE5hb21pX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGlzIGlzIGJldHdlZW4gQW5uaWUgYW5kIG1lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhpcyBpcyBiZXR3ZWVuIEFubmllIGFuZCBtZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7VGhpcyBpcyBiZXR3ZWVuIEFubmllIGFuZCBtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwoKJmx0O2RpdiBpZD0mcXVvdDtOb2xra1VvbGtrcG9sa2tHb2xra21vbGtram9sa2tJb2xra2ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0SWQgID0gJnF1b3Q7I05vbGtrVW9sa2twb2xra0dvbGtrbW9sa2tqb2xra0lvbGtrYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0l0IGhhcyBub3RoaW5nIHRvIGRvIHdpdGggeW91JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtOYW9taUNoYXRFcDJfMV84YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0l0IGhhcyBub3RoaW5nIHRvIGRvIHdpdGggeW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlDaGF0RXAyXzFfOGImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTIxIiBuYW1lPSJOYW9taUNoYXRFcDJfMV84YSIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDY2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlICA9ICZxdW90O05hb21pQ2hhdEVwMl8xXzhhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkTmFvbWlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1dl4oCZbGwgc2VlLi4uJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2XigJlsbCBzZWUuLi4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1dl4oCZbGwgc2VlLi4uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O09oLCB5b3XigJlsbCBzZWUgd2hhdCBJ4oCZbSBjYXBhYmxlIG9mJnF1b3Q7ICZxdW90O0dvbGtrZm9sa2tYb2xra1pvbGtrU29sa2tGb2xra2JvbGtrb29sa2t5b2xra3RvbGtrT29sa2tFb2xra3pvbGtrY29sa2tkb2xra0MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2gsIHlvdeKAmWxsIHNlZSB3aGF0IEnigJltIGNhcGFibGUgb2YmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O09oLCB5b3XigJlsbCBzZWUgd2hhdCBJ4oCZbSBjYXBhYmxlIG9mJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuNnMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfY29uZmlkZW5jZS53ZWJwJnF1b3Q7IHRydWUgJnF1b3Q7TmFvbWkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogNCwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfY29uZmlkZW5jZS53ZWJwJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAyLjZzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdCA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSA9ICZxdW90O0FubmllQ2hhdEVwMl8yXzEmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtIZXkgaG9uZXksIGp1c3QgZ290IGhvbWUmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q78J+YjyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgPSAmcXVvdDtOYW9taUNoYXRFcDJfMV84YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICROYW9taV9sYXN0X2hvdXIgPSAmcXVvdDsxNzo0NiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICROYW9taV9jaGF0ID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkaG91ciA9ICZxdW90OzE3OjQ2JnF1b3Q7Jmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtvZmZsaW5lLXRleHQmcXVvdDsmZ3Q7TmFvbWkgaXMgb2ZmbGluZSZsdDsvZGl2Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1MjIiIG5hbWU9Ik5hb21pQ2hhdEVwMl8xXzhiIiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsNjYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0U3RhdGUgID0gJnF1b3Q7TmFvbWlDaGF0RXAyXzFfOGImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICROYW9taV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SXQgaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdCBoYXMgbm90aGluZyB0byBkbyB3aXRoIHlvdSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7SXQgaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCB5b3UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuM3MgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7WW914oCZcmUgYWJzb2x1dGVseSBpbnN1ZmZlcmFibGUmcXVvdDsgJnF1b3Q7Vm9sa2t6b2xra3lvbGtrTG9sa2thb2xra3lvbGtrdG9sa2tVb2xra0JvbGtraG9sa2tKb2xra3pvbGtrcW9sa2tEb2xra0dvbGtrdSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtZb3XigJlyZSBhYnNvbHV0ZWx5IGluc3VmZmVyYWJsZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7WW914oCZcmUgYWJzb2x1dGVseSBpbnN1ZmZlcmFibGUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4ycyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjZzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O1RoYXTigJlzIHdoeSBJ4oCZdmUgbmV2ZXIgbGlrZWQgeW91JnF1b3Q7ICZxdW90O3pvbGtrbm9sa2trb2xra2dvbGtrcG9sa2txb2xra1lvbGtrV29sa2tXb2xra0FvbGtrYm9sa2tab2xra0hvbGtrZG9sa2tIb2xra0ImcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtOYW9taSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhhdOKAmXMgd2h5IEnigJl2ZSBuZXZlciBsaWtlZCB5b3UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O1RoYXTigJlzIHdoeSBJ4oCZdmUgbmV2ZXIgbGlrZWQgeW91JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7dG9sa2t6b2xra3NvbGtrR29sa2tlb2xra1BvbGtreW9sa2tpJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjRzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdElkICA9ICZxdW90OyN0b2xra3pvbGtrc29sa2tHb2xra2VvbGtrUG9sa2t5b2xra2kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtMaWtld2lzZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7TmFvbWlDaGF0RXAyXzFfOSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0xpa2V3aXNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7TmFvbWlDaGF0RXAyXzFfOSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1MjMiIG5hbWU9Ik5hb21pQ2hhdEVwMl8xXzkiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCw2NjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRTdGF0ZSAgPSAmcXVvdDtOYW9taUNoYXRFcDJfMV85JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkTmFvbWlfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0xpa2V3aXNlJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGlrZXdpc2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0xpa2V3aXNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O05hb21pJnF1b3Q7ICZxdW90O0VpdGhlciB3YXksIEnigJlsbCBkbyB3aGF0ZXZlciBJIG5lZWQgdG8gaGF2ZSBmdW4mcXVvdDsgJnF1b3Q7Y29sa2tPb2xra0ZvbGtrYm9sa2twb2xra29vbGtrc29sa2tob2xra3NvbGtrbW9sa2tIb2xra09vbGtrWm9sa2ttb2xra2NvbGtrTiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtFaXRoZXIgd2F5LCBJ4oCZbGwgZG8gd2hhdGV2ZXIgSSBuZWVkIHRvIGhhdmUgZnVuJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtFaXRoZXIgd2F5LCBJ4oCZbGwgZG8gd2hhdGV2ZXIgSSBuZWVkIHRvIGhhdmUgZnVuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuOXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtOYW9taSZxdW90OyAmcXVvdDtDb25zaWRlciB5b3Vyc2VsZiB3YXJuZWQmcXVvdDsgJnF1b3Q7QW9sa2tub2xra0lvbGtraW9sa2tpb2xra0tvbGtra29sa2tDb2xra0JvbGtrdm9sa2tCb2xra3NvbGtrZm9sa2t3b2xra0dvbGtrQyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O05hb21pJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtDb25zaWRlciB5b3Vyc2VsZiB3YXJuZWQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0NvbnNpZGVyIHlvdXJzZWxmIHdhcm5lZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjhzJmd0OyZndDsKJmx0OyZsdDttZXNzYWdlX2Vtb2ppICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2NvbmZpZGVuY2Uud2VicCZxdW90OyB0cnVlICZxdW90O05hb21pJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cucHVzaCh7IHR5cGU6IDQsIHNlbmRlcjogJnF1b3Q7TmFvbWkmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2NvbmZpZGVuY2Uud2VicCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMy44cyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2NoYXQgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuOHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgPSAmcXVvdDtBbm5pZUNoYXRFcDJfMl8xJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuOHMmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SGV5IGhvbmV5LCBqdXN0IGdvdCBob21lJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuOHMmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O/CfmI8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkTmFvbWlfY2hhdFN0YXRlID0gJnF1b3Q7TmFvbWlDaGF0RXAyXzFfOGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkTmFvbWlfbGFzdF9ob3VyID0gJnF1b3Q7MTc6NDYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkTmFvbWlfY2hhdCA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDsxNzo0NiZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7b2ZmbGluZS10ZXh0JnF1b3Q7Jmd0O05hb21pIGlzIG9mZmxpbmUmbHQ7L2RpdiZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTI0IiBuYW1lPSJOYW9taV9ub3RlIiB0YWdzPSJub3Rlc2luIG5vdGhvdXIiIHBvc2l0aW9uPSI0NzUsNjYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtoZWFkZXIgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7TmFvbWkmcXVvdDsgJnF1b3Q7Tm90ZXMmcXVvdDsgdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7ZGl2IGlkPSZxdW90O3BhZGRpbmctY29udGFpbmVyJnF1b3Q7IGNsYXNzPSZxdW90O3RleHRfYmxhY2smcXVvdDsmZ3Q7CiAgICAgICAgJmx0O2RpdiZndDstIFNoZeKAmXMgQW5uaWXigJlzIGJlc3QgZnJpZW5kLCB0aGV54oCZdmUga25vd24gZWFjaCBvdGhlciBzaW5jZSB0aGV5IHdlcmUga2lkcy4gTmFvbWkgaGFzIGFsd2F5cyBzaG93biBzb21lIGhvc3RpbGl0eSB0b3dhcmQgbWUsIGFuZCBJ4oCZdmUgYWx3YXlzIGNvbnNpZGVyZWQgaGVyIGEgYmFkIGluZmx1ZW5jZSBvbiBBbm5pZS4mbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7Jmx0O2ZvciBfaSByYW5nZSAkTmFvbWlfbm90ZXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2IHN0eWxlPSZxdW90O21hcmdpbi10b3A6IDE2cHgmcXVvdDsmZ3Q7LSBfaSZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsmbHQ7L2ZvciZndDsmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1MjUiIG5hbWU9IlBoaWxsaXBzX2NoYXQiIHRhZ3M9Im1hcHAgbm90aG91ciIgcG9zaXRpb249IjYwMCw2NjAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwovKnJlZ2lvbiBFbWlseSBjaGF0Ki8KJmx0OyZsdDtpZiAkUGhpbGxpcHNfY2hhdCA9PSB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7aGVhZGVyICZxdW90O01yLiBQaGlsbGlwcyZxdW90OyAmcXVvdDtQaGlsbGlwcyZxdW90OyAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyAkUGhpbGxpcHNfcGF1c2VkJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtoZWFkZXIgJnF1b3Q7TXIuIFBoaWxsaXBzJnF1b3Q7ICZxdW90O1BoaWxsaXBzJnF1b3Q7ICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7bWVzc2FnZV9jb250YWluZXImcXVvdDsmZ3Q7CiZsdDsmbHQ7Zm9yIF9saW5lIHJhbmdlICRQaGlsbGlwc19jaGF0TG9nJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgX2xpbmUudHlwZSA9PSAxJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgX2xpbmUuc2VuZGVyIF9saW5lLm1lc3NhZ2UgX2xpbmUuYXZhdGFyJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZWlmIF9saW5lLnR5cGUgPT0gMiZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDttZXNzYWdlX2ltZyBfbGluZS5tZXNzYWdlJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZWlmIF9saW5lLnR5cGUgPT0gMyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDttZXNzYWdlX3ZpZGVvIF9saW5lLm1lc3NhZ2VbMF0gX2xpbmUubWVzc2FnZVsxXSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2VpZiBfbGluZS50eXBlID09IDQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bWVzc2FnZV9lbW9qaSBfbGluZS5tZXNzYWdlIGZhbHNlIF9saW5lLnNlbmRlciZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7L2ZvciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJFBoaWxsaXBzX3BhdXNlZCA9PSBmYWxzZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRQaGlsbGlwc19jaGF0ID09IHRydWUmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkUGhpbGxpcHNfY2hhdFN0YXRlJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBAaWQ9JnF1b3Q7JFBoaWxsaXBzX2xhc3RJZC5zbGljZSgxKSZxdW90OyZndDsmbHQ7L2RpdiZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O2VuZCZxdW90OyZndDsmbHQ7L2RpdiZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7Y2hhdF9iYXImcXVvdDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7Y29udGVudCZxdW90OyZndDsKJmx0OyZsdDtpZiAkUGhpbGxpcHNfcGF1c2VkID09IHRydWUmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkUGhpbGxpcHNfb3B0aW9uc1swXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICRQaGlsbGlwc19vcHRpb25zWzBdLnRleHQmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJFBoaWxsaXBzX29wdGlvbnNbMF0ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRQaGlsbGlwc19vcHRpb25zWzFdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJFBoaWxsaXBzX29wdGlvbnNbMV0udGV4dCZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkUGhpbGxpcHNfb3B0aW9uc1sxXS5wYXNzYWdlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJFBoaWxsaXBzX29wdGlvbnNbMl0mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bGluayAkUGhpbGxpcHNfb3B0aW9uc1syXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpbmNsdWRlICRQaGlsbGlwc19vcHRpb25zWzJdLnBhc3NhZ2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkUGhpbGxpcHNfb3B0aW9uc1szXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICRQaGlsbGlwc19vcHRpb25zWzNdLnRleHQmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJFBoaWxsaXBzX29wdGlvbnNbM10ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0O3RpbWVkIDAuMnMmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbEluc3RhKCk7CiAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTI2IiBuYW1lPSJQaGlsbGlwc1N0YXJ0MSIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDY2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7UGhpbGxpcHMmcXVvdDsgJnF1b3Q7SeKAmW0gZ29pbmcgdG8gbmVlZCB0aGUgcmV2ZW51ZSByZXBvcnRzIGJ5IEZyaWRheS4gWW91IGhhdmUgZml2ZSBkYXlzLiZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtQaGlsbGlwcyZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gZ29pbmcgdG8gbmVlZCB0aGUgcmV2ZW51ZSByZXBvcnRzIGJ5IEZyaWRheS4gWW91IGhhdmUgZml2ZSBkYXlzLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7SeKAmW0gZ29pbmcgdG8gbmVlZCB0aGUgcmV2ZW51ZSByZXBvcnRzIGJ5IEZyaWRheS4gWW91IGhhdmUgZml2ZSBkYXlzLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjBzICZxdW90O1BoaWxsaXBzJnF1b3Q7ICZxdW90O0kgd2FudCB0aGVtIGNhdGVnb3JpemVkIGJ5IHNlY3RvciBhbmQgd2l0aCBwcm9qZWN0ZWQgZXN0aW1hdGVzLiZxdW90OyAmcXVvdDtQb2xra2JvbGtrY29sa2tzb2xra01vbGtrUW9sa2tWb2xra2tvbGtrT29sa2tub2xra09vbGtrS29sa2tLb2xra21vbGtrVW9sa2tBJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7UGhpbGxpcHMmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgd2FudCB0aGVtIGNhdGVnb3JpemVkIGJ5IHNlY3RvciBhbmQgd2l0aCBwcm9qZWN0ZWQgZXN0aW1hdGVzLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7SSB3YW50IHRoZW0gY2F0ZWdvcml6ZWQgYnkgc2VjdG9yIGFuZCB3aXRoIHByb2plY3RlZCBlc3RpbWF0ZXMuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7cW9sa2twb2xra2NvbGtrTW9sa2tub2xra3dvbGtrcW9sa2tzJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjJzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdElkICA9ICZxdW90OyNxb2xra3BvbGtrY29sa2tNb2xra25vbGtrd29sa2txb2xra3MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtNci4gUGhpbGxpcHMsIEkganVzdCBnb3QgaGVyZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7UGhpbGxpcHNTdGFydDFfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O01yLiBQaGlsbGlwcywgSSBqdXN0IGdvdCBoZXJlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7UGhpbGxpcHNTdGFydDFfMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjUyNyIgbmFtZT0iUGhpbGxpcHNTdGFydDFfMiIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDY2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdFN0YXRlICA9ICZxdW90O1BoaWxsaXBzU3RhcnQxXzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRQaGlsbGlwc19sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7TXIuIFBoaWxsaXBzLCBJIGp1c3QgZ290IGhlcmUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtNci4gUGhpbGxpcHMsIEkganVzdCBnb3QgaGVyZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7TXIuIFBoaWxsaXBzLCBJIGp1c3QgZ290IGhlcmUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7ZW9sa2tib2xra29vbGtrWm9sa2tHb2xra0tvbGtrT29sa2t5JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdElkICA9ICZxdW90OyNlb2xra2JvbGtrb29sa2tab2xra0dvbGtrS29sa2tPb2xra3kmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJ4oCZbSByZWFsbHkgbm90IHN1cmUgSSBjYW4gZ2F0aGVyIGFsbCB0aGUgaW5mb3JtYXRpb24gaW4ganVzdCBmaXZlIGRheXMmcXVvdDssIHBhc3NhZ2U6ICZxdW90O1BoaWxsaXBzU3RhcnQxXzMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtJ4oCZbSByZWFsbHkgbm90IHN1cmUgSSBjYW4gZ2F0aGVyIGFsbCB0aGUgaW5mb3JtYXRpb24gaW4ganVzdCBmaXZlIGRheXMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtQaGlsbGlwc1N0YXJ0MV8zJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjUyOCIgbmFtZT0iUGhpbGxpcHNTdGFydDFfMyIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDY2MDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdFN0YXRlICA9ICZxdW90O1BoaWxsaXBzU3RhcnQxXzMmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRQaGlsbGlwc19sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SeKAmW0gcmVhbGx5IG5vdCBzdXJlIEkgY2FuIGdhdGhlciBhbGwgdGhlIGluZm9ybWF0aW9uIGluIGp1c3QgZml2ZSBkYXlzJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmW0gcmVhbGx5IG5vdCBzdXJlIEkgY2FuIGdhdGhlciBhbGwgdGhlIGluZm9ybWF0aW9uIGluIGp1c3QgZml2ZSBkYXlzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtJ4oCZbSByZWFsbHkgbm90IHN1cmUgSSBjYW4gZ2F0aGVyIGFsbCB0aGUgaW5mb3JtYXRpb24gaW4ganVzdCBmaXZlIGRheXMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Sm9sa2txb2xra2xvbGtrRW9sa2tSb2xra2VvbGtrdW9sa2tTJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdElkICA9ICZxdW90OyNKb2xra3FvbGtrbG9sa2tFb2xra1JvbGtrZW9sa2t1b2xra1MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtMZXQgYWxvbmUgcHJlcGFyZSB0aGUgcmVwb3J0cyZxdW90OywgcGFzc2FnZTogJnF1b3Q7UGhpbGxpcHNTdGFydDFfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0xldCBhbG9uZSBwcmVwYXJlIHRoZSByZXBvcnRzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7UGhpbGxpcHNTdGFydDFfNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1MjkiIG5hbWU9IlBoaWxsaXBzU3RhcnQxXzQiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsNjYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0U3RhdGUgID0gJnF1b3Q7UGhpbGxpcHNTdGFydDFfNCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJFBoaWxsaXBzX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtMZXQgYWxvbmUgcHJlcGFyZSB0aGUgcmVwb3J0cyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0xldCBhbG9uZSBwcmVwYXJlIHRoZSByZXBvcnRzJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtMZXQgYWxvbmUgcHJlcGFyZSB0aGUgcmVwb3J0cyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC41cyAmcXVvdDtQaGlsbGlwcyZxdW90OyAmcXVvdDtJIGtuZXcgdGhpcyB3b3VsZCBoYXBwZW4uJnF1b3Q7ICZxdW90O21vbGtrYW9sa2tNb2xra0xvbGtrd29sa2tub2xra3pvbGtrVm9sa2tLb2xra25vbGtrQm9sa2t6b2xra1FvbGtrSm9sa2t2b2xra2MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtQaGlsbGlwcyZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBrbmV3IHRoaXMgd291bGQgaGFwcGVuLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7SSBrbmV3IHRoaXMgd291bGQgaGFwcGVuLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjRzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuN3MgJnF1b3Q7UGhpbGxpcHMmcXVvdDsgJnF1b3Q7SSBkb27igJl0IHVuZGVyc3RhbmQgd2h5IHlvdSB2b2x1bnRlZXJlZCBpZiB0aGUgZmlyc3QgdGhpbmcgeW914oCZcmUgZ29pbmcgdG8gZG8gaXMgbWFrZSBleGN1c2VzLiZxdW90OyAmcXVvdDtRb2xra1RvbGtrUG9sa2tNb2xra3NvbGtrdW9sa2tYb2xra1NvbGtrWW9sa2tVb2xra0NvbGtrSm9sa2tmb2xra29vbGtra29sa2t4JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7UGhpbGxpcHMmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZG9u4oCZdCB1bmRlcnN0YW5kIHdoeSB5b3Ugdm9sdW50ZWVyZWQgaWYgdGhlIGZpcnN0IHRoaW5nIHlvdeKAmXJlIGdvaW5nIHRvIGRvIGlzIG1ha2UgZXhjdXNlcy4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0kgZG9u4oCZdCB1bmRlcnN0YW5kIHdoeSB5b3Ugdm9sdW50ZWVyZWQgaWYgdGhlIGZpcnN0IHRoaW5nIHlvdeKAmXJlIGdvaW5nIHRvIGRvIGlzIG1ha2UgZXhjdXNlcy4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy43cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjNzICZxdW90O1BoaWxsaXBzJnF1b3Q7ICZxdW90O0xldCBtZSBiZSB2ZXJ5IGNsZWFyOiBtYWtlIHN1cmUgeW91IGhhdmUgdGhpcyByZWFkeSBieSBGcmlkYXkuJnF1b3Q7ICZxdW90O2lvbGtrUm9sa2ttb2xra1pvbGtrSm9sa2tPb2xra0hvbGtrTG9sa2tub2xra1FvbGtrUW9sa2tnb2xra0dvbGtrSW9sa2tPb2xra2wmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtQaGlsbGlwcyZxdW90OywgbWVzc2FnZTogJnF1b3Q7TGV0IG1lIGJlIHZlcnkgY2xlYXI6IG1ha2Ugc3VyZSB5b3UgaGF2ZSB0aGlzIHJlYWR5IGJ5IEZyaWRheS4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0xldCBtZSBiZSB2ZXJ5IGNsZWFyOiBtYWtlIHN1cmUgeW91IGhhdmUgdGhpcyByZWFkeSBieSBGcmlkYXkuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDUuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtQaGlsbGlwcyZxdW90OyAmcXVvdDtNYWtlIHN1cmUgdGhhdCByZXBvcnQgaXMgaW4gbXkgaW5ib3ggYnkgdGhhdCBkYXkuJnF1b3Q7ICZxdW90O0FvbGtrSW9sa2tyb2xra1hvbGtrT29sa2trb2xra0xvbGtrUG9sa2tzb2xra3ZvbGtrRW9sa2tLb2xra2tvbGtrc29sa2tKb2xra3YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtQaGlsbGlwcyZxdW90OywgbWVzc2FnZTogJnF1b3Q7TWFrZSBzdXJlIHRoYXQgcmVwb3J0IGlzIGluIG15IGluYm94IGJ5IHRoYXQgZGF5LiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7TWFrZSBzdXJlIHRoYXQgcmVwb3J0IGlzIGluIG15IGluYm94IGJ5IHRoYXQgZGF5LiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA3LjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7UGhpbGxpcHMmcXVvdDsgJnF1b3Q7SWYgdGhhdOKAmXMgbm90IHRoZSBjYXNlLCBjb25zaWRlciBsb29raW5nIGZvciBhIG5ldyBqb2IuJnF1b3Q7ICZxdW90O1hvbGtram9sa2tYb2xra1BvbGtrcG9sa2tBb2xra25vbGtrV29sa2tPb2xra0JvbGtrbW9sa2tCb2xra0lvbGtrbG9sa2t6b2xra3omcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtQaGlsbGlwcyZxdW90OywgbWVzc2FnZTogJnF1b3Q7SWYgdGhhdOKAmXMgbm90IHRoZSBjYXNlLCBjb25zaWRlciBsb29raW5nIGZvciBhIG5ldyBqb2IuJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtJZiB0aGF04oCZcyBub3QgdGhlIGNhc2UsIGNvbnNpZGVyIGxvb2tpbmcgZm9yIGEgbmV3IGpvYi4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgOS4wcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O1BoaWxsaXBzJnF1b3Q7ICZxdW90O1RoaXMgaXMgYSBzZXJpb3VzIGNvbXBhbnksIG5vdCBhIGtpbmRlcmdhcnRlbi4mcXVvdDsgJnF1b3Q7R29sa2tGb2xra0xvbGtrSm9sa2tFb2xra1VvbGtrVm9sa2tvb2xra2NvbGtrZm9sa2tEb2xra3dvbGtrbW9sa2tCb2xra3RvbGtrSSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1BoaWxsaXBzJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGlzIGlzIGEgc2VyaW91cyBjb21wYW55LCBub3QgYSBraW5kZXJnYXJ0ZW4uJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtUaGlzIGlzIGEgc2VyaW91cyBjb21wYW55LCBub3QgYSBraW5kZXJnYXJ0ZW4uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7Um9sa2tLb2xra21vbGtreG9sa2tCb2xra2pvbGtrbG9sa2tCJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAxMC40cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3RJZCAgPSAmcXVvdDsjUm9sa2tLb2xra21vbGtreG9sa2tCb2xra2pvbGtrbG9sa2tCJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VW5kZXJzdG9vZCwgc2lyLiBJ4oCZbGwgaGF2ZSBhbGwgdGhlIHJlcG9ydHMgcmVhZHkgYnkgRnJpZGF5JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtQaGlsbGlwc1N0YXJ0MV81YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1VuZGVyc3Rvb2QsIHNpci4gSeKAmWxsIGhhdmUgYWxsIHRoZSByZXBvcnRzIHJlYWR5IGJ5IEZyaWRheSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O1BoaWxsaXBzU3RhcnQxXzVhJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0SWQgID0gJnF1b3Q7I1JvbGtrS29sa2ttb2xra3hvbGtrQm9sa2tqb2xra2xvbGtrQiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0nigJlsbCBkbyB3aGF0IEkgY2FuLCBzaXImcXVvdDssIHBhc3NhZ2U6ICZxdW90O1BoaWxsaXBzU3RhcnQxXzViJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SeKAmWxsIGRvIHdoYXQgSSBjYW4sIHNpciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O1BoaWxsaXBzU3RhcnQxXzViJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjUzMCIgbmFtZT0iUGhpbGxpcHNTdGFydDFfNWEiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsNjYwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0U3RhdGUgID0gJnF1b3Q7UGhpbGxpcHNTdGFydDFfNWEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRQaGlsbGlwc19sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VW5kZXJzdG9vZCwgc2lyLiBJ4oCZbGwgaGF2ZSBhbGwgdGhlIHJlcG9ydHMgcmVhZHkgYnkgRnJpZGF5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VW5kZXJzdG9vZCwgc2lyLiBJ4oCZbGwgaGF2ZSBhbGwgdGhlIHJlcG9ydHMgcmVhZHkgYnkgRnJpZGF5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtVbmRlcnN0b29kLCBzaXIuIEnigJlsbCBoYXZlIGFsbCB0aGUgcmVwb3J0cyByZWFkeSBieSBGcmlkYXkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7UGhpbGxpcHMmcXVvdDsgJnF1b3Q7VGhhdOKAmXMgbW9yZSBsaWtlIGl0LiZxdW90OyAmcXVvdDtCb2xra3hvbGtrZm9sa2tlb2xra2xvbGtrUm9sa2trb2xra1lvbGtreG9sa2t4b2xra1BvbGtreW9sa2tvb2xra2dvbGtrR29sa2tSJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7UGhpbGxpcHMmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RoYXTigJlzIG1vcmUgbGlrZSBpdC4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O1RoYXTigJlzIG1vcmUgbGlrZSBpdC4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjhzICZxdW90O1BoaWxsaXBzJnF1b3Q7ICZxdW90O0hhaWxleSB3aWxsIGJyaWVmIHlvdSBvbiB3aGF0IHdlIG5lZWQuJnF1b3Q7ICZxdW90O1VvbGtrSm9sa2tsb2xra09vbGtram9sa2t4b2xra0RvbGtreW9sa2t6b2xra1lvbGtrU29sa2tDb2xra21vbGtrQm9sa2tlb2xra2kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtQaGlsbGlwcyZxdW90OywgbWVzc2FnZTogJnF1b3Q7SGFpbGV5IHdpbGwgYnJpZWYgeW91IG9uIHdoYXQgd2UgbmVlZC4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0hhaWxleSB3aWxsIGJyaWVmIHlvdSBvbiB3aGF0IHdlIG5lZWQuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS40cyAmcXVvdDtQaGlsbGlwcyZxdW90OyAmcXVvdDtJ4oCZbGwgdGVsbCBoZXIgdG8gZW1haWwgeW91IGFzIHNvb24gYXMgc2hlIGdldHMgdG8gdGhlIG9mZmljZS4mcXVvdDsgJnF1b3Q7WG9sa2tHb2xra09vbGtrWm9sa2tzb2xra05vbGtrRG9sa2tob2xra3RvbGtraW9sa2tlb2xra0RvbGtraW9sa2tSb2xra09vbGtraiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1BoaWxsaXBzJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbGwgdGVsbCBoZXIgdG8gZW1haWwgeW91IGFzIHNvb24gYXMgc2hlIGdldHMgdG8gdGhlIG9mZmljZS4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0nigJlsbCB0ZWxsIGhlciB0byBlbWFpbCB5b3UgYXMgc29vbiBhcyBzaGUgZ2V0cyB0byB0aGUgb2ZmaWNlLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O2lvbGtrZm9sa2tPb2xra2ZvbGtrZW9sa2tlb2xra2tvbGtrSiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC43cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3RJZCAgPSAmcXVvdDsjaW9sa2tmb2xra09vbGtrZm9sa2tlb2xra2VvbGtra29sa2tKJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VW5kZXJzdG9vZCZxdW90OywgcGFzc2FnZTogJnF1b3Q7UGhpbGxpcHNTdGFydDFfNiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1VuZGVyc3Rvb2QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtQaGlsbGlwc1N0YXJ0MV82JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjUzMSIgbmFtZT0iUGhpbGxpcHNTdGFydDFfNWIiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCw2NzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRTdGF0ZSAgPSAmcXVvdDtQaGlsbGlwc1N0YXJ0MV81YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJFBoaWxsaXBzX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJ4oCZbGwgZG8gd2hhdCBJIGNhbiwgc2lyJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SeKAmWxsIGRvIHdoYXQgSSBjYW4sIHNpciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7SeKAmWxsIGRvIHdoYXQgSSBjYW4sIHNpciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtQaGlsbGlwcyZxdW90OyAmcXVvdDtOb3Qgd2hhdCB5b3UgY2FuLCBkbyB3aGF0IG5lZWRzIHRvIGJlIGRvbmUuJnF1b3Q7ICZxdW90O2VvbGtrWW9sa2ttb2xra3BvbGtrVW9sa2tXb2xra0RvbGtrVW9sa2tTb2xra1hvbGtrRG9sa2tob2xra3hvbGtrZW9sa2tSb2xra1kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtQaGlsbGlwcyZxdW90OywgbWVzc2FnZTogJnF1b3Q7Tm90IHdoYXQgeW91IGNhbiwgZG8gd2hhdCBuZWVkcyB0byBiZSBkb25lLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7Tm90IHdoYXQgeW91IGNhbiwgZG8gd2hhdCBuZWVkcyB0byBiZSBkb25lLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuN3MgJnF1b3Q7UGhpbGxpcHMmcXVvdDsgJnF1b3Q7SSBkb27igJl0IHVuZGVyc3RhbmQgcGVvcGxlIGZyb20geW91ciBnZW5lcmF0aW9uLiZxdW90OyAmcXVvdDtIb2xra2VvbGtrem9sa2tBb2xra09vbGtrU29sa2tWb2xra2xvbGtrd29sa2tQb2xra0NvbGtrTW9sa2t6b2xra2FvbGtrQW9sa2tiJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7UGhpbGxpcHMmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgZG9u4oCZdCB1bmRlcnN0YW5kIHBlb3BsZSBmcm9tIHlvdXIgZ2VuZXJhdGlvbi4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0kgZG9u4oCZdCB1bmRlcnN0YW5kIHBlb3BsZSBmcm9tIHlvdXIgZ2VuZXJhdGlvbi4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy4ycyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjNzICZxdW90O1BoaWxsaXBzJnF1b3Q7ICZxdW90O0V2ZW4gd2hlbiB0aGVpciBqb2IgaXMgb24gdGhlIGxpbmUsIHRoZXkgc3RpbGwgZG9u4oCZdCBhY3QgcHJvcGVybHkuJnF1b3Q7ICZxdW90O2pvbGtreG9sa2txb2xra0RvbGtrT29sa2tQb2xra0RvbGtrcG9sa2tPb2xra2NvbGtrUG9sa2tJb2xra0dvbGtrdW9sa2tWb2xra24mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtQaGlsbGlwcyZxdW90OywgbWVzc2FnZTogJnF1b3Q7RXZlbiB3aGVuIHRoZWlyIGpvYiBpcyBvbiB0aGUgbGluZSwgdGhleSBzdGlsbCBkb27igJl0IGFjdCBwcm9wZXJseS4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0V2ZW4gd2hlbiB0aGVpciBqb2IgaXMgb24gdGhlIGxpbmUsIHRoZXkgc3RpbGwgZG9u4oCZdCBhY3QgcHJvcGVybHkuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDUuMXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS41cyAmcXVvdDtQaGlsbGlwcyZxdW90OyAmcXVvdDtJ4oCZbGwgaGF2ZSBIYWlsZXkgZW1haWwgeW91IHRoZSBkZXRhaWxzIGFzIHNvb24gYXMgc2hlIGdldHMgdG8gdGhlIG9mZmljZS4mcXVvdDsgJnF1b3Q7RW9sa2tmb2xra2lvbGtrU29sa2tkb2xra0pvbGtrcW9sa2tYb2xra1VvbGtrS29sa2tMb2xra3ZvbGtrQm9sa2ttb2xra3JvbGtrQiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1BoaWxsaXBzJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbGwgaGF2ZSBIYWlsZXkgZW1haWwgeW91IHRoZSBkZXRhaWxzIGFzIHNvb24gYXMgc2hlIGdldHMgdG8gdGhlIG9mZmljZS4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0nigJlsbCBoYXZlIEhhaWxleSBlbWFpbCB5b3UgdGhlIGRldGFpbHMgYXMgc29vbiBhcyBzaGUgZ2V0cyB0byB0aGUgb2ZmaWNlLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O2tvbGtrT29sa2t2b2xra1dvbGtrb29sa2tnb2xra0ZvbGtrWSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNy4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3RJZCAgPSAmcXVvdDsja29sa2tPb2xra3ZvbGtrV29sa2tvb2xra2dvbGtrRm9sa2tZJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VW5kZXJzdG9vZCZxdW90OywgcGFzc2FnZTogJnF1b3Q7UGhpbGxpcHNTdGFydDFfNiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1VuZGVyc3Rvb2QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtQaGlsbGlwc1N0YXJ0MV82JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjUzMiIgbmFtZT0iUGhpbGxpcHNTdGFydDFfNiIgdGFncz0iIiBwb3NpdGlvbj0iMjI1LDY3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdFN0YXRlICA9ICZxdW90O1BoaWxsaXBzU3RhcnQxXzYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRQaGlsbGlwc19sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VW5kZXJzdG9vZCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1VuZGVyc3Rvb2QmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O1VuZGVyc3Rvb2QmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7VW5kZXJzdG9vZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0U3RhdGUgPSAmcXVvdDtQaGlsbGlwc1N0YXJ0NCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0X2hvdXIgPSAmcXVvdDswOTowMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0ID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkaG91ciA9ICZxdW90OzA5OjAzJnF1b3Q7Jmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtvZmZsaW5lLXRleHQmcXVvdDsmZ3Q7UGhpbGxpcHMgaXMgb2ZmbGluZSZsdDsvZGl2Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzZXQgJFBoaWxsaXBzX25vdGVzLnB1c2goJnF1b3Q7SGUgdG9sZCBtZSB0aGF0IGlmIEkgZG9u4oCZdCBoYXZlIHRoZSByZXBvcnRzIGJ5IEZyaWRheSwgSeKAmWxsIGJlIGZpcmVkLiZxdW90OykmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0hpICRuYW1lLCBNci4gUGhpbGxpcHMgYXNrZWQgbWUgdG8gc2VuZCB5b3UgdGhlIGxhc3QgcXVhcnRlcuKAmXMgcmVwb3J0IHNvIHlvdSBjYW4gdXNlIGl0IGFzIGEgcmVmZXJlbmNlJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRIYWlsZXlfdmlzaWJsZSA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTMzIiBuYW1lPSJQaGlsbGlwc0NoYXRFcDNfMSIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDY3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7UGhpbGxpcHMmcXVvdDsgJnF1b3Q7SG934oCZcyB0aGUgaW5jb21lIHJlcG9ydCBjb21pbmcgYWxvbmc/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1BoaWxsaXBzJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtIb3figJlzIHRoZSBpbmNvbWUgcmVwb3J0IGNvbWluZyBhbG9uZz8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0hvd+KAmXMgdGhlIGluY29tZSByZXBvcnQgY29taW5nIGFsb25nPyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtsb2xra1FvbGtrV29sa2tKb2xra2lvbGtrVW9sa2tEb2xra3ImcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDAuNnMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0SWQgID0gJnF1b3Q7I2xvbGtrUW9sa2tXb2xra0pvbGtraW9sa2tVb2xra0RvbGtrciZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0l04oCZcyBwcm9ncmVzc2luZywgc2lyJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtQaGlsbGlwc0NoYXRFcDNfMiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0l04oCZcyBwcm9ncmVzc2luZywgc2lyJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7UGhpbGxpcHNDaGF0RXAzXzImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1MzQiIG5hbWU9IlBoaWxsaXBzQ2hhdEVwM18yIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsNjcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0U3RhdGUgID0gJnF1b3Q7UGhpbGxpcHNDaGF0RXAzXzImcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRQaGlsbGlwc19sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7SXTigJlzIHByb2dyZXNzaW5nLCBzaXImcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJdOKAmXMgcHJvZ3Jlc3NpbmcsIHNpciZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7SXTigJlzIHByb2dyZXNzaW5nLCBzaXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7UGhpbGxpcHMmcXVvdDsgJnF1b3Q7R29vZC4gSXTigJlzIGltcG9ydGFudCB0aGF0IGV2ZXJ5dGhpbmcgaXMgd2VsbCBkZXRhaWxlZC4mcXVvdDsgJnF1b3Q7TW9sa2tub2xra0VvbGtrR29sa2tEb2xra3dvbGtrS29sa2tYb2xra2xvbGtrRm9sa2tYb2xra01vbGtrRm9sa2tYb2xra1NvbGtrcCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1BoaWxsaXBzJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtHb29kLiBJdOKAmXMgaW1wb3J0YW50IHRoYXQgZXZlcnl0aGluZyBpcyB3ZWxsIGRldGFpbGVkLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7R29vZC4gSXTigJlzIGltcG9ydGFudCB0aGF0IGV2ZXJ5dGhpbmcgaXMgd2VsbCBkZXRhaWxlZC4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS43cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjNzICZxdW90O1BoaWxsaXBzJnF1b3Q7ICZxdW90O0nigJltIGxvb2tpbmcgZm9yIGxhc3QgbW9udGjigJlzIHNhbGVzIGRlcGFydG1lbnQgZmlsZXMsIGJ1dCBJIGNhbuKAmXQgZmluZCB0aGVtLiZxdW90OyAmcXVvdDtNb2xra0RvbGtrV29sa2tVb2xra0lvbGtrRG9sa2tvb2xra0tvbGtrZm9sa2tlb2xra1JvbGtrZW9sa2tVb2xra3JvbGtrY29sa2tmJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7UGhpbGxpcHMmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJltIGxvb2tpbmcgZm9yIGxhc3QgbW9udGjigJlzIHNhbGVzIGRlcGFydG1lbnQgZmlsZXMsIGJ1dCBJIGNhbuKAmXQgZmluZCB0aGVtLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7SeKAmW0gbG9va2luZyBmb3IgbGFzdCBtb250aOKAmXMgc2FsZXMgZGVwYXJ0bWVudCBmaWxlcywgYnV0IEkgY2Fu4oCZdCBmaW5kIHRoZW0uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4xcyAmcXVvdDtQaGlsbGlwcyZxdW90OyAmcXVvdDtUaGUgbG9nIHNheXMgeW91IHdlcmUgdGhlIGxhc3Qgb25lIHRvIHRha2UgaXQuJnF1b3Q7ICZxdW90O1ZvbGtrb29sa2tsb2xra1dvbGtreG9sa2tJb2xra1VvbGtrc29sa2tib2xra2FvbGtrVm9sa2tMb2xra2VvbGtrc29sa2tkb2xra0UmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtQaGlsbGlwcyZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhlIGxvZyBzYXlzIHlvdSB3ZXJlIHRoZSBsYXN0IG9uZSB0byB0YWtlIGl0LiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7VGhlIGxvZyBzYXlzIHlvdSB3ZXJlIHRoZSBsYXN0IG9uZSB0byB0YWtlIGl0LiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O21vbGtrem9sa2tJb2xra1BvbGtrRm9sa2tDb2xra2dvbGtrVSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNS4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3RJZCAgPSAmcXVvdDsjbW9sa2t6b2xra0lvbGtrUG9sa2tGb2xra0NvbGtrZ29sa2tVJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VW1tLCB5ZXMsIEkgcmVtZW1iZXIgYWNjaWRlbnRhbGx5IHRha2luZyB0aGVtIGZyb20gdGhlIG9mZmljZSZxdW90OywgcGFzc2FnZTogJnF1b3Q7UGhpbGxpcHNDaGF0RXAzXzMmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtVbW0sIHllcywgSSByZW1lbWJlciBhY2NpZGVudGFsbHkgdGFraW5nIHRoZW0gZnJvbSB0aGUgb2ZmaWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7UGhpbGxpcHNDaGF0RXAzXzMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTM1IiBuYW1lPSJQaGlsbGlwc0NoYXRFcDNfMyIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDY3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdFN0YXRlICA9ICZxdW90O1BoaWxsaXBzQ2hhdEVwM18zJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkUGhpbGxpcHNfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1VtbSwgeWVzLCBJIHJlbWVtYmVyIGFjY2lkZW50YWxseSB0YWtpbmcgdGhlbSBmcm9tIHRoZSBvZmZpY2UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtVbW0sIHllcywgSSByZW1lbWJlciBhY2NpZGVudGFsbHkgdGFraW5nIHRoZW0gZnJvbSB0aGUgb2ZmaWNlJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtVbW0sIHllcywgSSByZW1lbWJlciBhY2NpZGVudGFsbHkgdGFraW5nIHRoZW0gZnJvbSB0aGUgb2ZmaWNlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1dvbGtrYW9sa2tLb2xra3ZvbGtrR29sa2thb2xra1pvbGtrSiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3RJZCAgPSAmcXVvdDsjV29sa2thb2xra0tvbGtrdm9sa2tHb2xra2FvbGtrWm9sa2tKJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhleSBtdXN0IGJlIGF0IG15IGhvdXNlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtQaGlsbGlwc0NoYXRFcDNfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoZXkgbXVzdCBiZSBhdCBteSBob3VzZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O1BoaWxsaXBzQ2hhdEVwM180JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjUzNiIgbmFtZT0iUGhpbGxpcHNDaGF0RXAzXzQiIHRhZ3M9IiIgcG9zaXRpb249IjcyNSw2NzI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRTdGF0ZSAgPSAmcXVvdDtQaGlsbGlwc0NoYXRFcDNfNCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJFBoaWxsaXBzX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGV5IG11c3QgYmUgYXQgbXkgaG91c2UmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGV5IG11c3QgYmUgYXQgbXkgaG91c2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O1RoZXkgbXVzdCBiZSBhdCBteSBob3VzZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtQaGlsbGlwcyZxdW90OyAmcXVvdDtJcyB0aGVyZSBhbnl0aGluZyB5b3UgY2FuIGRvIHJpZ2h0PyZxdW90OyAmcXVvdDt3b2xra3RvbGtrZ29sa2tnb2xra0JvbGtrc29sa2tRb2xra0pvbGtrVm9sa2tXb2xra2VvbGtra29sa2t0b2xra1BvbGtrem9sa2tWJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7UGhpbGxpcHMmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0lzIHRoZXJlIGFueXRoaW5nIHlvdSBjYW4gZG8gcmlnaHQ/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtJcyB0aGVyZSBhbnl0aGluZyB5b3UgY2FuIGRvIHJpZ2h0PyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjZzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOXMgJnF1b3Q7UGhpbGxpcHMmcXVvdDsgJnF1b3Q7SSBuZWVkIHlvdSB0byBicmluZyB0aGVtIHRvIHRoZSBvZmZpY2UmcXVvdDsgJnF1b3Q7dW9sa2t0b2xra1dvbGtrVm9sa2tVb2xra2dvbGtrSW9sa2tOb2xra2hvbGtrQm9sa2tGb2xra3JvbGtrYW9sa2tZb2xra3ZvbGtrayZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1BoaWxsaXBzJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJIG5lZWQgeW91IHRvIGJyaW5nIHRoZW0gdG8gdGhlIG9mZmljZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7SSBuZWVkIHlvdSB0byBicmluZyB0aGVtIHRvIHRoZSBvZmZpY2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDt4b2xra0hvbGtrZm9sa2tQb2xra2hvbGtrcW9sa2tEb2xra2EmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDMuMXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0SWQgID0gJnF1b3Q7I3hvbGtrSG9sa2tmb2xra1BvbGtraG9sa2txb2xra0RvbGtrYSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0J1dCBzaXIsIEnigJltIGluIGFub3RoZXIgc3RhdGUgcmlnaHQgbm93JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtQaGlsbGlwc0NoYXRFcDNfNSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0J1dCBzaXIsIEnigJltIGluIGFub3RoZXIgc3RhdGUgcmlnaHQgbm93JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7UGhpbGxpcHNDaGF0RXAzXzUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTM3IiBuYW1lPSJQaGlsbGlwc0NoYXRFcDNfNSIgdGFncz0iIiBwb3NpdGlvbj0iODUwLDY3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdFN0YXRlICA9ICZxdW90O1BoaWxsaXBzQ2hhdEVwM181JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkUGhpbGxpcHNfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0J1dCBzaXIsIEnigJltIGluIGFub3RoZXIgc3RhdGUgcmlnaHQgbm93JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IHNpciwgSeKAmW0gaW4gYW5vdGhlciBzdGF0ZSByaWdodCBub3cmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0J1dCBzaXIsIEnigJltIGluIGFub3RoZXIgc3RhdGUgcmlnaHQgbm93JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjVzICZxdW90O1BoaWxsaXBzJnF1b3Q7ICZxdW90O0kgZG9u4oCZdCBjYXJlIGhvdywgYnV0IEkgbmVlZCB0aGF0IGZpbGUgaGVyZSBpbiB0aGUgb2ZmaWNlIGJlZm9yZSBzaXguJnF1b3Q7ICZxdW90O0hvbGtrdm9sa2tKb2xra2RvbGtram9sa2t4b2xra09vbGtrZG9sa2ttb2xra2ZvbGtrT29sa2tPb2xra2VvbGtrQm9sa2tqb2xra3MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtQaGlsbGlwcyZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBkb27igJl0IGNhcmUgaG93LCBidXQgSSBuZWVkIHRoYXQgZmlsZSBoZXJlIGluIHRoZSBvZmZpY2UgYmVmb3JlIHNpeC4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0kgZG9u4oCZdCBjYXJlIGhvdywgYnV0IEkgbmVlZCB0aGF0IGZpbGUgaGVyZSBpbiB0aGUgb2ZmaWNlIGJlZm9yZSBzaXguJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7Rm9sa2tmb2xra2pvbGtrbW9sa2t1b2xra3lvbGtrZm9sa2tHJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjRzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdElkICA9ICZxdW90OyNGb2xra2ZvbGtram9sa2ttb2xra3VvbGtreW9sa2tmb2xra0cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtUaGVyZeKAmXMgbm8gd2F5IEkgY2FuIGRvIHRoYXQmcXVvdDssIHBhc3NhZ2U6ICZxdW90O1BoaWxsaXBzQ2hhdEVwM183YSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoZXJl4oCZcyBubyB3YXkgSSBjYW4gZG8gdGhhdCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O1BoaWxsaXBzQ2hhdEVwM183YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdElkICA9ICZxdW90OyNGb2xra2ZvbGtram9sa2ttb2xra3VvbGtreW9sa2tmb2xra0cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJ4oCZbGwgZmlndXJlIG91dCBob3cgdG8gZ2V0IGl0IHRvIHlvdSZxdW90OywgcGFzc2FnZTogJnF1b3Q7UGhpbGxpcHNDaGF0RXAzXzdiJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7SeKAmWxsIGZpZ3VyZSBvdXQgaG93IHRvIGdldCBpdCB0byB5b3UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtQaGlsbGlwc0NoYXRFcDNfN2ImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTM4IiBuYW1lPSJQaGlsbGlwc0NoYXRFcDNfNiIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDY3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdFN0YXRlICA9ICZxdW90O1BoaWxsaXBzQ2hhdEVwM182JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkUGhpbGxpcHNfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O0kgZG9u4oCZdCBjYXJlIGhvdywgYnV0IEkgbmVlZCB0aGF0IGZpbGUgaGVyZSBpbiB0aGUgb2ZmaWNlIGJlZm9yZSBzaXguJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SSBkb27igJl0IGNhcmUgaG93LCBidXQgSSBuZWVkIHRoYXQgZmlsZSBoZXJlIGluIHRoZSBvZmZpY2UgYmVmb3JlIHNpeC4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0kgZG9u4oCZdCBjYXJlIGhvdywgYnV0IEkgbmVlZCB0aGF0IGZpbGUgaGVyZSBpbiB0aGUgb2ZmaWNlIGJlZm9yZSBzaXguJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O3dvbGtrVm9sa2trb2xra3hvbGtrdW9sa2t1b2xra0JvbGtrVSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3RJZCAgPSAmcXVvdDsjd29sa2tWb2xra2tvbGtreG9sa2t1b2xra3VvbGtrQm9sa2tVJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhlcmXigJlzIG5vIHdheSBJIGNhbiBkbyB0aGF0JnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtQaGlsbGlwc0NoYXRFcDNfN2EmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtUaGVyZeKAmXMgbm8gd2F5IEkgY2FuIGRvIHRoYXQmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtQaGlsbGlwc0NoYXRFcDNfN2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3RJZCAgPSAmcXVvdDsjd29sa2tWb2xra2tvbGtreG9sa2t1b2xra3VvbGtrQm9sa2tVJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7SeKAmWxsIGZpZ3VyZSBvdXQgaG93IHRvIGdldCBpdCB0byB5b3UmcXVvdDssIHBhc3NhZ2U6ICZxdW90O1BoaWxsaXBzQ2hhdEVwM183YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0nigJlsbCBmaWd1cmUgb3V0IGhvdyB0byBnZXQgaXQgdG8geW91JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7UGhpbGxpcHNDaGF0RXAzXzdiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjUzOSIgbmFtZT0iUGhpbGxpcHNDaGF0RXAzXzdhIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDY3MjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdFN0YXRlICA9ICZxdW90O1BoaWxsaXBzQ2hhdEVwM183YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJFBoaWxsaXBzX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGVyZeKAmXMgbm8gd2F5IEkgY2FuIGRvIHRoYXQmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGVyZeKAmXMgbm8gd2F5IEkgY2FuIGRvIHRoYXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O1RoZXJl4oCZcyBubyB3YXkgSSBjYW4gZG8gdGhhdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkcGhpbGxpcHNfcmVsID0gJHBoaWxsaXBzX3JlbC0xJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O1BoaWxsaXBzJnF1b3Q7ICZxdW90O0xldCBtZSBiZSBjbGVhci4mcXVvdDsgJnF1b3Q7YW9sa2tqb2xra25vbGtrem9sa2t5b2xra0tvbGtreW9sa2tCb2xra3lvbGtrem9sa2t2b2xra0pvbGtreW9sa2tJb2xra0dvbGtrZCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1BoaWxsaXBzJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtMZXQgbWUgYmUgY2xlYXIuJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtMZXQgbWUgYmUgY2xlYXIuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMi4zcyAmcXVvdDtQaGlsbGlwcyZxdW90OyAmcXVvdDtUaGUgZmlsZSBuZWVkcyB0byBiZSBpbiB0aGUgb2ZmaWNlIHdoZXJlIGl0IGJlbG9uZ3MgYmVmb3JlIGNsb3NpbmcgdGltZSwgb3IgbWF5YmUgeW91IHdvbuKAmXQgbmVlZCB0byBmaW5pc2ggdGhhdCByZXBvcnQuJnF1b3Q7ICZxdW90O0dvbGtrUG9sa2tZb2xra0xvbGtrbG9sa2t3b2xra05vbGtrY29sa2tib2xra1JvbGtrQm9sa2tYb2xra0NvbGtrWG9sa2t2b2xra1kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtQaGlsbGlwcyZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGhlIGZpbGUgbmVlZHMgdG8gYmUgaW4gdGhlIG9mZmljZSB3aGVyZSBpdCBiZWxvbmdzIGJlZm9yZSBjbG9zaW5nIHRpbWUsIG9yIG1heWJlIHlvdSB3b27igJl0IG5lZWQgdG8gZmluaXNoIHRoYXQgcmVwb3J0LiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7VGhlIGZpbGUgbmVlZHMgdG8gYmUgaW4gdGhlIG9mZmljZSB3aGVyZSBpdCBiZWxvbmdzIGJlZm9yZSBjbG9zaW5nIHRpbWUsIG9yIG1heWJlIHlvdSB3b27igJl0IG5lZWQgdG8gZmluaXNoIHRoYXQgcmVwb3J0LiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O3ZvbGtrWG9sa2ttb2xra0pvbGtrQm9sa2tPb2xra3NvbGtrYiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgNC4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3RJZCAgPSAmcXVvdDsjdm9sa2tYb2xra21vbGtrSm9sa2tCb2xra09vbGtrc29sa2tiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VW5kZXJzdG9vZC4gSeKAmWxsIHNlZSB3aGF0IEkgY2FuIGRvJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtQaGlsbGlwc0NoYXRFcDNfOGEmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtVbmRlcnN0b29kLiBJ4oCZbGwgc2VlIHdoYXQgSSBjYW4gZG8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtQaGlsbGlwc0NoYXRFcDNfOGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTQwIiBuYW1lPSJQaGlsbGlwc0NoYXRFcDNfOGEiIHRhZ3M9IiIgcG9zaXRpb249IjEyMjUsNjcyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0U3RhdGUgID0gJnF1b3Q7UGhpbGxpcHNDaGF0RXAzXzhhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkUGhpbGxpcHNfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1VuZGVyc3Rvb2QuIEnigJlsbCBzZWUgd2hhdCBJIGNhbiBkbyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1VuZGVyc3Rvb2QuIEnigJlsbCBzZWUgd2hhdCBJIGNhbiBkbyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7VW5kZXJzdG9vZC4gSeKAmWxsIHNlZSB3aGF0IEkgY2FuIGRvJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O1VuZGVyc3Rvb2QuIEnigJlsbCBzZWUgd2hhdCBJIGNhbiBkbyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0U3RhdGUgPSAmcXVvdDtQaGlsbGlwc0NoYXRFcDNfOGEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdF9ob3VyID0gJnF1b3Q7MDk6NTUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdCA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDswOTo1NSZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7b2ZmbGluZS10ZXh0JnF1b3Q7Jmd0O1BoaWxsaXBzIGlzIG9mZmxpbmUmbHQ7L2RpdiZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2NoYXQgPSB0cnVlJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0U3RhdGUgPSAmcXVvdDtBbm5pZUNoYXRFcDNfMl8xJnF1b3Q7Jmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7SG9uZXksIGhvd+KAmXMgZXZlcnl0aGluZyBnb2luZyBvdmVyIHRoZXJlPyZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1NDEiIG5hbWU9IlBoaWxsaXBzQ2hhdEVwM183YiIgdGFncz0iIiBwb3NpdGlvbj0iMTAwLDY4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdFN0YXRlICA9ICZxdW90O1BoaWxsaXBzQ2hhdEVwM183YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJFBoaWxsaXBzX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJ4oCZbGwgZmlndXJlIG91dCBob3cgdG8gZ2V0IGl0IHRvIHlvdSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0nigJlsbCBmaWd1cmUgb3V0IGhvdyB0byBnZXQgaXQgdG8geW91JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtJ4oCZbGwgZmlndXJlIG91dCBob3cgdG8gZ2V0IGl0IHRvIHlvdSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtVbmRlcnN0b29kLiBJ4oCZbGwgc2VlIHdoYXQgSSBjYW4gZG8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdFN0YXRlID0gJnF1b3Q7UGhpbGxpcHNDaGF0RXAzXzdiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3RfaG91ciA9ICZxdW90OzA5OjU1JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXQgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRob3VyID0gJnF1b3Q7MDk6NTUmcXVvdDsmZ3Q7Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O29mZmxpbmUtdGV4dCZxdW90OyZndDtQaGlsbGlwcyBpcyBvZmZsaW5lJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVDaGF0RXAzXzJfMSZxdW90OyZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0hvbmV5LCBob3figJlzIGV2ZXJ5dGhpbmcgZ29pbmcgb3ZlciB0aGVyZT8mcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTQyIiBuYW1lPSJQaGlsbGlwc0NoYXRFcDRfMV8xIiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsNjg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtQaGlsbGlwcyZxdW90OyAmcXVvdDtZb3VyIGdpcmxmcmllbmQgaXMgZmFyIG1vcmUgcmVzcG9uc2libGUgdGhhbiB5b3UgYXJlLiZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtQaGlsbGlwcyZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91ciBnaXJsZnJpZW5kIGlzIGZhciBtb3JlIHJlc3BvbnNpYmxlIHRoYW4geW91IGFyZS4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O1lvdXIgZ2lybGZyaWVuZCBpcyBmYXIgbW9yZSByZXNwb25zaWJsZSB0aGFuIHlvdSBhcmUuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1VvbGtrTm9sa2t5b2xra2RvbGtrT29sa2thb2xra0tvbGtrdyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC42cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3RJZCAgPSAmcXVvdDsjVW9sa2tOb2xra3lvbGtrZG9sa2tPb2xra2FvbGtrS29sa2t3JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7V2hhdCBkbyB5b3UgbWVhbj8mcXVvdDssIHBhc3NhZ2U6ICZxdW90O1BoaWxsaXBzQ2hhdEVwNF8xXzImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXaGF0IGRvIHlvdSBtZWFuPyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O1BoaWxsaXBzQ2hhdEVwNF8xXzImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1NDMiIG5hbWU9IlBoaWxsaXBzQ2hhdEVwNF8xXzIiIHRhZ3M9IiIgcG9zaXRpb249IjM1MCw2ODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRTdGF0ZSAgPSAmcXVvdDtQaGlsbGlwc0NoYXRFcDRfMV8yJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkUGhpbGxpcHNfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1doYXQgZG8geW91IG1lYW4/JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2hhdCBkbyB5b3UgbWVhbj8mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O1doYXQgZG8geW91IG1lYW4/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAyLjBzICZxdW90O1BoaWxsaXBzJnF1b3Q7ICZxdW90O0V4YWN0bHkgd2hhdCB5b3UgcmVhZCwgeW91ciBnaXJsZnJpZW5kIHdhcyBqdXN0IGhlcmUgYW5kIGRyb3BwZWQgb2ZmIHRoZSBmaWxlcyB5b3UgZm9vbGlzaGx5IHRvb2sgZnJvbSB0aGUgb2ZmaWNlLiZxdW90OyAmcXVvdDtSb2xra0hvbGtrWm9sa2tXb2xra3dvbGtrbG9sa2tDb2xra3NvbGtrUG9sa2tob2xra1VvbGtrd29sa2tSb2xra1VvbGtrSm9sa2tsJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7UGhpbGxpcHMmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0V4YWN0bHkgd2hhdCB5b3UgcmVhZCwgeW91ciBnaXJsZnJpZW5kIHdhcyBqdXN0IGhlcmUgYW5kIGRyb3BwZWQgb2ZmIHRoZSBmaWxlcyB5b3UgZm9vbGlzaGx5IHRvb2sgZnJvbSB0aGUgb2ZmaWNlLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7RXhhY3RseSB3aGF0IHlvdSByZWFkLCB5b3VyIGdpcmxmcmllbmQgd2FzIGp1c3QgaGVyZSBhbmQgZHJvcHBlZCBvZmYgdGhlIGZpbGVzIHlvdSBmb29saXNobHkgdG9vayBmcm9tIHRoZSBvZmZpY2UuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7cm9sa2tZb2xra0NvbGtrY29sa2tCb2xra0FvbGtrWG9sa2t0JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAyLjlzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdElkICA9ICZxdW90OyNyb2xra1lvbGtrQ29sa2tjb2xra0JvbGtrQW9sa2tYb2xra3QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtPaCwgeWVhaCwgSSBhc2tlZCBoZXIgdG8gYnJpbmcgdGhlbSZxdW90OywgcGFzc2FnZTogJnF1b3Q7UGhpbGxpcHNDaGF0RXA0XzFfMyZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O09oLCB5ZWFoLCBJIGFza2VkIGhlciB0byBicmluZyB0aGVtJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7UGhpbGxpcHNDaGF0RXA0XzFfMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1NDQiIG5hbWU9IlBoaWxsaXBzQ2hhdEVwNF8xXzMiIHRhZ3M9IiIgcG9zaXRpb249IjQ3NSw2ODUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRTdGF0ZSAgPSAmcXVvdDtQaGlsbGlwc0NoYXRFcDRfMV8zJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkUGhpbGxpcHNfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O09oLCB5ZWFoLCBJIGFza2VkIGhlciB0byBicmluZyB0aGVtJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7T2gsIHllYWgsIEkgYXNrZWQgaGVyIHRvIGJyaW5nIHRoZW0mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O09oLCB5ZWFoLCBJIGFza2VkIGhlciB0byBicmluZyB0aGVtJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAxLjRzICZxdW90O1BoaWxsaXBzJnF1b3Q7ICZxdW90O0l0IGRvZXNu4oCZdCBtYXR0ZXIgaWYgeW91IGFza2VkIGhlciBvciBub3QsIHlvdSBzaG91bGQgaGF2ZSBkb25lIGl0LiZxdW90OyAmcXVvdDtSb2xra2FvbGtrbm9sa2tmb2xra3pvbGtrQW9sa2t5b2xra0xvbGtrUW9sa2tOb2xra2RvbGtraG9sa2txb2xra01vbGtrdG9sa2tUJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7UGhpbGxpcHMmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0l0IGRvZXNu4oCZdCBtYXR0ZXIgaWYgeW91IGFza2VkIGhlciBvciBub3QsIHlvdSBzaG91bGQgaGF2ZSBkb25lIGl0LiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7SXQgZG9lc27igJl0IG1hdHRlciBpZiB5b3UgYXNrZWQgaGVyIG9yIG5vdCwgeW91IHNob3VsZCBoYXZlIGRvbmUgaXQuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4ycyAmcXVvdDtQaGlsbGlwcyZxdW90OyAmcXVvdDtCdXQgYXQgbGVhc3QgaXQgd2FzIGEgcG9saXRlIHlvdW5nIHdvbWFuIHdobyBkZWxpdmVyZWQgdGhlbS4mcXVvdDsgJnF1b3Q7UW9sa2t5b2xra1pvbGtrVG9sa2tLb2xra05vbGtrRG9sa2tzb2xra2VvbGtrRW9sa2tEb2xra2NvbGtrdm9sa2tPb2xra0FvbGtrYyZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1BoaWxsaXBzJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtCdXQgYXQgbGVhc3QgaXQgd2FzIGEgcG9saXRlIHlvdW5nIHdvbWFuIHdobyBkZWxpdmVyZWQgdGhlbS4mcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0J1dCBhdCBsZWFzdCBpdCB3YXMgYSBwb2xpdGUgeW91bmcgd29tYW4gd2hvIGRlbGl2ZXJlZCB0aGVtLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCA0LjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7UGhpbGxpcHMmcXVvdDsgJnF1b3Q7SeKAmWxsIGJlIGV4cGVjdGluZyB0aGUgcmVwb3J0cyBieSBGcmlkYXksIGFzIHdlIGFncmVlZC4mcXVvdDsgJnF1b3Q7Ym9sa2tFb2xra3BvbGtrQm9sa2tvb2xra0xvbGtrVW9sa2tTb2xra2ZvbGtrb29sa2txb2xra3hvbGtrbW9sa2tPb2xra0ZvbGtrSiZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1BoaWxsaXBzJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJ4oCZbGwgYmUgZXhwZWN0aW5nIHRoZSByZXBvcnRzIGJ5IEZyaWRheSwgYXMgd2UgYWdyZWVkLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7SeKAmWxsIGJlIGV4cGVjdGluZyB0aGUgcmVwb3J0cyBieSBGcmlkYXksIGFzIHdlIGFncmVlZC4mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtXb2xra1dvbGtraW9sa2tRb2xra2FvbGtrbW9sa2tNb2xra24mcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDUuN3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0SWQgID0gJnF1b3Q7I1dvbGtrV29sa2tpb2xra1FvbGtrYW9sa2ttb2xra01vbGtrbiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O0FscmlnaHQgc2lyLCBJ4oCZbGwgbWFrZSBzdXJlIHRoZXnigJlyZSByZWFkeSZxdW90OywgcGFzc2FnZTogJnF1b3Q7UGhpbGxpcHNDaGF0RXA0XzFfNCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0FscmlnaHQgc2lyLCBJ4oCZbGwgbWFrZSBzdXJlIHRoZXnigJlyZSByZWFkeSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O1BoaWxsaXBzQ2hhdEVwNF8xXzQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTQ1IiBuYW1lPSJQaGlsbGlwc0NoYXRFcDRfMV80IiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsNjg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0U3RhdGUgID0gJnF1b3Q7UGhpbGxpcHNDaGF0RXA0XzFfNCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJFBoaWxsaXBzX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtBbHJpZ2h0IHNpciwgSeKAmWxsIG1ha2Ugc3VyZSB0aGV54oCZcmUgcmVhZHkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtBbHJpZ2h0IHNpciwgSeKAmWxsIG1ha2Ugc3VyZSB0aGV54oCZcmUgcmVhZHkmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O0FscmlnaHQgc2lyLCBJ4oCZbGwgbWFrZSBzdXJlIHRoZXnigJlyZSByZWFkeSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzZXQgJFBoaWxsaXBzX25vdGVzLnB1c2goJnF1b3Q7SXQgc2VlbXMgbGlrZSBoZSBoYXMgc29tZSBpbnRlcmVzdCBpbiBteSBnaXJsZnJpZW5kLCBJIHRoaW5rIGhlIGxpa2VzIGhlci4mcXVvdDspJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtBbHJpZ2h0IHNpciwgSeKAmWxsIG1ha2Ugc3VyZSB0aGV54oCZcmUgcmVhZHkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdFN0YXRlID0gJnF1b3Q7UGhpbGxpcHNDaGF0RXA0XzFfNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0X2hvdXIgPSAmcXVvdDsxMjoyMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0ID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkaG91ciA9ICZxdW90OzEyOjIyJnF1b3Q7Jmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtvZmZsaW5lLXRleHQmcXVvdDsmZ3Q7UGhpbGxpcHMgaXMgb2ZmbGluZSZsdDsvZGl2Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdCA9IHRydWUmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSA9ICZxdW90O0FubmllQ2hhdEVwNF8zXzEmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7Jmx0OyZsdDtzZXQgJEFubmllX2xhc3QgPSAmcXVvdDtPa2F5IGJhYmUmcXVvdDsmZ3Q7Jmd0OyZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTQ2IiBuYW1lPSJQaGlsbGlwc19ub3RlIiB0YWdzPSJub3Rlc2luIG5vdGhvdXIiIHBvc2l0aW9uPSI3MjUsNjg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtoZWFkZXIgJnF1b3Q7TXIuIFBoaWxsaXBzJnF1b3Q7ICZxdW90O1BoaWxsaXBzJnF1b3Q7ICZxdW90O05vdGVzJnF1b3Q7IHRydWUmZ3Q7Jmd0OwogICAgJmx0O2RpdiBpZD0mcXVvdDtwYWRkaW5nLWNvbnRhaW5lciZxdW90OyBjbGFzcz0mcXVvdDt0ZXh0X2JsYWNrJnF1b3Q7Jmd0OwogICAgICAgICZsdDtkaXYmZ3Q7LSBIZeKAmXMgdGhlIG1hbmFnZXIgb2YgdGhlIGRlcGFydG1lbnQgSSB3b3JrIGluLCBhbmQgdGhlcmVmb3JlLCBteSBzdXBlcmlvci4gRXZlciBzaW5jZSBJIGpvaW5lZCB0aGUgY29tcGFueSBoZeKAmXMgdHJlYXRlZCBtZSBwb29ybHkuIEhl4oCZcyBub3QgYSBmcmllbmRseSBwZXJzb24sIGJ1dCBoZeKAmXMgZXNwZWNpYWxseSB0b3VnaCBvbiBtZS4mbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7Jmx0O2ZvciBfaSByYW5nZSAkUGhpbGxpcHNfbm90ZXMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2IHN0eWxlPSZxdW90O21hcmdpbi10b3A6IDE2cHgmcXVvdDsmZ3Q7LSBfaSZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsmbHQ7L2ZvciZndDsmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1NDciIG5hbWU9IlZhbmVzc2FfY2hhdCIgdGFncz0ibWFwcCBub3Rob3VyIiBwb3NpdGlvbj0iODUwLDY4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7Ci8qcmVnaW9uIEVtaWx5IGNoYXQqLwombHQ7Jmx0O2lmICRWYW5lc3NhX2NoYXQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2hlYWRlciAmcXVvdDtWYW5lc3NhJnF1b3Q7ICZxdW90O1ZhbmVzc2EmcXVvdDsgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsgJFZhbmVzc2FfcGF1c2VkJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtoZWFkZXIgJnF1b3Q7VmFuZXNzYSZxdW90OyAmcXVvdDtWYW5lc3NhJnF1b3Q7ICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7bWVzc2FnZV9jb250YWluZXImcXVvdDsmZ3Q7CiZsdDsmbHQ7Zm9yIF9saW5lIHJhbmdlICRWYW5lc3NhX2NoYXRMb2cmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiBfbGluZS50eXBlID09IDEmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCBfbGluZS5zZW5kZXIgX2xpbmUubWVzc2FnZSBfbGluZS5hdmF0YXImZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlaWYgX2xpbmUudHlwZSA9PSAyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VfaW1nIF9saW5lLm1lc3NhZ2UmZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlaWYgX2xpbmUudHlwZSA9PSAzJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VfdmlkZW8gX2xpbmUubWVzc2FnZVswXSBfbGluZS5tZXNzYWdlWzFdJmd0OyZndDsKICAgICZsdDsmbHQ7ZWxzZWlmIF9saW5lLnR5cGUgPT0gNCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDttZXNzYWdlX2Vtb2ppIF9saW5lLm1lc3NhZ2UgZmFsc2UgX2xpbmUuc2VuZGVyJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDsvZm9yJmd0OyZndDsKJmx0OyZsdDtpZiAkVmFuZXNzYV9wYXVzZWQgPT0gZmFsc2UmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkVmFuZXNzYV9jaGF0ID09IHRydWUmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkVmFuZXNzYV9jaGF0U3RhdGUmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAmbHQ7ZGl2IEBpZD0mcXVvdDskVmFuZXNzYV9sYXN0SWQuc2xpY2UoMSkmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDtlbmQmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O2NoYXRfYmFyJnF1b3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O2NvbnRlbnQmcXVvdDsmZ3Q7CiZsdDsmbHQ7aWYgJFZhbmVzc2FfcGF1c2VkID09IHRydWUmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkVmFuZXNzYV9vcHRpb25zWzBdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJFZhbmVzc2Ffb3B0aW9uc1swXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpbmNsdWRlICRWYW5lc3NhX29wdGlvbnNbMF0ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRWYW5lc3NhX29wdGlvbnNbMV0mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bGluayAkVmFuZXNzYV9vcHRpb25zWzFdLnRleHQmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJFZhbmVzc2Ffb3B0aW9uc1sxXS5wYXNzYWdlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKICAgICZsdDsmbHQ7aWYgJFZhbmVzc2Ffb3B0aW9uc1syXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICRWYW5lc3NhX29wdGlvbnNbMl0udGV4dCZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aW5jbHVkZSAkVmFuZXNzYV9vcHRpb25zWzJdLnBhc3NhZ2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkVmFuZXNzYV9vcHRpb25zWzNdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJFZhbmVzc2Ffb3B0aW9uc1szXS50ZXh0Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpbmNsdWRlICRWYW5lc3NhX29wdGlvbnNbM10ucGFzc2FnZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0O3RpbWVkIDAuMnMmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbEluc3RhKCk7CiAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTQ4IiBuYW1lPSJWYW5lc3NhSW50cm8xIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsNjg1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtWYW5lc3NhJnF1b3Q7ICZxdW90O0hleSAkbmFtZSwgaG934oCZcyBldmVyeXRoaW5nPyZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1ZhbmVzc2EmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0hleSAkbmFtZSwgaG934oCZcyBldmVyeXRoaW5nPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtIZXkgJG5hbWUsIGhvd+KAmXMgZXZlcnl0aGluZz8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKCiZsdDtkaXYgaWQ9JnF1b3Q7Ym9sa2tPb2xra2JvbGtrU29sa2tNb2xra0JvbGtrcm9sa2tlJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjZzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdElkICA9ICZxdW90OyNib2xra09vbGtrYm9sa2tTb2xra01vbGtrQm9sa2tyb2xra2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1ZhbmVzc2EsIGhleSwgd2hhdCBhIHN1cnByaXNlJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtWYW5lc3NhSW50cm8xXzImcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtWYW5lc3NhLCBoZXksIHdoYXQgYSBzdXJwcmlzZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O1ZhbmVzc2FJbnRybzFfMiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjU0OSIgbmFtZT0iVmFuZXNzYUludHJvMV8yIiB0YWdzPSIiIHBvc2l0aW9uPSIxMTAwLDY4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0U3RhdGUgID0gJnF1b3Q7VmFuZXNzYUludHJvMV8yJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRWYW5lc3NhX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtWYW5lc3NhLCBoZXksIHdoYXQgYSBzdXJwcmlzZSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VmFuZXNzYSwgaGV5LCB3aGF0IGEgc3VycHJpc2UmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0ID0gJnF1b3Q7VmFuZXNzYSwgaGV5LCB3aGF0IGEgc3VycHJpc2UmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7a29sa2tWb2xra25vbGtrZ29sa2t6b2xra0RvbGtra29sa2tlJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdElkICA9ICZxdW90OyNrb2xra1ZvbGtrbm9sa2tnb2xra3pvbGtrRG9sa2trb2xra2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1RvIHdoYXQgZG8gSSBvd2UgdGhlIHBsZWFzdXJlPyZxdW90OywgcGFzc2FnZTogJnF1b3Q7VmFuZXNzYUludHJvMV8zJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VG8gd2hhdCBkbyBJIG93ZSB0aGUgcGxlYXN1cmU/JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7VmFuZXNzYUludHJvMV8zJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjU1MCIgbmFtZT0iVmFuZXNzYUludHJvMV8zIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDY4NTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0U3RhdGUgID0gJnF1b3Q7VmFuZXNzYUludHJvMV8zJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRWYW5lc3NhX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUbyB3aGF0IGRvIEkgb3dlIHRoZSBwbGVhc3VyZT8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1RvIHdoYXQgZG8gSSBvd2UgdGhlIHBsZWFzdXJlPyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtUbyB3aGF0IGRvIEkgb3dlIHRoZSBwbGVhc3VyZT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMXMgJnF1b3Q7VmFuZXNzYSZxdW90OyAmcXVvdDtTbywgSSBoZWFyZCB5b3Ugd2FudCB0byB0cnkgbmV3IHRoaW5ncyB3aXRoIEFubmllJnF1b3Q7ICZxdW90O0hvbGtrY29sa2tCb2xra0JvbGtrcW9sa2tKb2xra0RvbGtrVm9sa2tFb2xra3lvbGtra29sa2tDb2xra0RvbGtrQ29sa2tGb2xra0EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1ZhbmVzc2EmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1NvLCBJIGhlYXJkIHlvdSB3YW50IHRvIHRyeSBuZXcgdGhpbmdzIHdpdGggQW5uaWUmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0ID0gJnF1b3Q7U28sIEkgaGVhcmQgeW91IHdhbnQgdG8gdHJ5IG5ldyB0aGluZ3Mgd2l0aCBBbm5pZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1RvbGtrWG9sa2tBb2xra1hvbGtrcG9sa2t0b2xra2VvbGtraCZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi4wcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2Ffb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3RJZCAgPSAmcXVvdDsjVG9sa2tYb2xra0FvbGtrWG9sa2twb2xra3RvbGtrZW9sa2toJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtmZnMsIGRvZXMgZXZlcnlvbmUgaW4gaGVyIG9mZmljZSBrbm93PyZxdW90OywgcGFzc2FnZTogJnF1b3Q7VmFuZXNzYUludHJvMV80JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7ZmZzLCBkb2VzIGV2ZXJ5b25lIGluIGhlciBvZmZpY2Uga25vdz8mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtWYW5lc3NhSW50cm8xXzQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTUxIiBuYW1lPSJWYW5lc3NhSW50cm8xXzQiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCw2OTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2lmICRzb3VuZCBpcyB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKU2ltcGxlQXVkaW8uc2VsZWN0KCZxdW90O215bWVzc2FnZSZxdW90Oykudm9sdW1lKC43NSkucGxheSgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdFN0YXRlICA9ICZxdW90O1ZhbmVzc2FJbnRybzFfNCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkVmFuZXNzYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7ZmZzLCBkb2VzIGV2ZXJ5b25lIGluIGhlciBvZmZpY2Uga25vdz8mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2ZmcywgZG9lcyBldmVyeW9uZSBpbiBoZXIgb2ZmaWNlIGtub3c/JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdCA9ICZxdW90O2ZmcywgZG9lcyBldmVyeW9uZSBpbiBoZXIgb2ZmaWNlIGtub3c/JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjJzICZxdW90O1ZhbmVzc2EmcXVvdDsgJnF1b3Q7TG9sLCBubyZxdW90OyAmcXVvdDtib2xra29vbGtrbG9sa2t1b2xra0dvbGtrSm9sa2txb2xra2JvbGtrTW9sa2tDb2xra2FvbGtrZG9sa2tib2xra2JvbGtrSG9sa2txJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtWYW5lc3NhJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtMb2wsIG5vJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdCA9ICZxdW90O0xvbCwgbm8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMS4xcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjlzICZxdW90O1ZhbmVzc2EmcXVvdDsgJnF1b3Q7WW91IGtub3cgdGhlIHRocmVlIG9mIHVzIGFyZSBjbG9zZSBmcmllbmRzJnF1b3Q7ICZxdW90O0pvbGtrc29sa2tIb2xra3JvbGtrbm9sa2t4b2xra1RvbGtrQW9sa2tab2xra2xvbGtrUm9sa2tFb2xra2lvbGtrRG9sa2tpb2xra00mcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1ZhbmVzc2EmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSBrbm93IHRoZSB0aHJlZSBvZiB1cyBhcmUgY2xvc2UgZnJpZW5kcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtZb3Uga25vdyB0aGUgdGhyZWUgb2YgdXMgYXJlIGNsb3NlIGZyaWVuZHMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjRzICZxdW90O1ZhbmVzc2EmcXVvdDsgJnF1b3Q7V2UgZG8gZXZlcnl0aGluZyB0b2dldGhlciZxdW90OyAmcXVvdDtrb2xra1JvbGtrZ29sa2tBb2xra1RvbGtrRG9sa2tob2xra0ZvbGtrQm9sa2tWb2xra0NvbGtrTm9sa2tub2xra3NvbGtreW9sa2t4JnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtWYW5lc3NhJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtXZSBkbyBldmVyeXRoaW5nIHRvZ2V0aGVyJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdCA9ICZxdW90O1dlIGRvIGV2ZXJ5dGhpbmcgdG9nZXRoZXImcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMy42cyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZSAwLjdzICZxdW90O1ZhbmVzc2EmcXVvdDsgJnF1b3Q7U28geWVhaCwgSSBmb3VuZCBvdXQgYWJvdXQgaXQmcXVvdDsgJnF1b3Q7S29sa2tEb2xra05vbGtrRm9sa2tSb2xra1VvbGtram9sa2t1b2xra0pvbGtrVW9sa2tmb2xra0FvbGtrYW9sa2t3b2xra0pvbGtrdSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7VmFuZXNzYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7U28geWVhaCwgSSBmb3VuZCBvdXQgYWJvdXQgaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0ID0gJnF1b3Q7U28geWVhaCwgSSBmb3VuZCBvdXQgYWJvdXQgaXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAoKJmx0O2RpdiBpZD0mcXVvdDtkb2xra1NvbGtrVm9sa2tUb2xra29vbGtrWG9sa2tjb2xra2cmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiAmbHQ7Jmx0O3RpbWVkIDQuOXMmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0SWQgID0gJnF1b3Q7I2RvbGtrU29sa2tWb2xra1RvbGtrb29sa2tYb2xra2NvbGtrZyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2Ffb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7UmlnaHQuLi4mcXVvdDssIHBhc3NhZ2U6ICZxdW90O1ZhbmVzc2FJbnRybzFfNSZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1JpZ2h0Li4uJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7VmFuZXNzYUludHJvMV81JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjU1MiIgbmFtZT0iVmFuZXNzYUludHJvMV81IiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsNjk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRTdGF0ZSAgPSAmcXVvdDtWYW5lc3NhSW50cm8xXzUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJFZhbmVzc2FfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1JpZ2h0Li4uJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtSaWdodC4uLiZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtSaWdodC4uLiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4zcyAmcXVvdDtWYW5lc3NhJnF1b3Q7ICZxdW90O0kganVzdCB3YW50ZWQgdG8gc2F5IHRoYXQgSeKAmXZlIGFsd2F5cyB0aG91Z2h0IHlvdeKAmXJlIGEgZ29vZCBndXkuJnF1b3Q7ICZxdW90O0ZvbGtrSG9sa2thb2xra0lvbGtrSG9sa2tmb2xra0RvbGtrUW9sa2tyb2xra09vbGtrTW9sa2tsb2xra3hvbGtrT29sa2t1b2xra3EmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1ZhbmVzc2EmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kganVzdCB3YW50ZWQgdG8gc2F5IHRoYXQgSeKAmXZlIGFsd2F5cyB0aG91Z2h0IHlvdeKAmXJlIGEgZ29vZCBndXkuJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdCA9ICZxdW90O0kganVzdCB3YW50ZWQgdG8gc2F5IHRoYXQgSeKAmXZlIGFsd2F5cyB0aG91Z2h0IHlvdeKAmXJlIGEgZ29vZCBndXkuJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDIuMnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC45cyAmcXVvdDtWYW5lc3NhJnF1b3Q7ICZxdW90O0FuZCB5b3Uga25vdyBJIGNhcmUgYSBsb3QgYWJvdXQgQW5uaWUmcXVvdDsgJnF1b3Q7U29sa2tub2xra3dvbGtrTm9sa2tGb2xra0pvbGtrUG9sa2t6b2xra3dvbGtrRG9sa2tTb2xra05vbGtrUG9sa2tmb2xra3BvbGtraCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7VmFuZXNzYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QW5kIHlvdSBrbm93IEkgY2FyZSBhIGxvdCBhYm91dCBBbm5pZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtBbmQgeW91IGtub3cgSSBjYXJlIGEgbG90IGFib3V0IEFubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS4wcyAmcXVvdDtWYW5lc3NhJnF1b3Q7ICZxdW90O0p1c3Qga25vdyB0aGF0IEkgd29u4oCZdCBsZXQgTmFvbWkgY29tcGxldGVseSBkZXJhaWwgQW5uaWUmcXVvdDsgJnF1b3Q7am9sa2tnb2xra2JvbGtrTW9sa2txb2xra0ZvbGtrT29sa2t4b2xra0NvbGtrT29sa2tNb2xra29vbGtrWm9sa2tab2xra3ZvbGtrcCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7VmFuZXNzYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7SnVzdCBrbm93IHRoYXQgSSB3b27igJl0IGxldCBOYW9taSBjb21wbGV0ZWx5IGRlcmFpbCBBbm5pZSZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtKdXN0IGtub3cgdGhhdCBJIHdvbuKAmXQgbGV0IE5hb21pIGNvbXBsZXRlbHkgZGVyYWlsIEFubmllJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDUuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS44cyAmcXVvdDtWYW5lc3NhJnF1b3Q7ICZxdW90O1lvdSBjYW4gY291bnQgb24gbWUgaWYgeW91IG5lZWQgaGVscCBvciBpZiB5b3UgaGF2ZSBzZWNvbmQgdGhvdWdodHMgYWJvdXQgYWxsIHRoaXMmcXVvdDsgJnF1b3Q7Z29sa2tSb2xra0RvbGtrRW9sa2tHb2xra0dvbGtrQW9sa2tjb2xra1pvbGtrWm9sa2twb2xra2FvbGtram9sa2tHb2xra3VvbGtrdSZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7VmFuZXNzYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7WW91IGNhbiBjb3VudCBvbiBtZSBpZiB5b3UgbmVlZCBoZWxwIG9yIGlmIHlvdSBoYXZlIHNlY29uZCB0aG91Z2h0cyBhYm91dCBhbGwgdGhpcyZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtZb3UgY2FuIGNvdW50IG9uIG1lIGlmIHlvdSBuZWVkIGhlbHAgb3IgaWYgeW91IGhhdmUgc2Vjb25kIHRob3VnaHRzIGFib3V0IGFsbCB0aGlzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDcuN3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMS44cyAmcXVvdDtWYW5lc3NhJnF1b3Q7ICZxdW90O0lmIHRoaXMgaXMgcmVhbGx5IHdoYXQgeW91IHdhbnQsIEkgaGF2ZSBubyBwcm9ibGVtIHdpdGggaXQsIHlvdeKAmXJlIGJvdGggYWR1bHRzIGFmdGVyIGFsbCZxdW90OyAmcXVvdDtkb2xra1NvbGtrdW9sa2trb2xra0RvbGtrWm9sa2tJb2xra0JvbGtrdm9sa2tOb2xra1pvbGtrcm9sa2tFb2xra1VvbGtrdW9sa2tBJnF1b3Q7KCkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtWYW5lc3NhJnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtJZiB0aGlzIGlzIHJlYWxseSB3aGF0IHlvdSB3YW50LCBJIGhhdmUgbm8gcHJvYmxlbSB3aXRoIGl0LCB5b3XigJlyZSBib3RoIGFkdWx0cyBhZnRlciBhbGwmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0ID0gJnF1b3Q7SWYgdGhpcyBpcyByZWFsbHkgd2hhdCB5b3Ugd2FudCwgSSBoYXZlIG5vIHByb2JsZW0gd2l0aCBpdCwgeW914oCZcmUgYm90aCBhZHVsdHMgYWZ0ZXIgYWxsJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEwLjFzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7VmFuZXNzYSZxdW90OyAmcXVvdDtCdXQgSeKAmW0gaGVyZSB0byBoZWxwIGlmIHlvdSBndXlzIG5lZWQgbWUmcXVvdDsgJnF1b3Q7VW9sa2tJb2xra1VvbGtram9sa2tBb2xra1hvbGtrdm9sa2thb2xra2ZvbGtrbm9sa2t6b2xra1ZvbGtrSm9sa2tqb2xra3pvbGtrbCZxdW90OygpJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7VmFuZXNzYSZxdW90OywgbWVzc2FnZTogJnF1b3Q7QnV0IEnigJltIGhlcmUgdG8gaGVscCBpZiB5b3UgZ3V5cyBuZWVkIG1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdCA9ICZxdW90O0J1dCBJ4oCZbSBoZXJlIHRvIGhlbHAgaWYgeW91IGd1eXMgbmVlZCBtZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O1NvbGtram9sa2tzb2xra3RvbGtram9sa2tzb2xra3VvbGtrQiZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMTEuN3MmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJnF1b3Q7bWVzc2FnZV9hcHAmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX29wdGlvbnMgPSBbXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfcGF1c2VkICA9IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0SWQgID0gJnF1b3Q7I1NvbGtram9sa2tzb2xra3RvbGtram9sa2tzb2xra3VvbGtrQiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2Ffb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhhbmtzLCB5b3XigJl2ZSBhbHdheXMgYmVlbiBhIGdvb2QgZnJpZW5kJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtWYW5lc3NhSW50cm8xXzZhJnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGhhbmtzLCB5b3XigJl2ZSBhbHdheXMgYmVlbiBhIGdvb2QgZnJpZW5kJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7VmFuZXNzYUludHJvMV82YSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwoKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0SWQgID0gJnF1b3Q7I1NvbGtram9sa2tzb2xra3RvbGtram9sa2tzb2xra3VvbGtrQiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2Ffb3B0aW9ucy5wdXNoKHsgdGV4dDogJnF1b3Q7VGhhdCB3b27igJl0IGJlIG5lY2Vzc2FyeSZxdW90OywgcGFzc2FnZTogJnF1b3Q7VmFuZXNzYUludHJvMV82YiZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O1RoYXQgd29u4oCZdCBiZSBuZWNlc3NhcnkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtWYW5lc3NhSW50cm8xXzZiJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjU1MyIgbmFtZT0iVmFuZXNzYUludHJvMV82YSIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDY5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0U3RhdGUgID0gJnF1b3Q7VmFuZXNzYUludHJvMV82YSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfcGF1c2VkICA9IGZhbHNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7IHQ4biZndDsmZ3Q7Jmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAkVmFuZXNzYV9sYXN0SWQgdDhuJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bWVzc2FnZW9sZCAmcXVvdDtZb3UmcXVvdDsgJnF1b3Q7VGhhbmtzLCB5b3XigJl2ZSBhbHdheXMgYmVlbiBhIGdvb2QgZnJpZW5kJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGFua3MsIHlvdeKAmXZlIGFsd2F5cyBiZWVuIGEgZ29vZCBmcmllbmQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0ID0gJnF1b3Q7VGhhbmtzLCB5b3XigJl2ZSBhbHdheXMgYmVlbiBhIGdvb2QgZnJpZW5kJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OyZsdDsmbHQ7c2V0ICR2YW5lc3NhX3JlbCA9ICR2YW5lc3NhX3JlbCsxJmd0OyZndDsmbHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CgombHQ7ZGl2IGlkPSZxdW90O1dvbGtreW9sa2tEb2xra0ZvbGtrdW9sa2tIb2xra1FvbGtrVSZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMC4zcyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2Ffb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3RJZCAgPSAmcXVvdDsjV29sa2t5b2xra0RvbGtrRm9sa2t1b2xra0hvbGtrUW9sa2tVJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtXZSBqdXN0IHdhbnQgdG8gdHJ5IHNvbWV0aGluZyBuZXcsIHRoYXTigJlzIGFsbCZxdW90OywgcGFzc2FnZTogJnF1b3Q7VmFuZXNzYUludHJvMV83JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7V2UganVzdCB3YW50IHRvIHRyeSBzb21ldGhpbmcgbmV3LCB0aGF04oCZcyBhbGwmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtWYW5lc3NhSW50cm8xXzcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTU0IiBuYW1lPSJWYW5lc3NhSW50cm8xXzZiIiB0YWdzPSIiIHBvc2l0aW9uPSI0NzUsNjk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRTdGF0ZSAgPSAmcXVvdDtWYW5lc3NhSW50cm8xXzZiJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRWYW5lc3NhX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtUaGF0IHdvbuKAmXQgYmUgbmVjZXNzYXJ5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cucHVzaCh7IHR5cGU6IDEsIHNlbmRlcjogJnF1b3Q7WW91JnF1b3Q7LCBtZXNzYWdlOiAmcXVvdDtUaGF0IHdvbuKAmXQgYmUgbmVjZXNzYXJ5JnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdCA9ICZxdW90O1RoYXQgd29u4oCZdCBiZSBuZWNlc3NhcnkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Vm9sa2tlb2xra1RvbGtrbm9sa2tpb2xra3VvbGtrWG9sa2t2JnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdElkICA9ICZxdW90OyNWb2xra2VvbGtrVG9sa2tub2xra2lvbGtrdW9sa2tYb2xra3YmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1dlIGp1c3Qgd2FudCB0byB0cnkgc29tZXRoaW5nIG5ldywgdGhhdOKAmXMgYWxsJnF1b3Q7LCBwYXNzYWdlOiAmcXVvdDtWYW5lc3NhSW50cm8xXzcmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7bGluayAmcXVvdDtXZSBqdXN0IHdhbnQgdG8gdHJ5IHNvbWV0aGluZyBuZXcsIHRoYXTigJlzIGFsbCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O1ZhbmVzc2FJbnRybzFfNyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1NTUiIG5hbWU9IlZhbmVzc2FJbnRybzFfNyIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDY5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0U3RhdGUgID0gJnF1b3Q7VmFuZXNzYUludHJvMV83JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRWYW5lc3NhX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtXZSBqdXN0IHdhbnQgdG8gdHJ5IHNvbWV0aGluZyBuZXcsIHRoYXTigJlzIGFsbCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7V2UganVzdCB3YW50IHRvIHRyeSBzb21ldGhpbmcgbmV3LCB0aGF04oCZcyBhbGwmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0ID0gJnF1b3Q7V2UganVzdCB3YW50IHRvIHRyeSBzb21ldGhpbmcgbmV3LCB0aGF04oCZcyBhbGwmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgIAogICAgJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuNHMgJnF1b3Q7VmFuZXNzYSZxdW90OyAmcXVvdDtJIHRvdGFsbHkgZ2V0IGl0JnF1b3Q7ICZxdW90O2tvbGtrSm9sa2t0b2xra2VvbGtrUm9sa2tFb2xra3lvbGtrWW9sa2tDb2xra1JvbGtrY29sa2t5b2xra1hvbGtram9sa2t5b2xra3YmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1ZhbmVzc2EmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgdG90YWxseSBnZXQgaXQmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0ID0gJnF1b3Q7SSB0b3RhbGx5IGdldCBpdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjNzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDEuMHMgJnF1b3Q7VmFuZXNzYSZxdW90OyAmcXVvdDtMaWtlIEkgc2FpZCwganVzdCB0ZXh0IG1lIGlmIHlvdSBuZWVkIGFueXRoaW5nJnF1b3Q7ICZxdW90O29vbGtrYW9sa2t3b2xra21vbGtrQ29sa2t6b2xra3JvbGtrWG9sa2tub2xra05vbGtrWG9sa2tWb2xra1VvbGtrZ29sa2tlb2xra3MmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1ZhbmVzc2EmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0xpa2UgSSBzYWlkLCBqdXN0IHRleHQgbWUgaWYgeW91IG5lZWQgYW55dGhpbmcmcXVvdDt9KSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0ID0gJnF1b3Q7TGlrZSBJIHNhaWQsIGp1c3QgdGV4dCBtZSBpZiB5b3UgbmVlZCBhbnl0aGluZyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCgombHQ7ZGl2IGlkPSZxdW90O3ZvbGtrUG9sa2tnb2xra2NvbGtrTW9sa2tub2xra1VvbGtrcyZxdW90OyZndDsmbHQ7L2RpdiZndDsKICZsdDsmbHQ7dGltZWQgMi45cyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2Ffb3B0aW9ucyA9IFtdJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9wYXVzZWQgID0gdHJ1ZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyZndDsmZ3Q7CgogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3RJZCAgPSAmcXVvdDsjdm9sa2tQb2xra2dvbGtrY29sa2tNb2xra25vbGtrVW9sa2tzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9vcHRpb25zLnB1c2goeyB0ZXh0OiAmcXVvdDtJIHdpbGwmcXVvdDssIHBhc3NhZ2U6ICZxdW90O1ZhbmVzc2FJbnRybzFfOCZxdW90O30pJmd0OyZndDsKJmx0OyZsdDtsaW5rICZxdW90O0kgd2lsbCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O1ZhbmVzc2FJbnRybzFfOCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1NTYiIG5hbWU9IlZhbmVzc2FJbnRybzFfOCIgdGFncz0iIiBwb3NpdGlvbj0iNzI1LDY5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aWYgJHNvdW5kIGlzIHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpTaW1wbGVBdWRpby5zZWxlY3QoJnF1b3Q7bXltZXNzYWdlJnF1b3Q7KS52b2x1bWUoLjc1KS5wbGF5KCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwpzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0U3RhdGUgID0gJnF1b3Q7VmFuZXNzYUludHJvMV84JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9wYXVzZWQgID0gZmFsc2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7ZmFrZV9uYXZiYXImZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I2NvbnRlbnQmcXVvdDsgdDhuJmd0OyZndDsmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICRWYW5lc3NhX2xhc3RJZCB0OG4mZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O1lvdSZxdW90OyAmcXVvdDtJIHdpbGwmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdExvZy5wdXNoKHsgdHlwZTogMSwgc2VuZGVyOiAmcXVvdDtZb3UmcXVvdDssIG1lc3NhZ2U6ICZxdW90O0kgd2lsbCZxdW90O30pJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2xhc3QgPSAmcXVvdDtJIHdpbGwmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKCiZsdDtkaXYgaWQ9JnF1b3Q7Sm9sa2tvb2xra2xvbGtrYW9sa2twb2xra0VvbGtrWm9sa2tXJnF1b3Q7Jmd0OyZsdDsvZGl2Jmd0OwogJmx0OyZsdDt0aW1lZCAwLjNzJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJnF1b3Q7I25hdi1wbGFjZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bmF2YmFyICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9vcHRpb25zID0gW10mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX3BhdXNlZCAgPSB0cnVlJmd0OyZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNjb250ZW50JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdElkICA9ICZxdW90OyNKb2xra29vbGtrbG9sa2thb2xra3BvbGtrRW9sa2tab2xra1cmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX29wdGlvbnMucHVzaCh7IHRleHQ6ICZxdW90O1Rha2UgY2FyZSwgVmFuZXNzYSZxdW90OywgcGFzc2FnZTogJnF1b3Q7VmFuZXNzYUludHJvMV85JnF1b3Q7fSkmZ3Q7Jmd0OwombHQ7Jmx0O2xpbmsgJnF1b3Q7VGFrZSBjYXJlLCBWYW5lc3NhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7VmFuZXNzYUludHJvMV85JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvbGluayZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjU1NyIgbmFtZT0iVmFuZXNzYUludHJvMV85IiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsNjk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtpZiAkc291bmQgaXMgdHJ1ZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7ClNpbXBsZUF1ZGlvLnNlbGVjdCgmcXVvdDtteW1lc3NhZ2UmcXVvdDspLnZvbHVtZSguNzUpLnBsYXkoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CnNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRTdGF0ZSAgPSAmcXVvdDtWYW5lc3NhSW50cm8xXzkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX3BhdXNlZCAgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjbmF2LXBsYWNlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtmYWtlX25hdmJhciZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7cmVwbGFjZSAmcXVvdDsjY29udGVudCZxdW90OyB0OG4mZ3Q7Jmd0OyZsdDsmbHQ7L3JlcGxhY2UmZ3Q7Jmd0OwombHQ7Jmx0O3JlcGxhY2UgJFZhbmVzc2FfbGFzdElkIHQ4biZndDsmZ3Q7CiAgICAKICAgICZsdDsmbHQ7dGltZWQgMHMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VvbGQgJnF1b3Q7WW91JnF1b3Q7ICZxdW90O1Rha2UgY2FyZSwgVmFuZXNzYSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1lvdSZxdW90OywgbWVzc2FnZTogJnF1b3Q7VGFrZSBjYXJlLCBWYW5lc3NhJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdCA9ICZxdW90O1Rha2UgY2FyZSwgVmFuZXNzYSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDAuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC4zcyAmcXVvdDtWYW5lc3NhJnF1b3Q7ICZxdW90O1lvdSB0b28sICRuYW1lJnF1b3Q7ICZxdW90O1ZvbGtrZG9sa2tub2xra2pvbGtrd29sa2tkb2xra2NvbGtrSW9sa2tIb2xra1pvbGtrcm9sa2tHb2xra0xvbGtrcW9sa2tCb2xra0kmcXVvdDsoKSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0TG9nLnB1c2goeyB0eXBlOiAxLCBzZW5kZXI6ICZxdW90O1ZhbmVzc2EmcXVvdDssIG1lc3NhZ2U6ICZxdW90O1lvdSB0b28sICRuYW1lJnF1b3Q7fSkmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdCA9ICZxdW90O1lvdSB0b28sICRuYW1lJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDEuMnMmZ3Q7Jmd0OwombHQ7Jmx0O21lc3NhZ2VfZW1vamkgJnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfc21pbGUud2VicCZxdW90OyB0cnVlICZxdW90O1ZhbmVzc2EmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0TG9nLnB1c2goeyB0eXBlOiA0LCBzZW5kZXI6ICZxdW90O1ZhbmVzc2EmcXVvdDssIG1lc3NhZ2U6ICZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX3NtaWxlLndlYnAmcXVvdDt9KSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgCiAgICAmbHQ7Jmx0O3RpbWVkIDIuMnMmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0ID0gJnF1b3Q78J+ZgiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRTdGF0ZSA9ICZxdW90O1ZhbmVzc2FJbnRybzYmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0X2hvdXIgPSAmcXVvdDsxMjoxNCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXQgPSBmYWxzZSZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRob3VyID0gJnF1b3Q7MTI6MTQmcXVvdDsmZ3Q7Jmd0OwombHQ7ZGl2IGNsYXNzPSZxdW90O29mZmxpbmUtdGV4dCZxdW90OyZndDtWYW5lc3NhIGlzIG9mZmxpbmUmbHQ7L2RpdiZndDsKJmx0OyZsdDtyZXBsYWNlICZxdW90OyNuYXYtcGxhY2UmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O25hdmJhciAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKICAgICZsdDsmbHQ7dGltZWQgMi4ycyZndDsmZ3Q7CiZsdDsmbHQ7c2V0ICRWYW5lc3NhX25vdGVzLnB1c2goJnF1b3Q7U2hlIHRleHRlZCBtZSB0byBvZmZlciBoZXIgaGVscCB3aXRoIHRoZSBBbm5pZSBzaXR1YXRpb24sIHNheWluZyB0aGF0IGlmIEkgZXZlciBoYXZlIHNlY29uZCB0aG91Z2h0cyBhYm91dCB0aGlzIEkganVzdCBuZWVkIHRvIGxldCBoZXIga25vdy4mcXVvdDspJmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjJzJmd0OyZndDsmbHQ7Jmx0O3NldCAkZW5kT2ZDb250ZW50ID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAyLjJzJmd0OyZndDsmbHQ7Jmx0O3NldCAkZXAxID0gdHJ1ZSZndDsmZ3Q7Jmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1NTgiIG5hbWU9IlZhbmVzc2Ffbm90ZSIgdGFncz0ibm90ZXNpbiBub3Rob3VyIiBwb3NpdGlvbj0iOTc1LDY5NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aGVhZGVyICZxdW90O1ZhbmVzc2EmcXVvdDsgJnF1b3Q7VmFuZXNzYSZxdW90OyAmcXVvdDtOb3RlcyZxdW90OyB0cnVlJmd0OyZndDsKICAgICZsdDtkaXYgaWQ9JnF1b3Q7cGFkZGluZy1jb250YWluZXImcXVvdDsgY2xhc3M9JnF1b3Q7dGV4dF9ibGFjayZxdW90OyZndDsKICAgICAgICAmbHQ7ZGl2Jmd0Oy0gU2hl4oCZcyBhIGNsb3NlIGZyaWVuZCBvZiBBbm5pZSBhbmQgTmFvbWksIHRoZXkgYWxsIHdvcmsgdG9nZXRoZXIuIFNoZeKAmXMgYWx3YXlzIGJlZW4gcmVhbGx5IGZyaWVuZGx5IHRvd2FyZCBtZSwgaXQgc2VlbXMgbGlrZSBzaGXigJlzIHRoZSBjb21wbGV0ZSBvcHBvc2l0ZSBvZiBOYW9taS4mbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7Jmx0O2ZvciBfaSByYW5nZSAkVmFuZXNzYV9ub3RlcyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgc3R5bGU9JnF1b3Q7bWFyZ2luLXRvcDogMTZweCZxdW90OyZndDstIF9pJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDsvZm9yJmd0OyZndDsKICAgICZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjU1OSIgbmFtZT0iZGV2X2NoYXQiIHRhZ3M9Im1hcHAgbm90aG91ciIgcG9zaXRpb249IjExMDAsNjk3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKLypyZWdpb24gRW1pbHkgY2hhdCovCiZsdDsmbHQ7aGVhZGVyICZxdW90O1RoZVBob25lR3V5IChkZXYpJnF1b3Q7ICZxdW90O2RldiZxdW90OyAmcXVvdDttZXNzYWdlX2FwcCZxdW90OyB0cnVlJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDttZXNzYWdlX2NvbnRhaW5lciZxdW90OyZndDsKJmx0OyZsdDtzZXQgX25leHQgPSAkZnJlZUNhcCsxJmd0OyZndDsKCiZsdDsmbHQ7aWYgJGVuZE9mQ29udGVudCA9PSB0cnVlJmd0OyZndDsKICAgICAmbHQ7Jmx0O3RpbWVkIDBzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlb2xkICZxdW90O0RldiZxdW90OyAmcXVvdDtIaSB0aGVyZSEmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDAuNnMmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMC43cyAmcXVvdDtEZXYmcXVvdDsgJnF1b3Q7WW914oCZdmUgcmVhY2hlZCB0aGUgZW5kIG9mIENoYXB0ZXIgJGZyZWVDYXAuJnF1b3Q7ICZxdW90O0VvbGtrb29sa2tmb2xra1hvbGtrcG9sa2twb2xra2lvbGtrWG9sa2tMb2xra2hvbGtrQW9sa2tvb2xra25vbGtrZG9sa2t0b2xra1UmcXVvdDsoKSZndDsmZ3Q7CiZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGwoKTsKJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0aW1lZCAxLjlzJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDttZXNzYWdlIDAuOHMgJnF1b3Q7RGV2JnF1b3Q7ICZxdW90O0NoYXB0ZXIgX25leHQgaXMgYWxyZWFkeSBhdmFpbGFibGUgZm9yIFBhdHJlb24gbWVtYmVycy4mcXVvdDsgJnF1b3Q7T29sa2tEb2xra3FvbGtrTW9sa2tub2xra2FvbGtraG9sa2tEb2xra29vbGtreG9sa2tPb2xra1RvbGtrYm9sa2t5b2xra1NvbGtrZSZxdW90OygpJmd0OyZndDsKJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgIHNldHVwLnNjcm9sbCgpOwombHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy90aW1lZCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RpbWVkIDMuM3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2UgMi4xcyAmcXVvdDtEZXYmcXVvdDsgJnF1b3Q7SWYgeW914oCZcmUgbm90IGEgUGF0cmVvbiBzdWJzY3JpYmVyIHlldCwgeW91IGNhbiBiZWNvbWUgb25lIGJ5IGNsaWNraW5nIHRoZSBmb2xsb3dpbmcgbGluazogJmx0O2EgdGFyZ2V0PSYjMzk7X2JsYW5rJiMzOTsgcmVsPSYjMzk7bm9vcGVuZXIgbm9yZWZlcnJlciYjMzk7IGhyZWY9JiMzOTtodHRwczovL3d3dy5wYXRyZW9uLmNvbS9UaGVQaG9uZUd1eSYjMzk7Jmd0O3BhdHJlb24uY29tL1RoZVBob25lR3V5Jmx0Oy9hJmd0OyZxdW90OyAmcXVvdDtPb2xra0tvbGtraW9sa2t6b2xra0VvbGtrdm9sa2tJb2xra3pvbGtrSm9sa2t2b2xra1NvbGtrYW9sa2tKb2xra2xvbGtrUG9sa2txJnF1b3Q7KCkmZ3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgc2V0dXAuc2Nyb2xsKCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O2VuZCZxdW90OyZndDsmbHQ7L2RpdiZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7Y2hhdF9iYXImcXVvdDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7Y29udGVudCZxdW90OyZndDsKICAgICZsdDsmbHQ7aWYgJGNhcCA9PSAzICZhbXA7JmFtcDsgJGVuZE9mQ29udGVudCA9PSB0cnVlICZhbXA7JmFtcDsgJHBtZGxwID09IGZhbHNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJnF1b3Q7SSBhbHJlYWR5IGhhdmUgYSBjb2RlJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtnb3RvICZxdW90O3BhdHJvbiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7L2RpdiZndDsKJmx0OyZsdDt0aW1lZCAwLjJzJmd0OyZndDsKICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICBzZXR1cC5zY3JvbGxJbnN0YSgpOwogICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKJmx0OyZsdDsvdGltZWQmZ3Q7Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjU2MCIgbmFtZT0iUGFzc2FnZUhlYWRlciIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSw2OTc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwogICAgJmx0O2RpdiBpZD0mcXVvdDt0b3BiYXImcXVvdDsmZ3Q7CiAgICAmbHQ7ZGl2IHN0eWxlPSZxdW90O3BhZGRpbmctbGVmdDoyMHB4OyZxdW90OyBjbGFzcz0mcXVvdDt0b3AtaG91ciZxdW90OyZndDsKICAgICRob3VyCiAgICAmbHQ7L2RpdiZndDsKICAgICZsdDtkaXYgc3R5bGU9JnF1b3Q7cGFkZGluZy1yaWdodDogMThweDtwYWRkaW5nLXRvcDogNHB4OyZxdW90OyZndDsKICAgICZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvQ2VsbHVsYXIgQ29ubmVjdGlvbi5wbmcmcXVvdDsvJmd0OwogICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9CYXR0ZXJ5LnBuZyZxdW90Oy8mZ3Q7CiAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL1dpZmkucG5nJnF1b3Q7LyZndDsKICAgICZsdDsvZGl2Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTYxIiBuYW1lPSJTdG9yeUluaXQiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCw3MTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7aW1hZ2VzX3ByZWxvYWQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7dmFyaWFibGVzJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtpbmNsdWRlICZxdW90O25hdmJhciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtoZWFkZXJfYXBwJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtpbmNsdWRlICZxdW90O21lc3NhZ2Vfb3V0c2lkZSZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7aW5jbHVkZSAmcXVvdDttZXNzYWdlJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtpbmNsdWRlICZxdW90O3BhZGRpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7bWVzc2FnZV90b2FzdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7aW5jbHVkZSAmcXVvdDttZXNzYWdlX29sZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtmYWtlX25hdmJhciZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7aW5jbHVkZSAmcXVvdDttZXNzYWdlX2ltZyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7aW5jbHVkZSAmcXVvdDttZXNzYWdlX3ZpZGVvJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtpbmNsdWRlICZxdW90O2xpa2VfYnV0dG9uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtpbmNsdWRlICZxdW90O2F2YXRhcl90b3AmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7aG9tZV9zY3JlZW5fYnV0dG9uJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtpbmNsdWRlICZxdW90O21lc3NhZ2VfZW1vamkmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7bWVzc2FnZV90YWcmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7c3dpdGNoX2J1dHRvbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtub3Rlc19idXR0b24mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7dG9kb19idXR0b24mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O2NhY2hlYXVkaW8gJnF1b3Q7bXltZXNzYWdlJnF1b3Q7ICZxdW90O2Fzc2V0cy9zb3VuZC9teU1zZy5tcDMmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O2NhY2hlYXVkaW8gJnF1b3Q7bWVzc2FnZSZxdW90OyAmcXVvdDthc3NldHMvc291bmQvcG9wLm1wMyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7Y2FjaGVhdWRpbyAmcXVvdDt0b2FzdCZxdW90OyAmcXVvdDthc3NldHMvc291bmQvbm90aWZQb3AubXAzJnF1b3Q7Jmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjU2MiIgbmFtZT0iUGFzc2FnZVJlYWR5IiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsNzEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgc2V0dXAuc2V0QmcoU3RhdGUudmFyaWFibGVzLndhbGxwYXBlcik7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1NjMiIG5hbWU9ImltYWdlc19wcmVsb2FkIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsNzEwMCIgc2l6ZT0iMTAwLDEwMCI+LyphdmF0YXIqLwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2ljb25zL0FubmllX2F2YXRhci53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9pY29ucy9OYW9taV9hdmF0YXIud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvaWNvbnMvUGhpbGxpcHNfYXZhdGFyLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2ljb25zL1ZhbmVzc2FfYXZhdGFyLndlYnAmcXVvdDsvJmd0OwoKLyppY29uKi8KJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9pY29ucy9CYWNrdXBzLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2ljb25zL0Nsb2NrLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2ljb25zL0NyZWRpdHMud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvaWNvbnMvRGlzY29yZC53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9pY29ucy9Ib3Jvc2NvcGUud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvaWNvbnMvSW5zdGF2aWJlLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2ljb25zL0l0Y2guaW8ud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvaWNvbnMvSm91cm5hbC53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9pY29ucy9NZXNzYWdlcy53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9pY29ucy9NdXNpYy53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9pY29ucy9Ob3Rlcy53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9pY29ucy9QYXRyZW9uLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2ljb25zL1Bob3Rvcy53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9pY29ucy9QcmVtaXVtLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2ljb25zL1NldHRpbmdzLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2ljb25zL1N5c3RlbS53ZWJwJnF1b3Q7LyZndDsKCi8qZW1vdGVzKi8KJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfYmlnX3NtaWxlLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9jb25maWRlbmNlLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9jcnlpbmcud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2RvdWJ0LndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV9oZWFydHMud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X21vdXRoLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9oYXBweV90b25ndWUud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2hhcHB5X3dpbmsud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xhdWdoLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9sZXdkX2ZhY2Uud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX2xtYW8ud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX25vX3dvcmRzLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV9zbWlsZS53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lbW9qaXMvZW1vamlfc3RyZXNzZWQud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZW1vamlzL2Vtb2ppX3N1cnByaXNlLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV93aGF0LndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV93aW5rLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2Vtb2ppcy9lbW9qaV94ZC53ZWJwJnF1b3Q7LyZndDsKCi8qZXAxKi8KJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lcDEvYW5uaWVfcGhvdG9fMS53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lcDEvYW5uaWVfcGhvdG9fMV90aHVtYm5haWwud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZXAxL2FubmllX3Bob3RvXzIud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZXAxL2FubmllX3Bob3RvXzJfdGh1bWJuYWlsLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2VwMS9oYWlsZXlfcGhvdG9fMS53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lcDEvaGFpbGV5X3Bob3RvXzFfdGh1bWJuYWlsLndlYnAmcXVvdDsvJmd0OwoKLyplcDIqLwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2VwMi9hbm5pZV9waG90b18zLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2VwMi9hbm5pZV9waG90b18zX3RodW1ibmFpbC53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lcDIvYW5uaWVfcGhvdG9fNC53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lcDIvYW5uaWVfcGhvdG9fNF90aHVtYm5haWwud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZXAyL2hhaWxleV9waG90b18yLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2VwMi9oYWlsZXlfcGhvdG9fMl90aHVtYm5haWwud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZXAyL2hhaWxleV9waG90b18zLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2VwMi9oYWlsZXlfcGhvdG9fM190aHVtYm5haWwud2VicCZxdW90Oy8mZ3Q7CgovKmVwMyovCiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZXAzL2FubmllX3Bob3RvXzUud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZXAzL2hhaWxleV9waG90b180LndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2VwMy9oYWlsZXlfcGhvdG9fNS53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lcDMvYW5uaWVfcGhvdG9fNV90aHVtYm5haWwud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZXAzL2hhaWxleV9waG90b180X3RodW1ibmFpbC53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lcDMvaGFpbGV5X3Bob3RvXzVfdGh1bWJuYWlsLndlYnAmcXVvdDsvJmd0OwoKCi8qZXA0Ki8KJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lcDQvYW5uaWVfcGhvdG9fNi53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lcDQvYW5uaWVfcGhvdG9fNl90aHVtYm5haWwud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZXA0L2FubmllX3Bob3RvXzcud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZXA0L2FubmllX3Bob3RvXzdfdGh1bWJuYWlsLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2VwNC9hbm5pZV9waG90b184LndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2VwNC9hbm5pZV9waG90b184X3RodW1ibmFpbC53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lcDQvYW5uaWVfcGhvdG9fOS53ZWJwJnF1b3Q7LyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lcDQvYW5uaWVfcGhvdG9fOV90aHVtYm5haWwud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZXA0L25hb21pX3Bob3RvXzEud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZXA0L25hb21pX3Bob3RvXzFfdGh1bWJuYWlsLndlYnAmcXVvdDsvJmd0OwombHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2VwNC92YW5lc3NhX3Bob3RvXzEud2VicCZxdW90Oy8mZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZXA0L3ZhbmVzc2FfcGhvdG9fMV90aHVtYm5haWwud2VicCZxdW90Oy8mZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1NjQiIG5hbWU9Imluc3RhdmliZSIgdGFncz0id2hpdGUgbm90aG91ciIgcG9zaXRpb249IjQ3NSw3MTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2hlYWRlciAmcXVvdDtJbnN0YXZpYmUmcXVvdDsgJnF1b3Q7JnF1b3Q7ICZxdW90O2hvbWUmcXVvdDsgdHJ1ZSZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7cGFkZGluZy1jb250YWluZXImcXVvdDsmZ3Q7CiZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7ZXJyb3ImcXVvdDsmZ3Q7CiZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvZXJyb3Iud2VicCZxdW90OyZndDsKJmx0O3NwYW4mZ3Q7SW50ZXJuYWwgU2VydmVyIEVycm9yJmx0Oy9zcGFuJmd0Owo1MDAKJmx0O3NwYW4gc3R5bGU9JnF1b3Q7Zm9udC1zaXplOiAxcmVtOyZxdW90OyZndDsoRGV2ZWxvcGVycyBhcmUgYnVzeSkmbHQ7L3NwYW4mZ3Q7CiZsdDsvZGl2Jmd0OwovKiAmbHQ7ZGl2IGNsYXNzPSZxdW90O2luc3RhdmliZS10b3AmcXVvdDsmZ3Q7CiAgICAmbHQ7Jmx0O2F2YXRhcl90b3AgJnF1b3Q7RW1pbHkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDthdmF0YXJfdG9wICZxdW90O0VtaWx5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7YXZhdGFyX3RvcCAmcXVvdDtFbWlseSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2F2YXRhcl90b3AgJnF1b3Q7RW1pbHkmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDthdmF0YXJfdG9wICZxdW90O0VtaWx5JnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7YXZhdGFyX3RvcCAmcXVvdDtFbWlseSZxdW90OyZndDsmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7aW5zdGF2aWJlX3Bvc3RfdGVzdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtpbnN0YXZpYmVfcG9zdF90ZXN0JnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDtpbmNsdWRlICZxdW90O2luc3RhdmliZV9wb3N0X3Rlc3QmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7aW5zdGF2aWJlX3Bvc3RfdGVzdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtpbnN0YXZpYmVfcG9zdF90ZXN0JnF1b3Q7Jmd0OyZndDsgKi8KJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTY1IiBuYW1lPSJpbnN0YXZpYmVfcG9zdF90ZXN0IiB0YWdzPSIiIHBvc2l0aW9uPSI2MDAsNzEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtpbWctcG9zdCZxdW90OyZndDsKJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9pbnN0YXZpYmUvRW1pbHlfMS53ZWJwJnF1b3Q7Jmd0OwombHQ7Jmx0O2J1dHRvbiAmcXVvdDsmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJGltZyA9ICZxdW90O2Fzc2V0cy9pbWcvaW5zdGF2aWJlL0VtaWx5XzEud2VicCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgRGlhbG9nLnNldHVwKCZxdW90OyZxdW90Oyk7CiAgICAgICAgRGlhbG9nLndpa2koJiMzOTsmbHQ7Jmx0O2luY2x1ZGUgJnF1b3Q7aW1nX2JpZyZxdW90OyZndDsmZ3Q7JiMzOTspOwogICAgICAgIERpYWxvZy5vcGVuKCk7CiAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwombHQ7Jmx0Oy9idXR0b24mZ3Q7Jmd0OwombHQ7L2RpdiZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtpbnN0YXZpYmUtcG9zdCZxdW90OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7YXZhdGFyJnF1b3Q7Jmd0OwogICAgICAgICZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvaW5zdGF2aWJlL0VtaWx5X2F2YXRhci53ZWJwJnF1b3Q7Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3RleHQmcXVvdDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDt0b3AmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7bmFtZSZxdW90OyZndDtjcmF6eW5mdW4mbHQ7L2RpdiZndDsKICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDt0aW1lJnF1b3Q7Jmd0O0xpa2VkIGJ5IDgzIHBlb3BsZSZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7Ym90dG9tJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2NhcHRpb24mcXVvdDsmZ3Q7RW1pbHkmbHQ7L2RpdiZndDsKICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtidXR0b25zJnF1b3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9Eb3dubG9hZC53ZWJwJnF1b3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtpbmNsdWRlICZxdW90O2xpa2VfYnV0dG9uX3Rlc3QmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICZsdDsvZGl2Jmd0OwombHQ7L2RpdiZndDsKJmx0O2RpdiBjbGFzcz0mcXVvdDtkZXNjcmlwdGlvbiZxdW90OyZndDtUaGlzIHdhcyBhIGdyZWF0IGRheSwgYSBsb3Qgb2YgZnVuIHdpdGggZnJpZW5kcyBhbmQgZmFtaWx5LiBTYWRseSBJIGdvdCBzaWNrIGJ1dCBJ4oCZbSBkb2luZyBiZXR0ZXIgbm93Li4uJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTY2IiBuYW1lPSJFbWlseV9wcm9maWxlIiB0YWdzPSJ3aGl0ZSIgcG9zaXRpb249IjcyNSw3MTAwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2hlYWRlciAmcXVvdDtjcmF6eW5mdW4mcXVvdDsgJnF1b3Q7JnF1b3Q7ICZxdW90O2luc3RhdmliZSZxdW90OyB0cnVlJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDtwYWRkaW5nLWNvbnRhaW5lciZxdW90OyZndDsKCiZsdDtkaXYgY2xhc3M9JnF1b3Q7cHJvZmlsZS1jYXJkJnF1b3Q7Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDthdmF0YXItY29udGFpbmVyJnF1b3Q7Jmd0OwogICAgICAgICZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvaW5zdGF2aWJlL0VtaWx5X2F2YXRhci53ZWJwJnF1b3Q7Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3Byb2ZpbGUtaW5mbyZxdW90OyZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O25hbWUmcXVvdDsmZ3Q7Y3JhenluZnVuJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtiaW8mcXVvdDsmZ3Q7SSBqdXN0IHdhbm5hIGhhdmUgZnVuIGFuZCBlbmpveSBsaWZlLiZsdDsvZGl2Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7c3RhdHMmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7cG9zdHMmcXVvdDsmZ3Q7MyAmbHQ7YnImZ3Q7IFBvc3RzJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7Zm9sbG93ZXJzJnF1b3Q7Jmd0Ozk2MSAmbHQ7YnImZ3Q7IEZvbGxvd2VycyZsdDsvZGl2Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2ZvbGxvd2luZyZxdW90OyZndDsxNDcgJmx0O2JyJmd0OyBGb2xsb3dpbmcmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwoKCiZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtpbnN0YXZpYmVfcG9zdF90ZXN0JnF1b3Q7Jmd0OyZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTY3IiBuYW1lPSJhdmF0YXJfdG9wIiB0YWdzPSIiIHBvc2l0aW9uPSI4NTAsNzEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsmbHQ7Jmx0O3dpZGdldCAmcXVvdDthdmF0YXJfdG9wJnF1b3Q7Jmd0OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7aW5zdGF2aWJlLXRvcC1jb250ZW50JnF1b3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0IF9hdmF0YXIgPSAmcXVvdDthc3NldHMvaW1nL2luc3RhdmliZS8mcXVvdDsgKyAkYXJnc1swXSArICZxdW90O19hdmF0YXIud2VicCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0O2ltZyBAc3JjPSZxdW90O19hdmF0YXImcXVvdDsmZ3Q7CiAgICAgICAgJGFyZ3NbMF0KICAgICAgICAmbHQ7Jmx0O2J1dHRvbiAmcXVvdDsmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O3NldCBfcHJvZmlsZSA9ICRhcmdzWzBdKyAmcXVvdDtfcHJvZmlsZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7Z290byBfcHJvZmlsZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvYnV0dG9uJmd0OyZndDsKICAgICZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy93aWRnZXQmZ3Q7Jmd0OyZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTY4IiBuYW1lPSJsaWtlX2J1dHRvbiIgdGFncz0iIiBwb3NpdGlvbj0iOTc1LDcxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7Jmx0OyZsdDt3aWRnZXQgJnF1b3Q7bGlrZV9idXR0b24mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkYXJnc1swXSA9PSB0cnVlJmd0OyZndDsKICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2hlYXJ0bGlrZWQud2VicCZxdW90OyZndDsKICAgICAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2hlYXJ0LndlYnAmcXVvdDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7L3dpZGdldCZndDsmZ3Q7Jmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1NjkiIG5hbWU9Imxpa2VfYnV0dG9uX3Rlc3QiIHRhZ3M9IiIgcG9zaXRpb249IjExMDAsNzEwMCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7bWFnaWNfYnV0dG9uJnF1b3Q7Jmd0OwogICAgICAgICZsdDtkaXYgaWQ9JnF1b3Q7dGVzdGJ1dHRvbiZxdW90OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtsaWtlX2J1dHRvbiAkdGVzdHZhciZndDsmZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDtidXR0b24gJnF1b3Q7JnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtzZXQgJHRlc3R2YXIgPSAhJHRlc3R2YXImZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O3JlcGxhY2UgICZxdW90OyN0ZXN0YnV0dG9uJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7bGlrZV9idXR0b24gJHRlc3R2YXImZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9yZXBsYWNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9idXR0b24mZ3Q7Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTcwIiBuYW1lPSJoZWFkZXJfYXBwIiB0YWdzPSIiIHBvc2l0aW9uPSIxMjI1LDcxMDAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7Jmx0OyZsdDt3aWRnZXQgJnF1b3Q7aGVhZGVyJnF1b3Q7Jmd0OyZndDsKJmx0OyEtLXJlZ2lvbiBoZWFkZXIgLS0mZ3Q7CiZsdDsmbHQ7c2V0IF9hdmF0YXIgPSAkYXJnc1sxXSZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7aGVhZGVyX2FwcCZxdW90OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7aGVhZGVyX2FwcF9jb250ZW50JnF1b3Q7Jmd0OwogICAgICAgICZsdDtkaXYgaWQ9JnF1b3Q7bmF2LXBsYWNlJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2lmICRhcmdzWzNdID09IHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtuYXZiYXIgJGFyZ3NbMl0mZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O2Zha2VfbmF2YmFyJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsmbHQ7aWYgX2F2YXRhciAhPSAmcXVvdDsmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2IGlkPSZxdW90O2F2YXRhcl9tZXNzYWdlJnF1b3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgX2F2YXRhckltZyA9ICZxdW90O2Fzc2V0cy9pbWcvJnF1b3Q7K19hdmF0YXIrJnF1b3Q7X2F2YXRhci53ZWJwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDtpbWcgQHNyYz0mcXVvdDtfYXZhdGFySW1nJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtoZWFkZXJfdGl0bGUmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtoMSZndDskYXJnc1swXSZsdDsvaDEmZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDtpZiBfYXZhdGFyICE9ICZxdW90OyZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgaWQ9JnF1b3Q7bWVzc2FnZV9idXR0b25zJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAgICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAgICAgJmx0O2RpdiBzdHlsZT0mcXVvdDtoZWlnaHQ6IDUwcHg7IHdpZHRoOiAzOHB4OyZxdW90OyZndDsKICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy93aWRnZXQmZ3Q7Jmd0OyZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTcxIiBuYW1lPSJuYXZiYXIiIHRhZ3M9IiIgcG9zaXRpb249IjEwMCw3MjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OyZsdDsmbHQ7d2lkZ2V0ICZxdW90O25hdmJhciZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7bmF2YmFyJnF1b3Q7Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtidXR0b24tYXBwJnF1b3Q7Jmd0OwogICAgICAgICZsdDtpbWcgc3JjPSYjMzk7YXNzZXRzL2ltZy9CYWNrLndlYnAmIzM5Oy8mZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICZxdW90OyZxdW90OyAkYXJnc1swXSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L3dpZGdldCZndDsmZ3Q7Jmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1NzIiIG5hbWU9ImZha2VfbmF2YmFyIiB0YWdzPSIiIHBvc2l0aW9uPSIyMjUsNzIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsmbHQ7Jmx0O3dpZGdldCAmcXVvdDtmYWtlX25hdmJhciZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7bmF2YmFyJnF1b3Q7Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtidXR0b24tYXBwJnF1b3Q7Jmd0OwogICAgICAgICZsdDtpbWcgc3JjPSYjMzk7YXNzZXRzL2ltZy9CYWNrLndlYnAmIzM5Oy8mZ3Q7CiAgICAmbHQ7L2RpdiZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L3dpZGdldCZndDsmZ3Q7Jmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1NzMiIG5hbWU9InZhcmlhYmxlcyIgdGFncz0iIiBwb3NpdGlvbj0iMzUwLDcyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTc0IiBuYW1lPSJTdGFydCIgdGFncz0iYmcxIG5vdGhvdXIiIHBvc2l0aW9uPSI0NzUsNzIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgIC8qcmVnaW9uIHN0YXJ0Ki8KICAgICZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvbG9nby53ZWJwJnF1b3Q7IGNsYXNzPSZxdW90O2xvZ28mcXVvdDsvJmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDttYWluLW1lbnUmcXVvdDsmZ3Q7CiAgICAgICAgW1tOZXcgR2FtZXxkaXNjbGFpbWVyXV0KICAgICAgICAmbHQ7Jmx0O2xpbmsgJnF1b3Q7TG9hZCZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgICQud2lraSgmIzM5OyZsdDsmbHQ7cnVuIFVJLnNhdmVzKCkmZ3Q7Jmd0OyYjMzk7KTsKICAgICAgICAgICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJnF1b3Q7RnVsbCBTY3JlZW4mcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgICAgICAgICBzZXR1cC50b2dnbGVGdWxsU2NyZWVuKCk7CiAgICAgICAgICAgICZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1NzUiIG5hbWU9ImRpc2NsYWltZXIiIHRhZ3M9ImJnMSBub3Rob3VyIiBwb3NpdGlvbj0iNjAwLDcyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3BhbmVsJnF1b3Q7Jmd0OwogICAgICAgICZsdDtwJmd0OyYjMzk7JiMzOTtNeSBQaG9uZSBpcyBOVFImIzM5OyYjMzk7IGlzIGFuIGFkdWx0IGdhbWUgdGhhdCBjb250YWlucyBhZ2UtcmVzdHJpY3RlZCBjb250ZW50LiBZb3UgbXVzdCBiZSAxOCB5ZWFycyBvbGQgb3Igb3ZlciB0byBwbGF5LiZsdDsvcCZndDsKICAgICAgICBbW0kgYW0gMTggb3Igb2xkZXJ8IGRpc2NsYWltZXJBdWRpb11dCiAgICAgICAgW1tFeGl0fCBTdGFydF1dCiAgICAmbHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1NzYiIG5hbWU9ImRpc2NsYWltZXJBdWRpbyIgdGFncz0iYmcxIG5vdGhvdXIiIHBvc2l0aW9uPSI3MjUsNzIyNSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7cGFuZWwmcXVvdDsmZ3Q7CiAgICAgICAgJmx0O3AmZ3Q7VGhpcyBnYW1lIGluY2x1ZGVzIGF1ZGlvIGNvbnRlbnQsIHNwZWNpZmljYWxseSB3aGVuIHlvdSByZWNlaXZlIG9yIHNlbmQgYSBtZXNzYWdlLiBIb3cgd291bGQgeW91IGxpa2UgdG8gY29uZmlndXJlIGl0PyZsdDsvcCZndDsKICAgICAgICBbW0VuYWJsZSBzb3VuZHwgc3RhcnRTZXR0aW5nXV0KICAgICAgICBbW0Rpc2FibGUgc291bmR8IHN0YXJ0U2V0dGluZ11bJHNvdW5kID0gZmFsc2VdXQogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTc3IiBuYW1lPSJzdGFydFNldHRpbmciIHRhZ3M9ImJnMSBub3Rob3VyIiBwb3NpdGlvbj0iODUwLDcyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3BhbmVsJnF1b3Q7Jmd0OwogICAgICAgICZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvbG9nby53ZWJwJnF1b3Q7LyZndDsKICAgICAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgICAgIFdyaXRlIHlvdXIgbmFtZToKICAgICAgICAmbHQ7Jmx0O3RleHRib3ggJnF1b3Q7JG5hbWUmcXVvdDsgJnF1b3Q7Sm9zaCZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICAgICBbW0NvbnRpbnVlfCBob21lXV0KICAgICZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjU3OCIgbmFtZT0iYmFja1NjcmVlbiIgdGFncz0ibm90aGluZyBub3Rob3VyIiBwb3NpdGlvbj0iOTc1LDcyMjUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkdHJhbnNpdGlvbiA9IGZhbHNlJmd0OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7YmFjay1zY3JlZW4mcXVvdDsmZ3Q7CiAgICAgICAgJmx0O2gyJmd0OyR0cmFuc2l0aW9uVGV4dCZsdDsvaDImZ3Q7CiAgICAmbHQ7L2RpdiZndDsKICAgICZsdDsmbHQ7dGltZWQgMnMmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7Z290byAmcXVvdDtob21lJnF1b3Q7Jmd0OyZndDsKICAgICZsdDsmbHQ7L3RpbWVkJmd0OyZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1NzkiIG5hbWU9ImhvbWUiIHRhZ3M9ImJnMSBub3Rob3VyIiBwb3NpdGlvbj0iMTEwMCw3MjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwogICAgLypyZWdpb24gaG9tZSovCiAgICAmbHQ7Jmx0O3NldCAkYmFjayA9ICZxdW90O2hvbWUmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkQW5uaWVfbm90aWZpY2F0aW9uXzEgPT0gZmFsc2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9ub3RpZmljYXRpb25fMSA9IHRydWUmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgc2V0dXAudG9hc3QoJnF1b3Q7QW5uaWUmcXVvdDssJnF1b3Q7SGV5IGhvbmV5LCBnb29kIG1vcm5pbmcmcXVvdDssIFN0YXRlLnZhcmlhYmxlcy5ob3VyKTsKICAgICAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkVG9hc3RBbm5pZTIgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzZXQgJFRvYXN0QW5uaWUyID0gZmFsc2UmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgc2V0dXAudG9hc3QoJnF1b3Q7QW5uaWUmcXVvdDssJnF1b3Q7SGV5IGhvbmV5JnF1b3Q7LCAmcXVvdDsyMTozNCZxdW90Oyk7CiAgICAgICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICZsdDsmbHQ7L2lmJmd0OyZndDsKCiAgICAmbHQ7Jmx0O2lmICRIYWlsZXlfY2hhdFN0YXRlID09ICZxdW90O0hhaWxleUNoYXRFcDNfMSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtzY3JpcHQmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgc2V0dXAudG9hc3QoJnF1b3Q7SGFpbGV5JnF1b3Q7LCZxdW90O0hleSwgYXJlIHlvdSBzdGlsbCB0aGVyZT8mcXVvdDssIFN0YXRlLnZhcmlhYmxlcy5ob3VyKTsKICAgICAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwoKCiAgICAmbHQ7Jmx0O2lmICRIYWlsZXlfY2hhdFN0YXRlID09ICZxdW90O0hhaWxleUNoYXRFcDNfMl8xJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgICAgICAgICBzZXR1cC50b2FzdCgmcXVvdDtIYWlsZXkmcXVvdDssJnF1b3Q7T2theSwgSSBuZWVkIHlvdXIgaGVscCBhZ2FpbiZxdW90OywgU3RhdGUudmFyaWFibGVzLmhvdXIpOwogICAgICAgICZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CgogICAgJmx0OyZsdDtpZiAkQW5uaWVfY2hhdFN0YXRlID09ICZxdW90O0FubmllQ2hhdEVwM18xJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgICAgICAgICBzZXR1cC50b2FzdCgmcXVvdDtBbm5pZSZxdW90OywmcXVvdDtHb29kIG1vcm5pbmcgaG9uZXkmcXVvdDssIFN0YXRlLnZhcmlhYmxlcy5ob3VyKTsKICAgICAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgCgogICAgJmx0O2RpdiBpZD0mcXVvdDtob21lLXNjcmVlbiZxdW90OyZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2hvdXItY29udGFpbmVyJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2hvdXItc2NyZWVuJnF1b3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0O2gxJmd0OyRob3VyJmx0Oy9oMSZndDsKICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtpY29uLWNvbnRhaW5lciZxdW90OyZndDsKICAgICAgICAmbHQ7Jmx0O2hvbWVfc2NyZWVuX2J1dHRvbiAmcXVvdDtOb3RlcyZxdW90OyAmcXVvdDtOb3RlcyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtidXR0b24tYXBwJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7aW1nIHNyYz0mIzM5O2Fzc2V0cy9pbWcvaWNvbnMvSXRjaC5pby53ZWJwJiMzOTsvJmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2xpbmsgJnF1b3Q7JnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7cnVuIHdpbmRvdy5vcGVuKCZxdW90O2h0dHBzOi8vdGhlLXBob25lLWd1eS5pdGNoLmlvL215LXBob25lLWlzLW50ciZxdW90OywgJnF1b3Q7X2JsYW5rJnF1b3Q7KSZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7YnV0dG9uLWFwcCZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2ltZyBzcmM9JiMzOTthc3NldHMvaW1nL2ljb25zL1BhdHJlb24ud2VicCYjMzk7LyZndDsKICAgICAgICAgICAgJmx0OyZsdDtsaW5rICZxdW90OyZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3J1biB3aW5kb3cub3BlbigmcXVvdDtodHRwczovL3d3dy5wYXRyZW9uLmNvbS9UaGVQaG9uZUd1eSZxdW90OywgJnF1b3Q7X2JsYW5rJnF1b3Q7KSZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsmbHQ7aG9tZV9zY3JlZW5fYnV0dG9uICZxdW90O0pvdXJuYWwmcXVvdDsgJnF1b3Q7VG9EbyZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtob21lX3NjcmVlbl9idXR0b24gJnF1b3Q7U3lzdGVtJnF1b3Q7ICZxdW90O1N5c3RlbSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtob21lX3NjcmVlbl9idXR0b24gJnF1b3Q7U2V0dGluZ3MmcXVvdDsgJnF1b3Q7U2V0dGluZ3MmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aG9tZV9zY3JlZW5fYnV0dG9uICZxdW90O0NyZWRpdHMmcXVvdDsgJnF1b3Q7JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2J1dHRvbi1hcHAmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtpbWcgc3JjPSYjMzk7YXNzZXRzL2ltZy9pY29ucy9EaXNjb3JkLndlYnAmIzM5Oy8mZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bGluayAmcXVvdDsmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtydW4gd2luZG93Lm9wZW4oJnF1b3Q7aHR0cHM6Ly9kaXNjb3JkLmdnL2trTU05YXZRanUmcXVvdDssICZxdW90O19ibGFuayZxdW90OykmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAvKiAmbHQ7Jmx0O2hvbWVfc2NyZWVuX2J1dHRvbiAmcXVvdDtQcmVtaXVtJnF1b3Q7ICZxdW90O3BhdHJvbiZxdW90OyZndDsmZ3Q7ICovCiAgICAmbHQ7L2RpdiZndDsKICAgICZsdDsvZGl2Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtib3R0b20tYmFyJnF1b3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aG9tZV9zY3JlZW5fYnV0dG9uICZxdW90O01lc3NhZ2VzJnF1b3Q7ICZxdW90O21lc3NhZ2VfYXBwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2J1dHRvbi1hcHAmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtpbWcgc3JjPSYjMzk7YXNzZXRzL2ltZy9pY29ucy9QaG90b3Mud2VicCYjMzk7LyZndDsKICAgICAgICAgICAgJmx0OyZsdDtsaW5rICZxdW90OyZxdW90OyAmcXVvdDtwaG90byZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7YnV0dG9uLWFwcCZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2ltZyBzcmM9JiMzOTthc3NldHMvaW1nL2ljb25zL0JhY2t1cHMud2VicCYjMzk7LyZndDsKICAgICAgICAgICAgJmx0OyZsdDtsaW5rICZxdW90OyZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJC53aWtpKCYjMzk7Jmx0OyZsdDtydW4gVUkuc2F2ZXMoKSZndDsmZ3Q7JiMzOTspOwogICAgICAgICAgICAgICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1ODAiIG5hbWU9ImhvbWVfc2NyZWVuX2J1dHRvbiIgdGFncz0iIiBwb3NpdGlvbj0iMTIyNSw3MjI1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OyZsdDsmbHQ7d2lkZ2V0ICZxdW90O2hvbWVfc2NyZWVuX2J1dHRvbiZxdW90OyZndDsmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7YnV0dG9uLWFwcCZxdW90OyZndDsKICAgICZsdDsmbHQ7c2V0IF9pbWcgPSAmcXVvdDthc3NldHMvaW1nL2ljb25zLyZxdW90OyskYXJnc1swXSsmcXVvdDsud2VicCZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7aW1nIEBzcmM9JiMzOTtfaW1nJiMzOTsvJmd0OwogICAgJmx0OyZsdDtsaW5rICZxdW90OyZxdW90OyAkYXJnc1sxXSZndDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L3dpZGdldCZndDsmZ3Q7Jmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1ODEiIG5hbWU9Im1lc3NhZ2VfYXBwIiB0YWdzPSJtYXBwIG5vdGhvdXIiIHBvc2l0aW9uPSIxMDAsNzM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKLypyZWdpb24gbWVzc2FnZSBhcHAqLyAKCiZsdDsmbHQ7aWYgJHRyYW5zaXRpb24gPT0gdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2dvdG8gJnF1b3Q7YmFja1NjcmVlbiZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKCiZsdDsmbHQ7aWYgJGNhcCA9PSAxICZhbXA7JmFtcDsgJGVuZE9mQ29udGVudCA9PSB0cnVlICZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkZW5kT2ZDb250ZW50ID0gZmFsc2UmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJGNhcCA9IDImZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0ID0gdHJ1ZSAmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgPSAmcXVvdDtIYWlsZXlFcDJfMSZxdW90OyAmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7JG5hbWUsIGl0JiMzOTtzIG1lIGFnYWluLiBIb3cmIzM5O3MgZXZlcnl0aGluZyBnb2luZz8mcXVvdDsgJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZyA9ICRIYWlsZXlfY2hhdExvZy5zbGljZSgtNSkmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CgombHQ7Jmx0O2lmICRjYXAgPT0gMiAmYW1wOyZhbXA7ICRlbmRPZkNvbnRlbnQgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkZW5kT2ZDb250ZW50ID0gZmFsc2UmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJGNhcCA9IDMmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0ID0gdHJ1ZSAmZ3Q7Jmd0OwogICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzEmcXVvdDsgJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O0hleSAkbmFtZSwgYXJlIHlvdSBzdGlsbCB0aGVyZT8mcXVvdDsgJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZyA9ICRIYWlsZXlfY2hhdExvZy5zbGljZSgtNSkmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CgombHQ7Jmx0O2lmICRjYXAgPT0gMyAmYW1wOyZhbXA7ICRlbmRPZkNvbnRlbnQgPT0gdHJ1ZSAmYW1wOyZhbXA7ICRwbWRscCA9PSB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7c2V0ICRlbmRPZkNvbnRlbnQgPSBmYWxzZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkY2FwID0gNCZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXQgPSB0cnVlICZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSA9ICZxdW90O0hhaWxleUNoYXRFcDRfMV8xJnF1b3Q7ICZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cgPSAkSGFpbGV5X2NoYXRMb2cuc2xpY2UoLTUpJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwoKCiZsdDsmbHQ7aGVhZGVyICZxdW90O0NvbnRhY3RzJnF1b3Q7ICZxdW90OyZxdW90OyAmcXVvdDtob21lJnF1b3Q7IHRydWUmZ3Q7Jmd0OwombHQ7ZGl2IHN0eWxlPSZxdW90O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBnYXA6IDIycHg7JnF1b3Q7Jmd0OwoKJmx0OyZsdDtpZiAkY2FwID09IDMgJmFtcDsmYW1wOyAkZW5kT2ZDb250ZW50ID09IHRydWUgJmFtcDsmYW1wOyAkcG1kbHAgPT0gZmFsc2UmZ3Q7Jmd0OwogICAgJmx0OyZsdDttZXNzYWdlbyAmcXVvdDtkZXYmcXVvdDsgJGRldl9sYXN0ICRWYW5lc3NhX2xhc3RfaG91ciZndDsmZ3Q7CiAgICAmbHQ7Jmx0O2Vsc2VpZiAkY2FwID09IDQgJmFtcDsmYW1wOyAkZW5kT2ZDb250ZW50ID09IHRydWUmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bWVzc2FnZW8gJnF1b3Q7ZGV2JnF1b3Q7ICRkZXZfbGFzdCAkVmFuZXNzYV9sYXN0X2hvdXImZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CgombHQ7Jmx0O21lc3NhZ2VvICZxdW90O0FubmllJnF1b3Q7ICRBbm5pZV9sYXN0ICRBbm5pZV9sYXN0X2hvdXImZ3Q7Jmd0OwoKJmx0OyZsdDtpZiAkTmFvbWlfdmlzaWJsZSA9PSB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7bWVzc2FnZW8gJnF1b3Q7TmFvbWkmcXVvdDsgJE5hb21pX2xhc3QgJE5hb21pX2xhc3RfaG91ciZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKCiZsdDsmbHQ7aWYgJFZhbmVzc2FfdmlzaWJsZSA9PSB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7bWVzc2FnZW8gJnF1b3Q7VmFuZXNzYSZxdW90OyAkVmFuZXNzYV9sYXN0ICRWYW5lc3NhX2xhc3RfaG91ciZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKCiZsdDsmbHQ7aWYgJEhhaWxleV92aXNpYmxlID09IHRydWUmZ3Q7Jmd0OwogICAgJmx0OyZsdDttZXNzYWdlbyAmcXVvdDtIYWlsZXkmcXVvdDsgJEhhaWxleV9sYXN0ICRIYWlsZXlfbGFzdF9ob3VyJmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwoKJmx0OyZsdDtpZiAkUGhpbGxpcHNfdmlzaWJsZSA9PSB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7bWVzc2FnZW8gJnF1b3Q7UGhpbGxpcHMmcXVvdDsgJFBoaWxsaXBzX2xhc3QgJFBoaWxsaXBzX2xhc3RfaG91ciZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKCiZsdDsmbHQ7aWYgJEplbm5hX3Zpc2libGUgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O21lc3NhZ2VvICZxdW90O0plbm5hJnF1b3Q7ICRKZW5uYV9sYXN0ICRKZW5uYV9sYXN0X2hvdXImZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CgombHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1ODIiIG5hbWU9IlRvRG8iIHRhZ3M9InRvZG8gbm90aG91ciIgcG9zaXRpb249IjIyNSw3MzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2hlYWRlciAmcXVvdDtUby1EbyZxdW90OyAmcXVvdDsmcXVvdDsgJnF1b3Q7aG9tZSZxdW90OyB0cnVlJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDtwYWRkaW5nLWNvbnRhaW5lciZxdW90OyZndDsKJmx0O3AmZ3Q7SGVyZSB5b3UgY2FuIGNoZWNrIHRoZSBhY2hpZXZlbWVudHMgeW914oCZdmUgYWxyZWFkeSB1bmxvY2tlZC4mbHQ7L3AmZ3Q7CiZsdDtkaXYgY2xhc3M9JnF1b3Q7YWNoaWV2ZW1lbnRzX3RpbGUmcXVvdDsmZ3Q7VW5sb2NrZWQ6Jmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7aWYgJGVwMSA9PSB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7dG9kb19idXR0b24gJnF1b3Q7YXNzZXRzL2ltZy9hY2hpZXZlbWVudHMvYWNoNC53ZWJwJnF1b3Q7ICZxdW90O0VwaXNvZGUgMSAtIEZhciBGcm9tIEhvbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7aWYgJG5hb21pX29mZmVyID09IHRydWUmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0b2RvX2J1dHRvbiAmcXVvdDthc3NldHMvaW1nL2FjaGlldmVtZW50cy9hY2gxLndlYnAmcXVvdDsgJnF1b3Q7QSBEYW5nZXJvdXMgQWxseT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7aWYgJGVwMiA9PSB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7dG9kb19idXR0b24gJnF1b3Q7YXNzZXRzL2ltZy9hY2hpZXZlbWVudHMvYWNoMy53ZWJwJnF1b3Q7ICZxdW90O0VwaXNvZGUgMiAtIE5vIExvb2tpbmcgQmFjayZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKCiZsdDsmbHQ7aWYgJEplbm5hQWNoaXZlbWVudCA9PSB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7dG9kb19idXR0b24gJnF1b3Q7YXNzZXRzL2ltZy9hY2hpZXZlbWVudHMvYWNoMi53ZWJwJnF1b3Q7ICZxdW90O0FuIE9sZCBGcmllbmQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CgombHQ7Jmx0O2lmICRoYWlsZXlfdWIgPT0gdHJ1ZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RvZG9fYnV0dG9uICZxdW90O2Fzc2V0cy9pbWcvYWNoaWV2ZW1lbnRzL2FjaDUud2VicCZxdW90OyAmcXVvdDtBIEhlbHBpbmcgSGFuZCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKCiZsdDsmbHQ7aWYgJGVwMyA9PSB0cnVlJmd0OyZndDsKICAgICZsdDsmbHQ7dG9kb19idXR0b24gJnF1b3Q7YXNzZXRzL2ltZy9hY2hpZXZlbWVudHMvYWNoNi53ZWJwJnF1b3Q7ICZxdW90O0VwaXNvZGUgMyAtIE9uZSBGb3IgQWxsJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwoKJmx0OyZsdDtpZiAkZXA0ID09IHRydWUmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0b2RvX2J1dHRvbiAmcXVvdDthc3NldHMvaW1nL2FjaGlldmVtZW50cy9hY2g4LndlYnAmcXVvdDsgJnF1b3Q7RXBpc29kZSA0IC0gSSBDYW4gRmVlbCBJdCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKCiZsdDsmbHQ7aWYgJHBoaWxsaXBzX3Rhc3RlID09IHRydWUmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0b2RvX2J1dHRvbiAmcXVvdDthc3NldHMvaW1nL2FjaGlldmVtZW50cy9hY2g3LndlYnAmcXVvdDsgJnF1b3Q7Tm8gSGFyZCBGZWVsaW5ncyZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKCgombHQ7ZGl2IGNsYXNzPSZxdW90O2FjaGlldmVtZW50c190aWxlJnF1b3Q7Jmd0O1BlbmRpbmc6Jmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7aWYgJGVwMSA9PSBmYWxzZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RvZG9fYnV0dG9uICZxdW90O2Fzc2V0cy9pbWcvbG9jay53ZWJwJnF1b3Q7ICZxdW90O0VwaXNvZGUgMSAtIEZhciBGcm9tIEhvbWUmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7aWYgJG5hb21pX29mZmVyID09IGZhbHNlJmd0OyZndDsKICAgICZsdDsmbHQ7dG9kb19idXR0b24gJnF1b3Q7YXNzZXRzL2ltZy9sb2NrLndlYnAmcXVvdDsgJnF1b3Q7QSBEYW5nZXJvdXMgQWxseT8mcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7aWYgJGVwMiA9PSBmYWxzZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RvZG9fYnV0dG9uICZxdW90O2Fzc2V0cy9pbWcvbG9jay53ZWJwJnF1b3Q7ICZxdW90O0VwaXNvZGUgMiAtIE5vIExvb2tpbmcgQmFjayZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKJmx0OyZsdDtpZiAkSmVubmFBY2hpdmVtZW50ID09IGZhbHNlJmd0OyZndDsKJmx0OyZsdDt0b2RvX2J1dHRvbiAmcXVvdDthc3NldHMvaW1nL2xvY2sud2VicCZxdW90OyAmcXVvdDtBbiBPbGQgRnJpZW5kJnF1b3Q7Jmd0OyZndDsKJmx0OyZsdDsvaWYmZ3Q7Jmd0OwoKJmx0OyZsdDtpZiAkaGFpbGV5X3ViID09IGZhbHNlJmd0OyZndDsKICAgICZsdDsmbHQ7dG9kb19idXR0b24gJnF1b3Q7YXNzZXRzL2ltZy9sb2NrLndlYnAmcXVvdDsgJnF1b3Q7QSBIZWxwaW5nIEhhbmQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CgombHQ7Jmx0O2lmICRlcDMgPT0gZmFsc2UmZ3Q7Jmd0OwogICAgJmx0OyZsdDt0b2RvX2J1dHRvbiAmcXVvdDthc3NldHMvaW1nL2xvY2sud2VicCZxdW90OyAmcXVvdDtFcGlzb2RlIDMgLSBPbmUgRm9yIEFsbCZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7L2lmJmd0OyZndDsKCiZsdDsmbHQ7aWYgJGVwNCA9PSBmYWxzZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RvZG9fYnV0dG9uICZxdW90O2Fzc2V0cy9pbWcvbG9jay53ZWJwJnF1b3Q7ICZxdW90O0VwaXNvZGUgNCAtIEkgQ2FuIEZlZWwgSXQmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CgombHQ7Jmx0O2lmICRwaGlsbGlwc190YXN0ZSA9PSBmYWxzZSZndDsmZ3Q7CiAgICAmbHQ7Jmx0O3RvZG9fYnV0dG9uICZxdW90O2Fzc2V0cy9pbWcvbG9jay53ZWJwJnF1b3Q7ICZxdW90O05vIEhhcmQgRmVlbGluZ3MmcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CgoKCgombHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwombHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1ODMiIG5hbWU9InRvZG9fYnV0dG9uIiB0YWdzPSIiIHBvc2l0aW9uPSIzNTAsNzM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsmbHQ7Jmx0O3dpZGdldCAmcXVvdDt0b2RvX2J1dHRvbiZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3RvZG9fYnV0dG9uJnF1b3Q7Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7dG9kb19pY29uJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7aW1nIEBzcmM9JiMzOTskYXJnc1swXSYjMzk7LyZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3RvZG9fdGV4dCZxdW90OyZndDsKICAgICAgICAgICAgJGFyZ3NbMV0KICAgICAgICAmbHQ7L2RpdiZndDsKICAgICZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy93aWRnZXQmZ3Q7Jmd0OyZsdDsmbHQ7L25vYnImZ3Q7Jmd0OzwvdHctcGFzc2FnZWRhdGE+PHR3LXBhc3NhZ2VkYXRhIHBpZD0iNTg0IiBuYW1lPSJOb3RlcyIgdGFncz0ibm90ZXMgbm90aG91ciIgcG9zaXRpb249IjQ3NSw3MzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2hlYWRlciAmcXVvdDtOb3RlcyZxdW90OyAmcXVvdDsmcXVvdDsgJnF1b3Q7aG9tZSZxdW90OyB0cnVlJmd0OyZndDsKICAgICZsdDtkaXYgaWQ9JnF1b3Q7cGFkZGluZy1jb250YWluZXImcXVvdDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtub3Rlc19idXR0b24gJnF1b3Q7QW5uaWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bm90ZXNfYnV0dG9uICZxdW90O05hb21pJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O25vdGVzX2J1dHRvbiAmcXVvdDtWYW5lc3NhJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O25vdGVzX2J1dHRvbiAmcXVvdDtIYWlsZXkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bm90ZXNfYnV0dG9uICZxdW90O1BoaWxsaXBzJnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O25vdGVzX2J1dHRvbiAmcXVvdDtKZW5uYSZxdW90OyZndDsmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1ODUiIG5hbWU9Im5vdGVzX2J1dHRvbiIgdGFncz0iIiBwb3NpdGlvbj0iNjAwLDczNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7Jmx0OyZsdDt3aWRnZXQgJnF1b3Q7bm90ZXNfYnV0dG9uJnF1b3Q7Jmd0OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7bm90ZXNfYnV0dG9uJnF1b3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7bGluayAmcXVvdDsmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O3NldCBfZ28gPSAkYXJnc1swXSsmcXVvdDtfbm90ZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7Z290byBfZ28mZ3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7bm90ZXNfdGV4dCZxdW90OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtpZiAkYXJnc1swXSAhPSAmcXVvdDtQaGlsbGlwcyZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAkYXJnc1swXQogICAgICAgICAgICAgICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICBNci4gUGhpbGxpcHMKICAgICAgICAgICAgJmx0OyZsdDsvaWYmZ3Q7Jmd0OwogICAgICAgICAgICAKICAgICAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9mb2xkZXIud2VicCZxdW90Oy8mZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtub3Rlc19pY29uJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O3NldCBfYXZhdGFyID0gJnF1b3Q7YXNzZXRzL2ltZy8mcXVvdDsrJGFyZ3NbMF0rJnF1b3Q7X2F2YXRhci53ZWJwJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0O2ltZyBAc3JjPSZxdW90O19hdmF0YXImcXVvdDsvJmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L3dpZGdldCZndDsmZ3Q7Jmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1ODYiIG5hbWU9IlNldHRpbmdzIiB0YWdzPSJkYXJrIG5vdGhvdXIiIHBvc2l0aW9uPSI3MjUsNzM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtoZWFkZXIgJnF1b3Q7U2V0dGluZ3MmcXVvdDsgJnF1b3Q7JnF1b3Q7ICZxdW90O2hvbWUmcXVvdDsgdHJ1ZSZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7cGFkZGluZy1jb250YWluZXImcXVvdDsmZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3NldHRpbmdfY29udGFpbmVyJnF1b3Q7Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7aWNvbl9zZXR0aW5nJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7aW1nIHNyYz0mIzM5O2Fzc2V0cy9pbWcvc291bmQud2VicCYjMzk7LyZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3RleHRfc2V0dGluZyZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2RpdiZndDtUZXh0IFNvdW5kICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDtkaXYmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7aW5jbHVkZSAmcXVvdDtzZXR0aW5nX2J1dHRvbiZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKICAgICZsdDsmbHQ7c2V0ICRiYWNrID0gJnF1b3Q7U2V0dGluZ3MmcXVvdDsmZ3Q7Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtzZXR0aW5nX2NvbnRhaW5lciZxdW90OyZndDsKICAgICAgICAmbHQ7Jmx0O2xpbmsgJnF1b3Q7JnF1b3Q7Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O3J1biB3aW5kb3cub3BlbigmcXVvdDtodHRwczovL3d3dy5wYXRyZW9uLmNvbS9UaGVQaG9uZUd1eSZxdW90OywgJnF1b3Q7X2JsYW5rJnF1b3Q7KSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtpY29uX3NldHRpbmcmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtpbWcgc3JjPSYjMzk7YXNzZXRzL2ltZy9wcmVtaXVtLTEud2VicCYjMzk7LyZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3RleHRfc2V0dGluZyZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2RpdiZndDtQcmVtaXVtIE1vZGUmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICZsdDsvZGl2Jmd0OwoKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7c2V0dGluZ19jb250YWluZXImcXVvdDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICZxdW90OyZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgIHNldHVwLnRvZ2dsZUZ1bGxTY3JlZW4oKTsKICAgICAgICAgICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2ljb25fc2V0dGluZyZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2ltZyBzcmM9JiMzOTthc3NldHMvaW1nL2Z1bGwud2VicCYjMzk7LyZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O3RleHRfc2V0dGluZyZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2RpdiZndDtFbmFibGUgRnVsbHNjcmVlbiZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CgombHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1ODciIG5hbWU9InN3aXRjaF9idXR0b24iIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCw3MzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OyZsdDsmbHQ7d2lkZ2V0ICZxdW90O3N3aXRjaF9idXR0b24mcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtpZiAkYXJnc1swXSA9PSB0cnVlJmd0OyZndDsKICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL3Nfb24ud2VicCZxdW90OyZndDsKICAgICAgICAmbHQ7Jmx0O2Vsc2UmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL3Nfb2ZmLndlYnAmcXVvdDsmZ3Q7CiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsmbHQ7L3dpZGdldCZndDsmZ3Q7Jmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1ODgiIG5hbWU9InNldHRpbmdfYnV0dG9uIiB0YWdzPSIiIHBvc2l0aW9uPSI5NzUsNzM1MCIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7c2V0dGluZ19idXR0b24mcXVvdDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBpZD0mcXVvdDt0ZXN0YnV0dG9uJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O3N3aXRjaF9idXR0b24gJHNvdW5kJmd0OyZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7Jmx0O2J1dHRvbiAmcXVvdDsmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O3NldCAkc291bmQgPSAhJHNvdW5kJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtyZXBsYWNlICAmcXVvdDsjdGVzdGJ1dHRvbiZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3N3aXRjaF9idXR0b24gJHNvdW5kJmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvcmVwbGFjZSZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvYnV0dG9uJmd0OyZndDsKICAgICZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjU4OSIgbmFtZT0icGF0cm9uIiB0YWdzPSJkYXJrIG5vdGhvdXIiIHBvc2l0aW9uPSIxMTAwLDczNTAiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aGVhZGVyICZxdW90O1ByZW1pdW0gTW9kZSZxdW90OyAmcXVvdDsmcXVvdDsgJGJhY2sgdHJ1ZSZndDsmZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7cGFkZGluZy1jb250YWluZXImcXVvdDsmZ3Q7CiAgICAmbHQ7Jmx0O2lmICRwbWRscCBpcyBmYWxzZSZndDsmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtwcmVtaXVtX2NvbnRhaW5lciZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9sb2dvLndlYnAmcXVvdDsvJmd0OwogICAgICAgICAgICAmbHQ7YSB0YXJnZXQ9JnF1b3Q7X2JsYW5rJnF1b3Q7IHJlbD0mcXVvdDtub29wZW5lciBub3JlZmVycmVyJnF1b3Q7IGhyZWY9JnF1b3Q7aHR0cHM6Ly93d3cucGF0cmVvbi5jb20vVGhlUGhvbmVHdXkmcXVvdDsmZ3Q7Jmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9wYXRyZW9uLndlYnAmcXVvdDsmZ3Q7Jmx0Oy9hJmd0OwogICAgICAgICAgICAmbHQ7ZGl2Jmd0O0VudGVyIHlvdXIgUGF0cmVvbiBjb2RlIGJlbGxvdyB0byB1bmxvY2sgYWxsIHByZW1pdW0gY29udGVudDombHQ7L2RpdiZndDsKICAgICAgICAgICAgJmx0OyZsdDt0ZXh0Ym94ICZxdW90OyRhZnFsb3AmcXVvdDsgJnF1b3Q7JnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICAgICAgICAgW1tVbmxvY2t8cGF0cm9uVGVzdF1dCiAgICAgICAgICAgIAogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsmbHQ7ZWxzZSZndDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7cHJlbWl1bV9jb250YWluZXImcXVvdDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9sb2dvLndlYnAmcXVvdDsvJmd0OwogICAgICAgICAgICAgICAgJmx0O2RpdiBzdHlsZT0mcXVvdDttYXJnaW4tdG9wOiAxMnB4OyZxdW90OyZndDtUaGUgcHJlbWl1bSBtb2RlIGlzIG5vdyBhY3RpdmF0ZWQsIHRoYW5rIHlvdSBzbyBtdWNoIGZvciB5b3VyIHN1cHBvcnQsIHRoaXMgZ2FtZSB3b3VsZG7igJl0IGJlIHBvc3NpYmxlIHdpdGhvdXQgeW91ciBoZWxwLiZsdDsvZGl2Jmd0OwogICAgICAgICAgICAmbHQ7L2RpdiZndDsgCiAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjU5MCIgbmFtZT0icGF0cm9uVGVzdCIgdGFncz0iZGFyayBub3Rob3VyIiBwb3NpdGlvbj0iMTIyNSw3MzUwIiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OwombHQ7Jmx0O2hlYWRlciAmcXVvdDtQcmVtaXVtIE1vZGUmcXVvdDsgJnF1b3Q7JnF1b3Q7ICZxdW90O1NldHRpbmdzJnF1b3Q7IHRydWUmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O3BhZGRpbmctY29udGFpbmVyJnF1b3Q7Jmd0OwombHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICBzZXR1cC5wYXRyb24oU3RhdGUudmFyaWFibGVzLmFmcWxvcCk7CiZsdDsmbHQ7L3NjcmlwdCZndDsmZ3Q7CgombHQ7Jmx0O2lmIF9wYXRyZW9uQ2hlY2smZ3Q7Jmd0OwogICAgJmx0OyZsdDtnb3RvICZxdW90O3BhdHJvbl91bmxvY2smcXVvdDsmZ3Q7Jmd0OwogICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0O2dvdG8gJnF1b3Q7cGF0cm9uX2xvY2smcXVvdDsmZ3Q7Jmd0OwombHQ7Jmx0Oy9pZiZndDsmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjU5MSIgbmFtZT0icGF0cm9uX3VubG9jayIgdGFncz0iZGFyayBub3Rob3VyIiBwb3NpdGlvbj0iMTAwLDc0NzUiIHNpemU9IjEwMCwxMDAiPiZsdDsmbHQ7bm9iciZndDsmZ3Q7CiZsdDsmbHQ7aGVhZGVyICZxdW90O1ByZW1pdW0gTW9kZSZxdW90OyAmcXVvdDsmcXVvdDsgJnF1b3Q7aG9tZSZxdW90OyB0cnVlJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDtwYWRkaW5nLWNvbnRhaW5lciZxdW90OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7cHJlbWl1bV9jb250YWluZXImcXVvdDsmZ3Q7CiAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9sb2dvLndlYnAmcXVvdDsvJmd0OwogICAgICAgICZsdDtkaXYgc3R5bGU9JnF1b3Q7bWFyZ2luLXRvcDogMTJweDsmcXVvdDsmZ3Q7VGhlIHByZW1pdW0gbW9kZSBpcyBub3cgYWN0aXZhdGVkLCB0aGFuayB5b3Ugc28gbXVjaCBmb3IgeW91ciBzdXBwb3J0LCB0aGlzIGdhbWUgd291bGRu4oCZdCBiZSBwb3NzaWJsZSB3aXRob3V0IHlvdXIgaGVscC4mbHQ7L2RpdiZndDsKICAgICZsdDsvZGl2Jmd0OwombHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1OTIiIG5hbWU9InBhdHJvbl9sb2NrIiB0YWdzPSJkYXJrIG5vdGhvdXIiIHBvc2l0aW9uPSIyMjUsNzQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtoZWFkZXIgJnF1b3Q7UHJlbWl1bSBNb2RlJnF1b3Q7ICZxdW90OyZxdW90OyAkYmFjayB0cnVlJmd0OyZndDsKJmx0O2RpdiBpZD0mcXVvdDtwYWRkaW5nLWNvbnRhaW5lciZxdW90OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7cHJlbWl1bV9jb250YWluZXImcXVvdDsmZ3Q7CiAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9sb2dvLndlYnAmcXVvdDsvJmd0OwogICAgICAgICZsdDtkaXYmZ3Q7Jmx0O2gyJmd0O0luY29ycmVjdCBjb2RlJmx0Oy9oMiZndDsmbHQ7L2RpdiZndDsKICAgICZsdDsvZGl2Jmd0OwombHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1OTMiIG5hbWU9InBob3RvIiB0YWdzPSJkYXJrIG5vdGhvdXIiIHBvc2l0aW9uPSIzNTAsNzQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtoZWFkZXIgJnF1b3Q7UGhvdG9zJnF1b3Q7ICZxdW90OyZxdW90OyAmcXVvdDtob21lJnF1b3Q7IHRydWUmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O3BhZGRpbmctY29udGFpbmVyJnF1b3Q7Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtwaG90b3NfY29udGFpbmVyJnF1b3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7Zm9yIF9pIHJhbmdlICRwaG90b3MmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O21lc3NhZ2VfaW1nIF9pJmd0OyZndDsKICAgICAgICAmbHQ7Jmx0Oy9mb3ImZ3Q7Jmd0OwogICAgJmx0Oy9kaXYmZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7Jmx0Oy9ub2JyJmd0OyZndDs8L3R3LXBhc3NhZ2VkYXRhPjx0dy1wYXNzYWdlZGF0YSBwaWQ9IjU5NCIgbmFtZT0iU3lzdGVtIiB0YWdzPSJkYXJrIG5vdGhvdXIiIHBvc2l0aW9uPSI0NzUsNzQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtoZWFkZXIgJnF1b3Q7U3lzdGVtJnF1b3Q7ICZxdW90OyZxdW90OyAmcXVvdDtob21lJnF1b3Q7IHRydWUmZ3Q7Jmd0OwombHQ7Jmx0O3NldCBfbmV4dCA9ICRmcmVlQ2FwKzEmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O3BhZGRpbmctY29udGFpbmVyJnF1b3Q7Jmd0OwogICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9sb2dvLndlYnAmcXVvdDsmZ3Q7CiAgICAmbHQ7Jmx0O3BhZGRpbmcmZ3Q7Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtwYW5lbF9iYWNrJnF1b3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7aWYgJHBtZGxwID09IGZhbHNlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDtkaXYmZ3Q7Jmx0O2gyJmd0O0VwaXNvZGUgJGZyZWVDYXAgJmx0O3NwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IzY2Njtmb250LXNpemU6IDFyZW07JnF1b3Q7Jmd0OyZsdDsvc3BhbiZndDsmbHQ7L2gyJmd0OyZsdDsvZGl2Jmd0OwogICAgICAgICAgICAgICAgJmx0O2RpdiBzdHlsZT0mcXVvdDtjb2xvcjojZjg2NzU0O21hcmdpbi10b3A6IDEycHg7JnF1b3Q7Jmd0O0VwaXNvZGUgX25leHQgbm93IGF2YWlsYWJsZSBmb3Igc3Vic2NyaWJlcnMgb24gUGF0cmVvbi4mbHQ7L2RpdiZndDsKICAgICAgICAgICAgJmx0OyZsdDtlbHNlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDtkaXYmZ3Q7Jmx0O2gyJmd0O0VwaXNvZGUgX25leHQgJmx0O3NwYW4gc3R5bGU9JnF1b3Q7Y29sb3I6IzY2Njtmb250LXNpemU6IDFyZW07JnF1b3Q7Jmd0OyZsdDsvc3BhbiZndDsmbHQ7L2gyJmd0OyZsdDsvZGl2Jmd0OwogICAgICAgICAgICAgICAgICAmbHQ7ZGl2IHN0eWxlPSZxdW90O2NvbG9yOiNmODY3NTQ7bWFyZ2luLXRvcDogMTJweDsmcXVvdDsmZ3Q7WW91IGFyZSBwbGF5aW5nIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGUgZ2FtZS4mbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7Jmx0Oy9pZiZndDsmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2xpbmsmcXVvdDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICZxdW90OyZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7cnVuIHdpbmRvdy5vcGVuKCZxdW90O2h0dHBzOi8vd3d3LnBhdHJlb24uY29tL1RoZVBob25lR3V5JnF1b3Q7LCAmcXVvdDtfYmxhbmsmcXVvdDspJmd0OyZndDsgICAgICAgIAogICAgICAgICZsdDsmbHQ7L2xpbmsmZ3Q7Jmd0OwogICAgICAgICZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvcGF0cmVvbjIud2VicCZxdW90OyZndDsKICAgICZsdDsvZGl2Jmd0OwombHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1OTUiIG5hbWU9Ikhvcm9zY29wZSIgdGFncz0iaG9yb3Njb3BlIG5vdGhvdXIiIHBvc2l0aW9uPSI2MDAsNzQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtoZWFkZXIgJnF1b3Q7SG9yb3Njb3BlJnF1b3Q7ICZxdW90OyZxdW90OyAmcXVvdDtob21lJnF1b3Q7IHRydWUmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O3BhZGRpbmctY29udGFpbmVyJnF1b3Q7Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtob3Jvc2NvcGVfY29udGFpbmVyJnF1b3Q7Jmd0OwogICAgICAgICZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvbG9nby53ZWJwJnF1b3Q7Jmd0OwogICAgICAgICZsdDsmbHQ7cGFkZGluZyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDtwcmludCAkaG9yb3Njb3BlLnJhbmRvbSgpJmd0OyZndDsKICAgICZsdDsvZGl2Jmd0OwombHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1OTYiIG5hbWU9IkNsb2NrIiB0YWdzPSJkYXJrIGNsb2NrIG5vdGhvdXIiIHBvc2l0aW9uPSI3MjUsNzQ3NSIgc2l6ZT0iMTAwLDEwMCI+Jmx0OyZsdDtub2JyJmd0OyZndDsKJmx0OyZsdDtzZXQgJGJhY2sgPSAmcXVvdDtDbG9jayZxdW90OyZndDsmZ3Q7CiZsdDsmbHQ7aGVhZGVyICZxdW90O0Nsb2NrJnF1b3Q7ICZxdW90OyZxdW90OyAmcXVvdDtob21lJnF1b3Q7IHRydWUmZ3Q7Jmd0OwombHQ7ZGl2IGlkPSZxdW90O3BhZGRpbmctY29udGFpbmVyJnF1b3Q7Jmd0OwogICAgJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOiBjZW50ZXI7JnF1b3Q7Jmd0O0hlcmUgeW91IGNhbiBsb2FkIGFueSBjaGFwdGVyIGF2YWlsYWJsZSBpbiB0aGUgY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBnYW1lLiZsdDsvZGl2Jmd0OwogICAgJmx0OyZsdDtwYWRkaW5nJmd0OyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7Y2xvY2tfcGFuZWwmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7Y2xvY2tfaW1nJnF1b3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lcDEud2VicCZxdW90OyZndDsKICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7Y2xvY2tfdGV4dCZxdW90OyZndDsKICAgICAgICAgICAgICAgICZsdDtoMyZndDtFcGlzb2RlIDEmbHQ7L2gzJmd0OwogICAgICAgICAgICAgICAgJmx0O2RpdiBzdHlsZT0mcXVvdDttYXJnaW4tdG9wOiA1cHg7JnF1b3Q7IGNsYXNzPSZxdW90O2dyZXkmcXVvdDsmZ3Q7RmFyIEZyb20gSG9tZSZsdDsvZGl2Jmd0OwogICAgICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtjbG9ja19pY29uJnF1b3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9QbGF5LndlYnAmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2xpbmsgJnF1b3Q7JnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICBzdGF0ZS5yZXN0YXJ0KCk7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0Oy9zY3JpcHQmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICZsdDsvZGl2Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtjbG9ja19wYW5lbCZxdW90OyZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2Nsb2NrX2ltZyZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lcDIud2VicCZxdW90OyZndDsKICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2Nsb2NrX3RleHQmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtoMyZndDtFcGlzb2RlIDImbHQ7L2gzJmd0OwogICAgICAgICAgICAgJmx0O2RpdiBzdHlsZT0mcXVvdDttYXJnaW4tdG9wOiA1cHg7JnF1b3Q7IGNsYXNzPSZxdW90O2dyZXkmcXVvdDsmZ3Q7QXJlIHlvdSBzdXJlPyZsdDsvZGl2Jmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7Y2xvY2tfaWNvbiZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9QbGF5LndlYnAmcXVvdDsmZ3Q7CiAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgJmx0OyZsdDtsaW5rICZxdW90OyZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJGhvdXIgPSAmcXVvdDsxMzoyMSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJGVuZE9mQ29udGVudCA9IGZhbHNlJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkY2FwID0gMiZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0ID0gdHJ1ZSAmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlID0gJnF1b3Q7SGFpbGV5RXAyXzEmcXVvdDsgJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2xhc3QgPSAmcXVvdDskbmFtZSwgaXQmIzM5O3MgbWUgYWdhaW4uIEhvdyYjMzk7cyBldmVyeXRoaW5nIGdvaW5nPyZxdW90OyAmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkID0gZmFsc2UgJmd0OyZndDsKCiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0TG9nID0gJGNhcDJIYWlsZXkmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nID0gJGNhcDJBbm5pZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cgPSAkY2FwMlBoaWxsaXBzJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdExvZyA9ICRjYXAyTmFvbWkmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cgPSAkY2FwMlZhbmVzc2EmZ3Q7Jmd0OwoKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzFfMSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgPSAmcXVvdDtIYWlsZXlFcDJfMSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRTdGF0ZSA9ICZxdW90O05hb21pU3RhcnQxXzEzYiZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRTdGF0ZSA9ICZxdW90O1BoaWxsaXBzU3RhcnQxXzYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRTdGF0ZSA9ICZxdW90O1ZhbmVzc2FJbnRybzFfOSZxdW90OyZndDsmZ3Q7CgogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gZmFsc2UgJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdCA9IGZhbHNlICZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXQgPSBmYWxzZSAmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXQgPSBmYWxzZSAmZ3Q7Jmd0OwoKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfdmlzaWJsZSA9IHRydWUgJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfdmlzaWJsZSA9IHRydWUgJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV92aXNpYmxlID0gdHJ1ZSAmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfdmlzaWJsZSA9IHRydWUgJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfbGFzdCA9ICZxdW90O1VuZGVyc3Rvb2QmcXVvdDsgJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfbGFzdCA9ICZxdW90O0nigJltIGRvbmUgdGFsa2luZyB0byB5b3UmcXVvdDsgJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0ID0gJnF1b3Q7WW91IHRvbywgJG5hbWUmcXVvdDsgJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgbG92ZSB5b3UgbW9yZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3Zpc2libGUgPSB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NjcmlwdCZndDsmZ3Q7CiAgICAgICAgICAgICAgICAgICAgICAgIHNldHVwLnRvYXN0KCZxdW90O0hhaWxleSZxdW90OywmcXVvdDtJdCYjMzk7cyBtZSBhZ2Fpbi4gSG93JiMzOTtzIGV2ZXJ5dGhpbmcgZ29pbmc/JnF1b3Q7LCBTdGF0ZS52YXJpYWJsZXMuaG91cik7CiAgICAgICAgICAgICAgICAgICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICAmbHQ7Jmx0O2dvdG8gJnF1b3Q7aG9tZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7Y2xvY2tfcGFuZWwmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7Y2xvY2tfaW1nJnF1b3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lcDMud2VicCZxdW90OyZndDsKICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7Y2xvY2tfdGV4dCZxdW90OyZndDsKICAgICAgICAgICAgICAgICZsdDtoMyZndDtFcGlzb2RlIDMmbHQ7L2gzJmd0OwogICAgICAgICAgICAgICAgJmx0O2RpdiBzdHlsZT0mcXVvdDttYXJnaW4tdG9wOiA1cHg7JnF1b3Q7IGNsYXNzPSZxdW90O2dyZXkmcXVvdDsmZ3Q7T25lIGZvciBhbGwmbHQ7L2RpdiZndDsKICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7Y2xvY2tfaWNvbiZxdW90OyZndDsKICAgICAgICAgICAgICAgICZsdDtpbWcgc3JjPSZxdW90O2Fzc2V0cy9pbWcvUGxheS53ZWJwJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAgICAgJmx0OyZsdDtsaW5rICZxdW90OyZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkaG91ciA9ICZxdW90OzIzOjIxJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRlbmRPZkNvbnRlbnQgPSBmYWxzZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkY2FwID0gMyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXQgPSB0cnVlICZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRTdGF0ZSA9ICZxdW90O0hhaWxleUNoYXRFcDNfMSZxdW90OyAmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9sYXN0ID0gJnF1b3Q7SGV5ICRuYW1lLCBhcmUgeW91IHN0aWxsIHRoZXJlPyZxdW90OyAmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9wYXVzZWQgPSBmYWxzZSAmZ3Q7Jmd0OwoKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdExvZyA9ICRjYXAzSGFpbGV5Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0TG9nID0gJGNhcDNBbm5pZSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdExvZyA9ICRjYXAyUGhpbGxpcHMmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRMb2cgPSAkY2FwMk5hb21pJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXRMb2cgPSAkY2FwMlZhbmVzc2EmZ3Q7Jmd0OwoKCiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdFN0YXRlID0gJnF1b3Q7QW5uaWVDaGF0RXAyXzNfMTgmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV9jaGF0U3RhdGUgPSAmcXVvdDtIYWlsZXlDaGF0RXAzXzEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRTdGF0ZSA9ICZxdW90O0FubmllQ2hhdEVwMl8yXzEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRTdGF0ZSA9ICZxdW90O1BoaWxsaXBzU3RhcnQxXzYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfY2hhdFN0YXRlID0gJnF1b3Q7VmFuZXNzYUludHJvMV85JnF1b3Q7Jmd0OyZndDsKCiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdCA9IGZhbHNlICZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfY2hhdCA9IGZhbHNlICZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkTmFvbWlfY2hhdCA9IGZhbHNlICZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0ID0gZmFsc2UgJmd0OyZndDsKCiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkUGhpbGxpcHNfdmlzaWJsZSA9IHRydWUgJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV92aXNpYmxlID0gdHJ1ZSAmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfdmlzaWJsZSA9IHRydWUgJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfdmlzaWJsZSA9IHRydWUgJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19sYXN0ID0gJnF1b3Q7VW5kZXJzdG9vZCZxdW90OyAmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2xhc3QgPSAmcXVvdDtJ4oCZbSBkb25lIHRhbGtpbmcgdG8geW91JnF1b3Q7ICZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9sYXN0ID0gJnF1b3Q7WW91IHRvbywgJG5hbWUmcXVvdDsgJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9sYXN0ID0gJnF1b3Q7R29vZCBuaWdodCwgaG9uZXkmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJEplbm5hX3Zpc2libGUgPSB0cnVlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgICAgICBzZXR1cC50b2FzdCgmcXVvdDtIYWlsZXkmcXVvdDssJnF1b3Q7SGV5LCBhcmUgeW91IHN0aWxsIHRoZXJlPyZxdW90OywgU3RhdGUudmFyaWFibGVzLmhvdXIpOwogICAgICAgICAgICAgICAgJmx0OyZsdDsvc2NyaXB0Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7Z290byAmcXVvdDtob21lJnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgJmx0OyZsdDsvbGluayZndDsmZ3Q7CiAgICAmbHQ7L2RpdiZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7Y2xvY2tfcGFuZWwmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7Y2xvY2tfaW1nJnF1b3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9lcDQud2VicCZxdW90OyZndDsKICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7Y2xvY2tfdGV4dCZxdW90OyZndDsKICAgICAgICAgICAgICAgICZsdDtoMyZndDtFcGlzb2RlIDQmbHQ7L2gzJmd0OwogICAgICAgICAgICAgICAgJmx0O2RpdiBzdHlsZT0mcXVvdDttYXJnaW4tdG9wOiA1cHg7JnF1b3Q7IGNsYXNzPSZxdW90O2dyZXkmcXVvdDsmZ3Q7SSBjYW4gZmVlbCBpdCZsdDsvZGl2Jmd0OwogICAgICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtjbG9ja19pY29uJnF1b3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0O2ltZyBzcmM9JnF1b3Q7YXNzZXRzL2ltZy9QbGF5LndlYnAmcXVvdDsmZ3Q7CiAgICAgICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0O2xpbmsgJnF1b3Q7JnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRob3VyID0gJnF1b3Q7MTA6MDYmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJGVuZE9mQ29udGVudCA9IGZhbHNlJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRjYXAgPSA0Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdCA9IHRydWUgJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlID0gJnF1b3Q7SGFpbGV5Q2hhdEVwNF8xXzEmcXVvdDsgJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfbGFzdCA9ICZxdW90O1NvdW5kcyBnb29kICRuYW1lLCB0aGFua3MgYWdhaW4mcXVvdDsgJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfcGF1c2VkID0gZmFsc2UgJmd0OyZndDsKCiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkSGFpbGV5X2NoYXRMb2cgPSAkY2FwNEhhaWxleSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfY2hhdExvZyA9ICRjYXA0QW5uaWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRMb2cgPSAkY2FwNFBoaWxsaXBzJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0TG9nID0gJGNhcDJOYW9taSZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0TG9nID0gJGNhcDJWYW5lc3NhJmd0OyZndDsKCgogICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJEFubmllX2NoYXRTdGF0ZSA9ICZxdW90O0FubmllQ2hhdEVwM18yXzE0JnF1b3Q7Jmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRIYWlsZXlfY2hhdFN0YXRlID0gJnF1b3Q7SGFpbGV5Q2hhdEVwNF8xXzEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX2NoYXRTdGF0ZSA9ICZxdW90O0FubmllQ2hhdEVwMl8yXzEmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2NoYXRTdGF0ZSA9ICZxdW90O1BoaWxsaXBzQ2hhdEVwM183YiZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV9jaGF0U3RhdGUgPSAmcXVvdDtWYW5lc3NhSW50cm8xXzkmcXVvdDsmZ3Q7Jmd0OwoKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRBbm5pZV9jaGF0ID0gZmFsc2UgJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc19jaGF0ID0gZmFsc2UgJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9jaGF0ID0gZmFsc2UgJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRWYW5lc3NhX2NoYXQgPSBmYWxzZSAmZ3Q7Jmd0OwoKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICRQaGlsbGlwc192aXNpYmxlID0gdHJ1ZSAmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJE5hb21pX3Zpc2libGUgPSB0cnVlICZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkVmFuZXNzYV92aXNpYmxlID0gdHJ1ZSAmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJEhhaWxleV92aXNpYmxlID0gdHJ1ZSAmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJFBoaWxsaXBzX2xhc3QgPSAmcXVvdDtVbmRlcnN0b29kLiBJ4oCZbGwgc2VlIHdoYXQgSSBjYW4gZG8mcXVvdDsgJmd0OyZndDsKICAgICAgICAgICAgICAgICZsdDsmbHQ7c2V0ICROYW9taV9sYXN0ID0gJnF1b3Q7SeKAmW0gZG9uZSB0YWxraW5nIHRvIHlvdSZxdW90OyAmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtzZXQgJFZhbmVzc2FfbGFzdCA9ICZxdW90O1lvdSB0b28sICRuYW1lJnF1b3Q7ICZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkQW5uaWVfbGFzdCA9ICZxdW90O0kgbG92ZSB5b3UgbW9yZSZxdW90OyZndDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7Jmx0O3NldCAkSmVubmFfdmlzaWJsZSA9IHRydWUmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtnb3RvICZxdW90O2hvbWUmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICZsdDsvZGl2Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtjbG9ja19wYW5lbCZxdW90OyZndDsKICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtjbG9ja19pbWcmcXVvdDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL2VwNS53ZWJwJnF1b3Q7Jmd0OwogICAgICAgICAgICAmbHQ7L2RpdiZndDsKICAgICAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtjbG9ja190ZXh0JnF1b3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0O2gzJmd0O0VwaXNvZGUgNSZsdDsvaDMmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7ZGl2IHN0eWxlPSZxdW90O21hcmdpbi10b3A6IDVweDsmcXVvdDsgY2xhc3M9JnF1b3Q7b3JhbmdlJnF1b3Q7Jmd0O0F2YWlsYWJsZSBmb3IgUGF0cmVvbiBzdXBwb3J0ZXJzJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O2Nsb2NrX2ljb24mcXVvdDsmZ3Q7CiAgICAgICAgICAgICAgICAmbHQ7aW1nIHNyYz0mcXVvdDthc3NldHMvaW1nL1BsYXkud2VicCZxdW90OyZndDsKICAgICAgICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICAgICAgICZsdDsmbHQ7bGluayAmcXVvdDsmcXVvdDsmZ3Q7Jmd0OwogICAgICAgICAgICAgICAgJmx0OyZsdDtydW4gd2luZG93Lm9wZW4oJnF1b3Q7aHR0cHM6Ly93d3cucGF0cmVvbi5jb20vVGhlUGhvbmVHdXkmcXVvdDssICZxdW90O19ibGFuayZxdW90OykmZ3Q7Jmd0OwogICAgICAgICAgICAmbHQ7Jmx0Oy9saW5rJmd0OyZndDsKICAgICZsdDsvZGl2Jmd0OwombHQ7L2RpdiZndDsKJmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT48dHctcGFzc2FnZWRhdGEgcGlkPSI1OTciIG5hbWU9InBhZGRpbmciIHRhZ3M9IiIgcG9zaXRpb249Ijg1MCw3NDc1IiBzaXplPSIxMDAsMTAwIj4mbHQ7Jmx0O25vYnImZ3Q7Jmd0OyZsdDsmbHQ7d2lkZ2V0ICZxdW90O3BhZGRpbmcmcXVvdDsmZ3Q7Jmd0OwombHQ7IS0tcmVnaW9uIHBhZGRpbmcgLS0mZ3Q7CiZsdDtkaXYgaWQ9JnF1b3Q7cGFkZGluZy1ib3gmcXVvdDsmZ3Q7Jmx0Oy9kaXYmZ3Q7CiZsdDsmbHQ7L3dpZGdldCZndDsmZ3Q7Jmx0OyZsdDsvbm9iciZndDsmZ3Q7PC90dy1wYXNzYWdlZGF0YT4=