[bt_bb_section layout=”boxed_900″ lazy_load=”yes” allow_content_outside=”no” show_video_on_mobile=”” top_spacing=”large” bottom_spacing=”medium” full_screen=”” vertical_align=”top” color_scheme=”dark-skin” background_color=”rgb(255,255,255)” background_image=”7321″ background_overlay=”dark_solid” top_section_coverage_image=”” bottom_section_coverage_image=”” parallax=”” parallax_offset=”” background_video_yt=”” yt_video_settings=”” background_video_mp4=”” background_video_ogg=”” background_video_webm=”” responsive=”” publish_datetime=”” expiry_datetime=”” animation=”no_animation” el_id=”” el_class=”” el_style=””][bt_bb_row][bt_bb_column order=”0″ lazy_load=”yes” width=”1/1″ width_lg=”1/1″ width_md=”1/1″ width_sm=”1/1″ width_xs=”1/1″][bt_bb_separator top_spacing=”medium” bottom_spacing=”normal” text=”” border_style=”none” border_color=”none” border_width=”” opacity=”” responsive=”” publish_datetime=”” expiry_datetime=”” animation=”no_animation” el_id=”” el_class=”” el_style=””][/bt_bb_separator][bt_bb_headline font_subset=”latin,latin-ext” superheadline=”” headline=”Keynote Speaker Request” subheadline=”” html_tag=”h1″ size=”huge” align=”center” dash=”none” color_scheme=”” color=”” supertitle_position=”” supertitle_style=”” subtitle_style=”” font=”inherit” font_size=”” font_weight=”” supertitle_font_weight=”” subtitle_font_weight=”” letter_spacing=”” supertitle_letter_spacing=”” subtitle_letter_spacing=”” url=”” target=”_self” responsive=”” publish_datetime=”” expiry_datetime=”” animation=”no_animation” el_id=”” el_class=”” el_style=””][/bt_bb_headline][/bt_bb_column][/bt_bb_row][/bt_bb_section][bt_bb_section layout=”boxed_900″ lazy_load=”yes” allow_content_outside=”no” show_video_on_mobile=”” top_spacing=”” bottom_spacing=”” full_screen=”” vertical_align=”top” color_scheme=”” background_color=”rgb(255,255,255)” background_image=”” background_overlay=”” top_section_coverage_image=”” bottom_section_coverage_image=”” parallax=”” parallax_offset=”” background_video_yt=”” yt_video_settings=”” background_video_mp4=”” background_video_ogg=”” background_video_webm=”” responsive=”” publish_datetime=”” expiry_datetime=”” animation=”no_animation” el_id=”” el_class=”” el_style=””][bt_bb_row][bt_bb_column order=”0″ lazy_load=”yes” width=”1/1″ width_lg=”1/1″ width_md=”1/1″ width_sm=”1/1″ width_xs=”1/1″][bt_bb_raw_content raw_content=”PHN0eWxlPgogI19mb3JtXzY0XyB7IGZvbnQtc2l6ZToxNHB4OyBsaW5lLWhlaWdodDoxLjY7IGZvbnQtZmFtaWx5OmFyaWFsLCBoZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IG1hcmdpbjowOyB9CiAjX2Zvcm1fNjRfICogeyBvdXRsaW5lOjA7IH0KIC5fZm9ybV9oaWRlIHsgZGlzcGxheTpub25lOyB2aXNpYmlsaXR5OmhpZGRlbjsgfQogLl9mb3JtX3Nob3cgeyBkaXNwbGF5OmJsb2NrOyB2aXNpYmlsaXR5OnZpc2libGU7IH0KICNfZm9ybV82NF8uX2Zvcm0tdG9wIHsgdG9wOjA7IH0KICNfZm9ybV82NF8uX2Zvcm0tYm90dG9tIHsgYm90dG9tOjA7IH0KICNfZm9ybV82NF8uX2Zvcm0tbGVmdCB7IGxlZnQ6MDsgfQogI19mb3JtXzY0Xy5fZm9ybS1yaWdodCB7IHJpZ2h0OjA7IH0KICNfZm9ybV82NF8gaW5wdXRbdHlwZT0idGV4dCJdLCNfZm9ybV82NF8gaW5wdXRbdHlwZT0idGVsIl0sI19mb3JtXzY0XyBpbnB1dFt0eXBlPSJkYXRlIl0sI19mb3JtXzY0XyB0ZXh0YXJlYSB7IHBhZGRpbmc6NnB4OyBoZWlnaHQ6YXV0bzsgYm9yZGVyOiM5Nzk3OTcgMXB4IHNvbGlkOyBib3JkZXItcmFkaXVzOjRweDsgY29sb3I6IzAwMCAhaW1wb3J0YW50OyBmb250LXNpemU6MTRweDsgLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IC1tb3otYm94LXNpemluZzpib3JkZXItYm94OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0KICNfZm9ybV82NF8gdGV4dGFyZWEgeyByZXNpemU6bm9uZTsgfQogI19mb3JtXzY0XyAuX3N1Ym1pdCB7IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyBjdXJzb3I6cG9pbnRlcjsgZm9udC1mYW1pbHk6YXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZToxNHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgYmFja2dyb3VuZDojZDQwYzBjICFpbXBvcnRhbnQ7IGJvcmRlcjowICFpbXBvcnRhbnQ7IC1tb3otYm9yZGVyLXJhZGl1czo0cHggIWltcG9ydGFudDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjRweCAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjRweCAhaW1wb3J0YW50OyBjb2xvcjojZmZmICFpbXBvcnRhbnQ7IHBhZGRpbmc6MTBweCAhaW1wb3J0YW50OyB9CiAjX2Zvcm1fNjRfIC5fY2xvc2UtaWNvbiB7IGN1cnNvcjpwb2ludGVyOyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnaHR0cHM6Ly9kMjI2YWo0YW8xdDYxcS5jbG91ZGZyb250Lm5ldC9lc2ZreWpoMXVfZm9ybXMtY2xvc2UtZGFyay5wbmcnKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXNpemU6MTQuMnB4IDE0LjJweDsgcG9zaXRpb246YWJzb2x1dGU7IGRpc3BsYXk6YmxvY2s7IHRvcDoxMXB4OyByaWdodDo5cHg7IG92ZXJmbG93OmhpZGRlbjsgd2lkdGg6MTYuMnB4OyBoZWlnaHQ6MTYuMnB4OyB9CiAjX2Zvcm1fNjRfIC5fY2xvc2UtaWNvbjpiZWZvcmUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfQogI19mb3JtXzY0XyAuX2Zvcm0tYm9keSB7IG1hcmdpbi1ib3R0b206MzBweDsgfQogI19mb3JtXzY0XyAuX2Zvcm0taW1hZ2UtbGVmdCB7IHdpZHRoOjE1MHB4OyBmbG9hdDpsZWZ0OyB9CiAjX2Zvcm1fNjRfIC5fZm9ybS1jb250ZW50LXJpZ2h0IHsgbWFyZ2luLWxlZnQ6MTY0cHg7IH0KICNfZm9ybV82NF8gLl9mb3JtLWJyYW5kaW5nIHsgY29sb3I6I2ZmZjsgZm9udC1zaXplOjEwcHg7IGNsZWFyOmJvdGg7IHRleHQtYWxpZ246bGVmdDsgbWFyZ2luLXRvcDozMHB4OyBmb250LXdlaWdodDoxMDA7IH0KICNfZm9ybV82NF8gLl9mb3JtLWJyYW5kaW5nIC5fbG9nbyB7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEzMHB4OyBoZWlnaHQ6MTRweDsgbWFyZ2luLXRvcDo2cHg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCdodHRwczovL2QyMjZhajRhbzF0NjFxLmNsb3VkZnJvbnQubmV0L2hoOXVqcWd2NV9hY2xvZ29fbGkucG5nJyk7IGJhY2tncm91bmQtc2l6ZToxMzBweCBhdXRvOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IH0KICNfZm9ybV82NF8gLmZvcm0tc3Itb25seSB7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoxcHg7IGhlaWdodDoxcHg7IHBhZGRpbmc6MDsgbWFyZ2luOi0xcHg7IG92ZXJmbG93OmhpZGRlbjsgY2xpcDpyZWN0KDAsIDAsIDAsIDApOyBib3JkZXI6MDsgfQogI19mb3JtXzY0XyAuX2Zvcm0tbGFiZWwsI19mb3JtXzY0XyAuX2Zvcm1fZWxlbWVudCAuX2Zvcm0tbGFiZWwgeyBmb250LXdlaWdodDpib2xkOyBtYXJnaW4tYm90dG9tOjVweDsgZGlzcGxheTpibG9jazsgfQogI19mb3JtXzY0Xy5fZGFyayAuX2Zvcm0tYnJhbmRpbmcgeyBjb2xvcjojMzMzOyB9CiAjX2Zvcm1fNjRfLl9kYXJrIC5fZm9ybS1icmFuZGluZyAuX2xvZ28geyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnaHR0cHM6Ly9kMjI2YWo0YW8xdDYxcS5jbG91ZGZyb250Lm5ldC9qZnRxMmM4c19hY2xvZ29fZGsucG5nJyk7IH0KICNfZm9ybV82NF8gLl9mb3JtX2VsZW1lbnQgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luLWJvdHRvbToxMHB4OyBmb250LXNpemU6MDsgbWF4LXdpZHRoOjEwMCU7IH0KICNfZm9ybV82NF8gLl9mb3JtX2VsZW1lbnQgKiB7IGZvbnQtc2l6ZToxNHB4OyB9CiAjX2Zvcm1fNjRfIC5fZm9ybV9lbGVtZW50Ll9jbGVhciB7IGNsZWFyOmJvdGg7IHdpZHRoOjEwMCU7IGZsb2F0Om5vbmU7IH0KICNfZm9ybV82NF8gLl9mb3JtX2VsZW1lbnQuX2NsZWFyOmFmdGVyIHsgY2xlYXI6bGVmdDsgfQogI19mb3JtXzY0XyAuX2Zvcm1fZWxlbWVudCBpbnB1dFt0eXBlPSJ0ZXh0Il0sI19mb3JtXzY0XyAuX2Zvcm1fZWxlbWVudCBpbnB1dFt0eXBlPSJkYXRlIl0sI19mb3JtXzY0XyAuX2Zvcm1fZWxlbWVudCBzZWxlY3QsI19mb3JtXzY0XyAuX2Zvcm1fZWxlbWVudCB0ZXh0YXJlYTpub3QoLmctcmVjYXB0Y2hhLXJlc3BvbnNlKSB7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IC13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94OyAtbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm94LXNpemluZzpib3JkZXItYm94OyBmb250LWZhbWlseTppbmhlcml0OyB9CiAjX2Zvcm1fNjRfIC5fZmllbGQtd3JhcHBlciB7IHBvc2l0aW9uOnJlbGF0aXZlOyB9CiAjX2Zvcm1fNjRfIC5faW5saW5lLXN0eWxlIHsgZmxvYXQ6bGVmdDsgfQogI19mb3JtXzY0XyAuX2lubGluZS1zdHlsZSBpbnB1dFt0eXBlPSJ0ZXh0Il0geyB3aWR0aDoxNTBweDsgfQogI19mb3JtXzY0XyAuX2lubGluZS1zdHlsZTpub3QoLl9jbGVhcikgKyAuX2lubGluZS1zdHlsZTpub3QoLl9jbGVhcikgeyBtYXJnaW4tbGVmdDoyMHB4OyB9CiAjX2Zvcm1fNjRfIC5fZm9ybV9lbGVtZW50IGltZy5fZm9ybS1pbWFnZSB7IG1heC13aWR0aDoxMDAlOyB9CiAjX2Zvcm1fNjRfIC5fZm9ybV9lbGVtZW50IC5fZm9ybS1maWVsZHNldCB7IGJvcmRlcjowOyBwYWRkaW5nOjAuMDFlbSAwIDAgMDsgbWFyZ2luOjA7IG1pbi13aWR0aDowOyB9CiAjX2Zvcm1fNjRfIC5fY2xlYXItZWxlbWVudCB7IGNsZWFyOmxlZnQ7IH0KICNfZm9ybV82NF8gLl9mdWxsX3dpZHRoIHsgd2lkdGg6MTAwJTsgfQogI19mb3JtXzY0XyAuX2Zvcm1fZnVsbF9maWVsZCB7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IG1hcmdpbi1ib3R0b206MTBweDsgfQogI19mb3JtXzY0XyBpbnB1dFt0eXBlPSJ0ZXh0Il0uX2hhc19lcnJvciwjX2Zvcm1fNjRfIHRleHRhcmVhLl9oYXNfZXJyb3IgeyBib3JkZXI6I2YzN2M3YiAxcHggc29saWQ7IH0KICNfZm9ybV82NF8gaW5wdXRbdHlwZT0iY2hlY2tib3giXS5faGFzX2Vycm9yIHsgb3V0bGluZTojZjM3YzdiIDFweCBzb2xpZDsgfQogI19mb3JtXzY0XyAuX2Vycm9yIHsgZGlzcGxheTpibG9jazsgcG9zaXRpb246YWJzb2x1dGU7IGZvbnQtc2l6ZToxNHB4OyB6LWluZGV4OjEwMDAwMDAxOyB9CiAjX2Zvcm1fNjRfIC5fZXJyb3IuX2Fib3ZlIHsgcGFkZGluZy1ib3R0b206NHB4OyBib3R0b206MzlweDsgcmlnaHQ6MDsgfQogI19mb3JtXzY0XyAuX2Vycm9yLl9iZWxvdyB7IHBhZGRpbmctdG9wOjRweDsgdG9wOjEwMCU7IHJpZ2h0OjA7IH0KICNfZm9ybV82NF8gLl9lcnJvci5fYWJvdmUgLl9lcnJvci1hcnJvdyB7IGJvdHRvbTowOyByaWdodDoxNXB4OyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6NXB4IHNvbGlkICNmMzdjN2I7IH0KICNfZm9ybV82NF8gLl9lcnJvci5fYmVsb3cgLl9lcnJvci1hcnJvdyB7IHRvcDowOyByaWdodDoxNXB4OyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1ib3R0b206NXB4IHNvbGlkICNmMzdjN2I7IH0KICNfZm9ybV82NF8gLl9lcnJvci1pbm5lciB7IHBhZGRpbmc6OHB4IDEycHg7IGJhY2tncm91bmQtY29sb3I6I2YzN2M3YjsgZm9udC1zaXplOjE0cHg7IGZvbnQtZmFtaWx5OmFyaWFsLCBzYW5zLXNlcmlmOyBjb2xvcjojZmZmOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7IC1tb3otYm9yZGVyLXJhZGl1czo0cHg7IGJvcmRlci1yYWRpdXM6NHB4OyB9CiAjX2Zvcm1fNjRfIC5fZXJyb3ItaW5uZXIuX2Zvcm1fZXJyb3IgeyBtYXJnaW4tYm90dG9tOjVweDsgdGV4dC1hbGlnbjpsZWZ0OyB9CiAjX2Zvcm1fNjRfIC5fYnV0dG9uLXdyYXBwZXIgLl9lcnJvci1pbm5lci5fZm9ybV9lcnJvciB7IHBvc2l0aW9uOnN0YXRpYzsgfQogI19mb3JtXzY0XyAuX2Vycm9yLWlubmVyLl9ub19hcnJvdyB7IG1hcmdpbi1ib3R0b206MTBweDsgfQogI19mb3JtXzY0XyAuX2Vycm9yLWFycm93IHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjA7IGhlaWdodDowOyB9CiAjX2Zvcm1fNjRfIC5fZXJyb3ItaHRtbCB7IG1hcmdpbi1ib3R0b206MTBweDsgfQogLnBpa2Etc2luZ2xlIHsgei1pbmRleDoxMDAwMDAwMSAhaW1wb3J0YW50OyB9CiAjX2Zvcm1fNjRfIGlucHV0W3R5cGU9InRleHQiXS5kYXRldGltZV9kYXRlIHsgd2lkdGg6NjklOyBkaXNwbGF5OmlubGluZTsgfQogI19mb3JtXzY0XyBzZWxlY3QuZGF0ZXRpbWVfdGltZSB7IHdpZHRoOjI5JTsgZGlzcGxheTppbmxpbmU7IGhlaWdodDozMnB4OyB9CiAjX2Zvcm1fNjRfIGlucHV0W3R5cGU9ImRhdGUiXS5kYXRldGltZV9kYXRlIHsgd2lkdGg6NjklOyBkaXNwbGF5OmlubGluZS1mbGV4OyB9CiAjX2Zvcm1fNjRfIGlucHV0W3R5cGU9InRpbWUiXS5kYXRldGltZV90aW1lIHsgd2lkdGg6MjklOyBkaXNwbGF5OmlubGluZS1mbGV4OyB9CiBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOjMyMHB4KSBhbmQgKG1heC13aWR0aDo2NjdweCkgeyA6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgZGlzcGxheTpub25lOyB9CiAjX2Zvcm1fNjRfIHsgbWFyZ2luOjA7IHdpZHRoOjEwMCU7IG1pbi13aWR0aDoxMDAlOyBtYXgtd2lkdGg6MTAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyB9CiAjX2Zvcm1fNjRfICogeyAtd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgLW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgZm9udC1zaXplOjFlbTsgfQogI19mb3JtXzY0XyAuX2Zvcm0tY29udGVudCB7IG1hcmdpbjowOyB3aWR0aDoxMDAlOyB9CiAjX2Zvcm1fNjRfIC5fZm9ybS1pbm5lciB7IGRpc3BsYXk6YmxvY2s7IG1pbi13aWR0aDoxMDAlOyB9CiAjX2Zvcm1fNjRfIC5fZm9ybS10aXRsZSwjX2Zvcm1fNjRfIC5faW5saW5lLXN0eWxlIHsgbWFyZ2luLXRvcDowOyBtYXJnaW4tcmlnaHQ6MDsgbWFyZ2luLWxlZnQ6MDsgfQogI19mb3JtXzY0XyAuX2Zvcm0tdGl0bGUgeyBmb250LXNpemU6MS4yZW07IH0KICNfZm9ybV82NF8gLl9mb3JtX2VsZW1lbnQgeyBtYXJnaW46MCAwIDIwcHg7IHBhZGRpbmc6MDsgd2lkdGg6MTAwJTsgfQogI19mb3JtXzY0XyAuX2Zvcm0tZWxlbWVudCwjX2Zvcm1fNjRfIC5faW5saW5lLXN0eWxlLCNfZm9ybV82NF8gaW5wdXRbdHlwZT0idGV4dCJdLCNfZm9ybV82NF8gbGFiZWwsI19mb3JtXzY0XyBwLCNfZm9ybV82NF8gdGV4dGFyZWE6bm90KC5nLXJlY2FwdGNoYS1yZXNwb25zZSkgeyBmbG9hdDpub25lOyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyB9CiAjX2Zvcm1fNjRfIC5fcm93Ll9jaGVja2JveC1yYWRpbyBsYWJlbCB7IGRpc3BsYXk6aW5saW5lOyB9CiAjX2Zvcm1fNjRfIC5fcm93LCNfZm9ybV82NF8gcCwjX2Zvcm1fNjRfIGxhYmVsIHsgbWFyZ2luLWJvdHRvbTowLjdlbTsgd2lkdGg6MTAwJTsgfQogI19mb3JtXzY0XyAuX3JvdyBpbnB1dFt0eXBlPSJjaGVja2JveCJdLCNfZm9ybV82NF8gLl9yb3cgaW5wdXRbdHlwZT0icmFkaW8iXSB7IG1hcmdpbjowICFpbXBvcnRhbnQ7IHZlcnRpY2FsLWFsaWduOm1pZGRsZSAhaW1wb3J0YW50OyB9CiAjX2Zvcm1fNjRfIC5fcm93IGlucHV0W3R5cGU9ImNoZWNrYm94Il0gKyBzcGFuIGxhYmVsIHsgZGlzcGxheTppbmxpbmU7IH0KICNfZm9ybV82NF8gLl9yb3cgc3BhbiBsYWJlbCB7IG1hcmdpbjowICFpbXBvcnRhbnQ7IHdpZHRoOmluaXRpYWwgIWltcG9ydGFudDsgdmVydGljYWwtYWxpZ246bWlkZGxlICFpbXBvcnRhbnQ7IH0KICNfZm9ybV82NF8gLl9mb3JtLWltYWdlIHsgbWF4LXdpZHRoOjEwMCU7IGhlaWdodDphdXRvICFpbXBvcnRhbnQ7IH0KICNfZm9ybV82NF8gaW5wdXRbdHlwZT0idGV4dCJdIHsgcGFkZGluZy1sZWZ0OjEwcHg7IHBhZGRpbmctcmlnaHQ6MTBweDsgZm9udC1zaXplOjE2cHg7IGxpbmUtaGVpZ2h0OjEuM2VtOyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgfQogI19mb3JtXzY0XyBpbnB1dFt0eXBlPSJyYWRpbyJdLCNfZm9ybV82NF8gaW5wdXRbdHlwZT0iY2hlY2tib3giXSB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB3aWR0aDoxLjNlbTsgaGVpZ2h0OjEuM2VtOyBmb250LXNpemU6MWVtOyBtYXJnaW46MCAwLjNlbSAwIDA7IHZlcnRpY2FsLWFsaWduOmJhc2VsaW5lOyB9CiAjX2Zvcm1fNjRfIGJ1dHRvblt0eXBlPSJzdWJtaXQiXSB7IHBhZGRpbmc6MjBweDsgZm9udC1zaXplOjEuNWVtOyB9CiAjX2Zvcm1fNjRfIC5faW5saW5lLXN0eWxlIHsgbWFyZ2luOjIwcHggMCAwICFpbXBvcnRhbnQ7IH0KIH0KICNfZm9ybV82NF8geyBwb3NpdGlvbjpyZWxhdGl2ZTsgdGV4dC1hbGlnbjpsZWZ0OyBtYXJnaW46MjVweCBhdXRvIDA7IHBhZGRpbmc6MjBweDsgLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IC1tb3otYm94LXNpemluZzpib3JkZXItYm94OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7ICp6b29tOjE7IGJhY2tncm91bmQ6I2ZmZiAhaW1wb3J0YW50OyBib3JkZXI6MHB4IHNvbGlkICNiMGIwYjAgIWltcG9ydGFudDsgbWF4LXdpZHRoOjEyMDBweDsgLW1vei1ib3JkZXItcmFkaXVzOjBweCAhaW1wb3J0YW50OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6MHB4ICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6MHB4ICFpbXBvcnRhbnQ7IGNvbG9yOiMwMDAgIWltcG9ydGFudDsgfQogI19mb3JtXzY0Xy5faW5saW5lLWZvcm0sI19mb3JtXzY0Xy5faW5saW5lLWZvcm0gLl9mb3JtLWNvbnRlbnQsI19mb3JtXzY0Xy5faW5saW5lLWZvcm0gaW5wdXQsI19mb3JtXzY0Xy5faW5saW5lLWZvcm0gLl9zdWJtaXQgeyBmb250LWZhbWlseToiUm9ib3RvIiwgc2Fucy1zZXJpZjsgfQogI19mb3JtXzY0XyAuX2Zvcm0tdGl0bGUgeyBmb250LXNpemU6MjJweDsgbGluZS1oZWlnaHQ6MjJweDsgZm9udC13ZWlnaHQ6NjAwOyBtYXJnaW4tYm90dG9tOjA7IH0KICNfZm9ybV82NF86YmVmb3JlLCNfZm9ybV82NF86YWZ0ZXIgeyBjb250ZW50OiIgIjsgZGlzcGxheTp0YWJsZTsgfQogI19mb3JtXzY0XzphZnRlciB7IGNsZWFyOmJvdGg7IH0KICNfZm9ybV82NF8uX2lubGluZS1zdHlsZSB7IHdpZHRoOmF1dG87IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9CiAjX2Zvcm1fNjRfLl9pbmxpbmUtc3R5bGUgaW5wdXRbdHlwZT0idGV4dCJdLCNfZm9ybV82NF8uX2lubGluZS1zdHlsZSBpbnB1dFt0eXBlPSJkYXRlIl0geyBwYWRkaW5nOjEwcHggMTJweDsgfQogI19mb3JtXzY0Xy5faW5saW5lLXN0eWxlIGJ1dHRvbi5faW5saW5lLXN0eWxlIHsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDoyN3B4OyB9CiAjX2Zvcm1fNjRfLl9pbmxpbmUtc3R5bGUgcCB7IG1hcmdpbjowOyB9CiAjX2Zvcm1fNjRfLl9pbmxpbmUtc3R5bGUgLl9idXR0b24td3JhcHBlciB7IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXJnaW46MjdweCAxMi41cHggMCAyMHB4OyB9CiAjX2Zvcm1fNjRfIC5fZm9ybS10aGFuay15b3UgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgbGVmdDowOyByaWdodDowOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjE4cHg7IH0KIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6MzIwcHgpIGFuZCAobWF4LXdpZHRoOjY2N3B4KSB7ICNfZm9ybV82NF8uX2lubGluZS1mb3JtLl9pbmxpbmUtc3R5bGUgLl9pbmxpbmUtc3R5bGUuX2J1dHRvbi13cmFwcGVyIHsgbWFyZ2luLXRvcDoyMHB4ICFpbXBvcnRhbnQ7IG1hcmdpbi1sZWZ0OjAgIWltcG9ydGFudDsgfQogfQogI19mb3JtXzY0XyAuaXRpLml0aS0tYWxsb3ctZHJvcGRvd24uaXRpLS1zZXBhcmF0ZS1kaWFsLWNvZGUgeyB3aWR0aDoxMDAlOyB9CiAjX2Zvcm1fNjRfIC5pdGkgaW5wdXQgeyB3aWR0aDoxMDAlOyBoZWlnaHQ6MzJweDsgYm9yZGVyOiM5Nzk3OTcgMXB4IHNvbGlkOyBib3JkZXItcmFkaXVzOjRweDsgfQogI19mb3JtXzY0XyAuaXRpLS1zZXBhcmF0ZS1kaWFsLWNvZGUgLml0aV9fc2VsZWN0ZWQtZmxhZyB7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgYm9yZGVyLXJhZGl1czo0cHg7IH0KICNfZm9ybV82NF8gLml0aS0tc2VwYXJhdGUtZGlhbC1jb2RlIC5pdGlfX3NlbGVjdGVkLWZsYWc6aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwgMCwgMCwgMC4wNSk7IH0KICNfZm9ybV82NF8gLml0aV9fY291bnRyeS1saXN0IHsgYm9yZGVyLXJhZGl1czo0cHg7IG1hcmdpbi10b3A6NHB4OyBtaW4td2lkdGg6NDYwcHg7IH0KICNfZm9ybV82NF8gLml0aV9fY291bnRyeS1saXN0LS1kcm9wdXAgeyBtYXJnaW4tYm90dG9tOjRweDsgfQogI19mb3JtXzY0XyAucGhvbmUtZXJyb3ItaGlkZGVuIHsgZGlzcGxheTpub25lOyB9CiAjX2Zvcm1fNjRfIC5waG9uZS1lcnJvciB7IGNvbG9yOiNlNDBlNDk7IH0KICNfZm9ybV82NF8gLnBob25lLWlucHV0LWVycm9yIHsgYm9yZGVyOjFweCBzb2xpZCAjZTQwZTQ5ICFpbXBvcnRhbnQ7IH0KPC9zdHlsZT4KPGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1MYXRvJmZhbWlseT1Nb250c2VycmF0JmZhbWlseT1Sb2JvdG8mZmFtaWx5PUlCTStQbGV4K1NhbnM6d2dodEA0MDA7NjAwJmRpc3BsYXk9c3dhcCIgcmVsPSJzdHlsZXNoZWV0Ij4KICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJodHRwczovL3VucGtnLmNvbS9pbnRsLXRlbC1pbnB1dEAxNy4wLjE4L2J1aWxkL2Nzcy9pbnRsVGVsSW5wdXQubWluLmNzcyIvPgogICAgPGZvcm0gbWV0aG9kPSJQT1NUIiBhY3Rpb249Imh0dHBzOi8vZWxldmF0ZWR0YWxlbnRjb25zdWx0aW5nLmFjdGl2ZWhvc3RlZC5jb20vcHJvYy5waHAiIGlkPSJfZm9ybV82NF8iIGNsYXNzPSJfZm9ybSBfZm9ybV82NCBfaW5saW5lLWZvcm0gIF9kYXJrIiBub3ZhbGlkYXRlPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1IiB2YWx1ZT0iNjQiIC8+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImYiIHZhbHVlPSI2NCIgLz4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icyIgLz4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYyIgdmFsdWU9IjAiIC8+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im0iIHZhbHVlPSIwIiAvPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3QiIHZhbHVlPSJzdWIiIC8+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InYiIHZhbHVlPSIyIiAvPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJvciIgdmFsdWU9ImFiMDdiZDM3ZjY3YWRlMjI4N2EyMWY1NDE0YjM0OWMyIiAvPgogICAgICA8ZGl2IGNsYXNzPSJfZm9ybS1jb250ZW50Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJfZm9ybV9lbGVtZW50IF94MzA1MjkwNTMgX2Z1bGxfd2lkdGggX2NsZWFyIiA+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJfZm9ybS10aXRsZSI+CiAgICAgICAgICAgIFdhbnQgdG8gaGVhciBtb3JlPyBMZXQncyBjaGF0IQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iX2Zvcm1fZWxlbWVudCBfeDgzNTM3NjMzIF9mdWxsX3dpZHRoICIgPgogICAgICAgICAgPGxhYmVsIGZvcj0iZW1haWwiIGNsYXNzPSJfZm9ybS1sYWJlbCI+CiAgICAgICAgICAgIEVtYWlsKgogICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgIDxkaXYgY2xhc3M9Il9maWVsZC13cmFwcGVyIj4KICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJlbWFpbCIgbmFtZT0iZW1haWwiIHBsYWNlaG9sZGVyPSJUeXBlIHlvdXIgZW1haWwiIHJlcXVpcmVkLz4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Il9mb3JtX2VsZW1lbnQgX3g4OTMyNzk0MiBfZnVsbF93aWR0aCAiID4KICAgICAgICAgIDxsYWJlbCBmb3I9ImZpcnN0bmFtZSIgY2xhc3M9Il9mb3JtLWxhYmVsIj4KICAgICAgICAgICAgRmlyc3QgTmFtZSoKICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJfZmllbGQtd3JhcHBlciI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZmlyc3RuYW1lIiBuYW1lPSJmaXJzdG5hbWUiIHBsYWNlaG9sZGVyPSJUeXBlIHlvdXIgZmlyc3QgbmFtZSIgcmVxdWlyZWQvPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iX2Zvcm1fZWxlbWVudCBfeDcwMzc5MzE5IF9mdWxsX3dpZHRoICIgPgogICAgICAgICAgPGxhYmVsIGZvcj0ibGFzdG5hbWUiIGNsYXNzPSJfZm9ybS1sYWJlbCI+CiAgICAgICAgICAgIExhc3QgTmFtZQogICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgIDxkaXYgY2xhc3M9Il9maWVsZC13cmFwcGVyIj4KICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJsYXN0bmFtZSIgbmFtZT0ibGFzdG5hbWUiIHBsYWNlaG9sZGVyPSJUeXBlIHlvdXIgbGFzdCBuYW1lIiAvPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iX2Zvcm1fZWxlbWVudCBfeDUwNTIyOTAwIF9mdWxsX3dpZHRoICIgPgogICAgICAgICAgPGxhYmVsIGZvcj0iZmllbGRbMV0iIGNsYXNzPSJfZm9ybS1sYWJlbCI+CiAgICAgICAgICAgIENvbXBhbnkgTmFtZSoKICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJfZmllbGQtd3JhcHBlciI+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZmllbGRbMV0iIG5hbWU9ImZpZWxkWzFdIiB2YWx1ZT0iIiBwbGFjZWhvbGRlcj0iIiByZXF1aXJlZC8+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJfZm9ybV9lbGVtZW50IF94ODA2NTQxMjEgX2Z1bGxfd2lkdGggIiA+CiAgICAgICAgICA8bGFiZWwgZm9yPSJmaWVsZFsxMl0iIGNsYXNzPSJfZm9ybS1sYWJlbCI+CiAgICAgICAgICAgIENvbXBhbnkgU2l6ZQogICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgIDxkaXYgY2xhc3M9Il9maWVsZC13cmFwcGVyIj4KICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJmaWVsZFsxMl0iIG5hbWU9ImZpZWxkWzEyXSIgdmFsdWU9IiIgcGxhY2Vob2xkZXI9IiIgLz4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Il9mb3JtX2VsZW1lbnQgX3g1NTYwOTU2NyBfZnVsbF93aWR0aCAiID4KICAgICAgICAgIDxsYWJlbCBmb3I9ImZpZWxkWzU3XSIgY2xhc3M9Il9mb3JtLWxhYmVsIj4KICAgICAgICAgICAgRGVzaXJlZCBFdmVudCBEYXRlKgogICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgIDxkaXYgY2xhc3M9Il9maWVsZC13cmFwcGVyIj4KICAgICAgICAgICAgPGlucHV0IHR5cGU9ImRhdGUiIGNsYXNzPSJkYXRlX2ZpZWxkIiBpZD0iZmllbGRbNTddIiBuYW1lPSJmaWVsZFs1N10iIHZhbHVlPSIiIHBsYWNlaG9sZGVyPSIiIHJlcXVpcmVkIC8+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJfZm9ybV9lbGVtZW50IF94MTUyODE3NDggX2Z1bGxfd2lkdGggIiA+CiAgICAgICAgICA8bGFiZWwgZm9yPSJmaWVsZFsxMTNdIiBjbGFzcz0iX2Zvcm0tbGFiZWwiPgogICAgICAgICAgICBUeXBlIG9mIEV2ZW50CiAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgPGRpdiBjbGFzcz0iX2ZpZWxkLXdyYXBwZXIiPgogICAgICAgICAgICA8c2VsZWN0IG5hbWU9ImZpZWxkWzExM10iIGlkPSJmaWVsZFsxMTNdIiA+CiAgICAgICAgICAgICAgPG9wdGlvbiBzZWxlY3RlZD4KICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJWaXJ0dWFsIiA+CiAgICAgICAgICAgICAgICBWaXJ0dWFsCiAgICAgICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iT24tc2l0ZSIgPgogICAgICAgICAgICAgICAgT24tc2l0ZQogICAgICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNvbmZlcmVuY2UiID4KICAgICAgICAgICAgICAgIENvbmZlcmVuY2UKICAgICAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJfZm9ybV9lbGVtZW50IF94OTAyMzg1NTAgX2Z1bGxfd2lkdGggIiA+CiAgICAgICAgICA8ZmllbGRzZXQgY2xhc3M9Il9mb3JtLWZpZWxkc2V0Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iX3JvdyI+CiAgICAgICAgICAgICAgPGxlZ2VuZCBmb3I9ImZpZWxkWzExMl1bXSIgY2xhc3M9Il9mb3JtLWxhYmVsIj4KICAgICAgICAgICAgICAgIEtleW5vdGUgVG9waWMKICAgICAgICAgICAgICA8L2xlZ2VuZD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxpbnB1dCBkYXRhLWF1dG9maWxsPSJmYWxzZSIgdHlwZT0iaGlkZGVuIiBpZD0iZmllbGRbMTEyXVtdIiBuYW1lPSJmaWVsZFsxMTJdW10iIHZhbHVlPSJ+fCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Il9yb3cgX2NoZWNrYm94LXJhZGlvIj4KICAgICAgICAgICAgICA8aW5wdXQgaWQ9ImZpZWxkXzExMkN1bHR1cmUgb2YgR3JhdGl0dWRlIiB0eXBlPSJjaGVja2JveCIgbmFtZT0iZmllbGRbMTEyXVtdIiB2YWx1ZT0iQ3VsdHVyZSBvZiBHcmF0aXR1ZGUiICAgPgogICAgICAgICAgICAgIDxzcGFuPgogICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iZmllbGRfMTEyQ3VsdHVyZSBvZiBHcmF0aXR1ZGUiPgogICAgICAgICAgICAgICAgICBDdWx0dXJlIG9mIEdyYXRpdHVkZQogICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJfcm93IF9jaGVja2JveC1yYWRpbyI+CiAgICAgICAgICAgICAgPGlucHV0IGlkPSJmaWVsZF8xMTJEcml2aW5nIFN1c3RhaW5hYmxlIEFjY291bnRhYmlsaXR5IiB0eXBlPSJjaGVja2JveCIgbmFtZT0iZmllbGRbMTEyXVtdIiB2YWx1ZT0iRHJpdmluZyBTdXN0YWluYWJsZSBBY2NvdW50YWJpbGl0eSIgICA+CiAgICAgICAgICAgICAgPHNwYW4+CiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJmaWVsZF8xMTJEcml2aW5nIFN1c3RhaW5hYmxlIEFjY291bnRhYmlsaXR5Ij4KICAgICAgICAgICAgICAgICAgRHJpdmluZyBTdXN0YWluYWJsZSBBY2NvdW50YWJpbGl0eQogICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJfcm93IF9jaGVja2JveC1yYWRpbyI+CiAgICAgICAgICAgICAgPGlucHV0IGlkPSJmaWVsZF8xMTJUYWxlbnQgUGF0aHdheSBQbGFubmluZyIgdHlwZT0iY2hlY2tib3giIG5hbWU9ImZpZWxkWzExMl1bXSIgdmFsdWU9IlRhbGVudCBQYXRod2F5IFBsYW5uaW5nIiAgID4KICAgICAgICAgICAgICA8c3Bhbj4KICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9ImZpZWxkXzExMlRhbGVudCBQYXRod2F5IFBsYW5uaW5nIj4KICAgICAgICAgICAgICAgICAgVGFsZW50IFBhdGh3YXkgUGxhbm5pbmcKICAgICAgICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iX3JvdyBfY2hlY2tib3gtcmFkaW8iPgogICAgICAgICAgICAgIDxpbnB1dCBpZD0iZmllbGRfMTEyVGhlIEdyZWF0IFJlc2lnbmF0aW9uIiB0eXBlPSJjaGVja2JveCIgbmFtZT0iZmllbGRbMTEyXVtdIiB2YWx1ZT0iVGhlIEdyZWF0IFJlc2lnbmF0aW9uIiAgID4KICAgICAgICAgICAgICA8c3Bhbj4KICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9ImZpZWxkXzExMlRoZSBHcmVhdCBSZXNpZ25hdGlvbiI+CiAgICAgICAgICAgICAgICAgIFRoZSBHcmVhdCBSZXNpZ25hdGlvbgogICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJfcm93IF9jaGVja2JveC1yYWRpbyI+CiAgICAgICAgICAgICAgPGlucHV0IGlkPSJmaWVsZF8xMTJDYXJlZXIgR29hbCBTZXR0aW5nIiB0eXBlPSJjaGVja2JveCIgbmFtZT0iZmllbGRbMTEyXVtdIiB2YWx1ZT0iQ2FyZWVyIEdvYWwgU2V0dGluZyIgICA+CiAgICAgICAgICAgICAgPHNwYW4+CiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPSJmaWVsZF8xMTJDYXJlZXIgR29hbCBTZXR0aW5nIj4KICAgICAgICAgICAgICAgICAgQ2FyZWVyIEdvYWwgU2V0dGluZwogICAgICAgICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9maWVsZHNldD4KICAgICAgICA8L2Rpdj48cD48L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iX2Zvcm1fZWxlbWVudCBfeDcxMTA2OTQzIF9mdWxsX3dpZHRoICIgPgogICAgICAgICAgPGxhYmVsIGZvcj0ibHMiIGNsYXNzPSJfZm9ybS1sYWJlbCI+CiAgICAgICAgICAgIFBsZWFzZSB2ZXJpZnkgeW91ciByZXF1ZXN0KgogICAgICAgICAgPC9sYWJlbD4KICAgICAgICAgIDxkaXYgY2xhc3M9ImctcmVjYXB0Y2hhIiBkYXRhLXNpdGVrZXk9IjZMY3dJdzhUQUFBQUFDUDF5c00wOEVoQ2d6ZDZxNUpBT1VSMWEwR28iPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+PHA+PC9wPgogICAgICAgIDxkaXYgY2xhc3M9Il9idXR0b24td3JhcHBlciBfZnVsbF93aWR0aCI+CiAgICAgICAgICA8YnV0dG9uIGlkPSJfZm9ybV82NF9zdWJtaXQiIGNsYXNzPSJfc3VibWl0IiB0eXBlPSJzdWJtaXQiPgogICAgICAgICAgICBTdWJtaXQgUmVxdWVzdAogICAgICAgICAgPC9idXR0b24+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iX2NsZWFyLWVsZW1lbnQiPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iX2Zvcm0tdGhhbmsteW91IiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgICAgIDwvZGl2PgogICAgPC9mb3JtPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4Kd2luZG93LmNmaWVsZHMgPSB7IjEiOiJjb21wYW55X25hbWUiLCIxMiI6ImNvbXBhbnlfc2l6ZSIsIjU3IjoiYXBwb2ludG1lbnRfZGF0ZSIsIjExMyI6InR5cGVfb2ZfZXZlbnQiLCIxMTIiOiJrZXlub3RlX3RvcGljIn07CndpbmRvdy5fc2hvd190aGFua195b3UgPSBmdW5jdGlvbihpZCwgbWVzc2FnZSwgdHJhY2tjbXBfdXJsLCBlbWFpbCkgewogIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ19mb3JtXycgKyBpZCArICdfJyksIHRoYW5rX3lvdSA9IGZvcm0ucXVlcnlTZWxlY3RvcignLl9mb3JtLXRoYW5rLXlvdScpOwogIGZvcm0ucXVlcnlTZWxlY3RvcignLl9mb3JtLWNvbnRlbnQnKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogIHRoYW5rX3lvdS5pbm5lckhUTUwgPSBtZXNzYWdlOwogIHRoYW5rX3lvdS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKICBjb25zdCB2Z29BbGlhcyA9IHR5cGVvZiB2aXNpdG9yR2xvYmFsT2JqZWN0QWxpYXMgPT09ICd1bmRlZmluZWQnID8gJ3ZnbycgOiB2aXNpdG9yR2xvYmFsT2JqZWN0QWxpYXM7CiAgdmFyIHZpc2l0b3JPYmplY3QgPSB3aW5kb3dbdmdvQWxpYXNdOwogIGlmIChlbWFpbCAmJiB0eXBlb2YgdmlzaXRvck9iamVjdCAhPT0gJ3VuZGVmaW5lZCcpIHsKICAgIHZpc2l0b3JPYmplY3QoJ3NldEVtYWlsJywgZW1haWwpOwogICAgdmlzaXRvck9iamVjdCgndXBkYXRlJyk7CiAgfSBlbHNlIGlmICh0eXBlb2YodHJhY2tjbXBfdXJsKSAhPSAndW5kZWZpbmVkJyAmJiB0cmFja2NtcF91cmwpIHsKICAgIC8vIFNpdGUgdHJhY2tpbmcgVVJMIHRvIHVzZSBhZnRlciBpbmxpbmUgZm9ybSBzdWJtaXNzaW9uLgogICAgX2xvYWRfc2NyaXB0KHRyYWNrY21wX3VybCk7CiAgfQogIGlmICh0eXBlb2Ygd2luZG93Ll9mb3JtX2NhbGxiYWNrICE9PSAndW5kZWZpbmVkJykgd2luZG93Ll9mb3JtX2NhbGxiYWNrKGlkKTsKfTsKd2luZG93Ll9zaG93X2Vycm9yID0gZnVuY3Rpb24oaWQsIG1lc3NhZ2UsIGh0bWwpIHsKICB2YXIgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdfZm9ybV8nICsgaWQgKyAnXycpLCBlcnIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSwgYnV0dG9uID0gZm9ybS5xdWVyeVNlbGVjdG9yKCdidXR0b24nKSwgb2xkX2Vycm9yID0gZm9ybS5xdWVyeVNlbGVjdG9yKCcuX2Zvcm1fZXJyb3InKTsKICBpZiAob2xkX2Vycm9yKSBvbGRfZXJyb3IucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChvbGRfZXJyb3IpOwogIGVyci5pbm5lckhUTUwgPSBtZXNzYWdlOwogIGVyci5jbGFzc05hbWUgPSAnX2Vycm9yLWlubmVyIF9mb3JtX2Vycm9yIF9ub19hcnJvdyc7CiAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICB3cmFwcGVyLmNsYXNzTmFtZSA9ICdfZm9ybS1pbm5lcic7CiAgd3JhcHBlci5hcHBlbmRDaGlsZChlcnIpOwogIGJ1dHRvbi5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh3cmFwcGVyLCBidXR0b24pOwogIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tpZF49Il9mb3JtIl1baWQkPSJfc3VibWl0Il0nKS5kaXNhYmxlZCA9IGZhbHNlOwogIGlmIChodG1sKSB7CiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICBkaXYuY2xhc3NOYW1lID0gJ19lcnJvci1odG1sJzsKICAgIGRpdi5pbm5lckhUTUwgPSBodG1sOwogICAgZXJyLmFwcGVuZENoaWxkKGRpdik7CiAgfQp9Owp3aW5kb3cuX2xvYWRfc2NyaXB0ID0gZnVuY3Rpb24odXJsLCBjYWxsYmFjaykgewogIHZhciBoZWFkID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaGVhZCcpLCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKSwgciA9IGZhbHNlOwogIHNjcmlwdC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CiAgc2NyaXB0LmNoYXJzZXQgPSAndXRmLTgnOwogIHNjcmlwdC5zcmMgPSB1cmw7CiAgaWYgKGNhbGxiYWNrKSB7CiAgICBzY3JpcHQub25sb2FkID0gc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgewogICAgICBpZiAoIXIgJiYgKCF0aGlzLnJlYWR5U3RhdGUgfHwgdGhpcy5yZWFkeVN0YXRlID09ICdjb21wbGV0ZScpKSB7CiAgICAgICAgciA9IHRydWU7CiAgICAgICAgY2FsbGJhY2soKTsKICAgICAgfQogICAgfTsKICB9CiAgaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpOwp9OwooZnVuY3Rpb24oKSB7CiAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc2VhcmNoKCJleGNsdWRlZm9ybSIpICE9PSAtMSkgcmV0dXJuIGZhbHNlOwogIHZhciBnZXRDb29raWUgPSBmdW5jdGlvbihuYW1lKSB7CiAgICB2YXIgbWF0Y2ggPSBkb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgnKF58OyApJyArIG5hbWUgKyAnPShbXjtdKyknKSk7CiAgICByZXR1cm4gbWF0Y2ggPyBtYXRjaFsyXSA6IG51bGw7CiAgfQogIHZhciBzZXRDb29raWUgPSBmdW5jdGlvbihuYW1lLCB2YWx1ZSkgewogICAgdmFyIG5vdyA9IG5ldyBEYXRlKCk7CiAgICB2YXIgdGltZSA9IG5vdy5nZXRUaW1lKCk7CiAgICB2YXIgZXhwaXJlVGltZSA9IHRpbWUgKyAxMDAwICogNjAgKiA2MCAqIDI0ICogMzY1OwogICAgbm93LnNldFRpbWUoZXhwaXJlVGltZSk7CiAgICBkb2N1bWVudC5jb29raWUgPSBuYW1lICsgJz0nICsgdmFsdWUgKyAnOyBleHBpcmVzPScgKyBub3cgKyAnO3BhdGg9LzsgU2VjdXJlOyBTYW1lU2l0ZT1MYXg7JzsvLyBjYW5ub3QgYmUgSHR0cE9ubHkKICB9CiAgICAgIHZhciBhZGRFdmVudCA9IGZ1bmN0aW9uKGVsZW1lbnQsIGV2ZW50LCBmdW5jKSB7CiAgICBpZiAoZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKSB7CiAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgZnVuYyk7CiAgICB9IGVsc2UgewogICAgICB2YXIgb2xkRnVuYyA9IGVsZW1lbnRbJ29uJyArIGV2ZW50XTsKICAgICAgZWxlbWVudFsnb24nICsgZXZlbnRdID0gZnVuY3Rpb24oKSB7CiAgICAgICAgb2xkRnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgIGZ1bmMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgfTsKICAgIH0KICB9CiAgdmFyIF9yZW1vdmVkID0gZmFsc2U7CiAgdmFyIGZvcm1fdG9fc3VibWl0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ19mb3JtXzY0XycpOwogIHZhciBhbGxJbnB1dHMgPSBmb3JtX3RvX3N1Ym1pdC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYScpLCB0b29sdGlwcyA9IFtdLCBzdWJtaXR0ZWQgPSBmYWxzZTsKCiAgdmFyIGdldFVybFBhcmFtID0gZnVuY3Rpb24obmFtZSkgewogICAgdmFyIHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7CiAgICByZXR1cm4gcGFyYW1zLmdldChuYW1lKSB8fCBmYWxzZTsKICB9OwoKICBmb3IgKHZhciBpID0gMDsgaSA8IGFsbElucHV0cy5sZW5ndGg7IGkrKykgewogICAgdmFyIHJlZ2V4U3RyID0gImZpZWxkXFxbKFxcZCspXFxdIjsKICAgIHZhciByZXN1bHRzID0gbmV3IFJlZ0V4cChyZWdleFN0cikuZXhlYyhhbGxJbnB1dHNbaV0ubmFtZSk7CiAgICBpZiAocmVzdWx0cyAhPSB1bmRlZmluZWQpIHsKICAgICAgYWxsSW5wdXRzW2ldLmRhdGFzZXQubmFtZSA9IHdpbmRvdy5jZmllbGRzW3Jlc3VsdHNbMV1dOwogICAgfSBlbHNlIHsKICAgICAgYWxsSW5wdXRzW2ldLmRhdGFzZXQubmFtZSA9IGFsbElucHV0c1tpXS5uYW1lOwogICAgfQogICAgdmFyIGZpZWxkVmFsID0gZ2V0VXJsUGFyYW0oYWxsSW5wdXRzW2ldLmRhdGFzZXQubmFtZSk7CgogICAgaWYgKGZpZWxkVmFsKSB7CiAgICAgIGlmIChhbGxJbnB1dHNbaV0uZGF0YXNldC5hdXRvZmlsbCA9PT0gImZhbHNlIikgewogICAgICAgIGNvbnRpbnVlOwogICAgICB9CiAgICAgIGlmIChhbGxJbnB1dHNbaV0udHlwZSA9PSAicmFkaW8iIHx8IGFsbElucHV0c1tpXS50eXBlID09ICJjaGVja2JveCIpIHsKICAgICAgICBpZiAoYWxsSW5wdXRzW2ldLnZhbHVlID09IGZpZWxkVmFsKSB7CiAgICAgICAgICBhbGxJbnB1dHNbaV0uY2hlY2tlZCA9IHRydWU7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGFsbElucHV0c1tpXS52YWx1ZSA9IGZpZWxkVmFsOwogICAgICB9CiAgICB9CiAgfQoKICB2YXIgcmVtb3ZlX3Rvb2x0aXBzID0gZnVuY3Rpb24oKSB7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRvb2x0aXBzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHRvb2x0aXBzW2ldLnRpcC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRvb2x0aXBzW2ldLnRpcCk7CiAgICB9CiAgICB0b29sdGlwcyA9IFtdOwogIH07CiAgdmFyIHJlbW92ZV90b29sdGlwID0gZnVuY3Rpb24oZWxlbSkgewogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b29sdGlwcy5sZW5ndGg7IGkrKykgewogICAgICBpZiAodG9vbHRpcHNbaV0uZWxlbSA9PT0gZWxlbSkgewogICAgICAgIHRvb2x0aXBzW2ldLnRpcC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRvb2x0aXBzW2ldLnRpcCk7CiAgICAgICAgdG9vbHRpcHMuc3BsaWNlKGksIDEpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgfQogIH07CiAgdmFyIGNyZWF0ZV90b29sdGlwID0gZnVuY3Rpb24oZWxlbSwgdGV4dCkgewogICAgdmFyIHRvb2x0aXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSwgYXJyb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSwgaW5uZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSwgbmV3X3Rvb2x0aXAgPSB7fTsKICAgIGlmIChlbGVtLnR5cGUgIT0gJ3JhZGlvJyAmJiBlbGVtLnR5cGUgIT0gJ2NoZWNrYm94JykgewogICAgICB0b29sdGlwLmNsYXNzTmFtZSA9ICdfZXJyb3InOwogICAgICBhcnJvdy5jbGFzc05hbWUgPSAnX2Vycm9yLWFycm93JzsKICAgICAgaW5uZXIuY2xhc3NOYW1lID0gJ19lcnJvci1pbm5lcic7CiAgICAgIGlubmVyLmlubmVySFRNTCA9IHRleHQ7CiAgICAgIHRvb2x0aXAuYXBwZW5kQ2hpbGQoYXJyb3cpOwogICAgICB0b29sdGlwLmFwcGVuZENoaWxkKGlubmVyKTsKICAgICAgZWxlbS5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHRvb2x0aXApOwogICAgfSBlbHNlIHsKICAgICAgdG9vbHRpcC5jbGFzc05hbWUgPSAnX2Vycm9yLWlubmVyIF9ub19hcnJvdyc7CiAgICAgIHRvb2x0aXAuaW5uZXJIVE1MID0gdGV4dDsKICAgICAgZWxlbS5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0b29sdGlwLCBlbGVtKTsKICAgICAgbmV3X3Rvb2x0aXAubm9fYXJyb3cgPSB0cnVlOwogICAgfQogICAgbmV3X3Rvb2x0aXAudGlwID0gdG9vbHRpcDsKICAgIG5ld190b29sdGlwLmVsZW0gPSBlbGVtOwogICAgdG9vbHRpcHMucHVzaChuZXdfdG9vbHRpcCk7CiAgICByZXR1cm4gbmV3X3Rvb2x0aXA7CiAgfTsKICB2YXIgcmVzaXplX3Rvb2x0aXAgPSBmdW5jdGlvbih0b29sdGlwKSB7CiAgICB2YXIgcmVjdCA9IHRvb2x0aXAuZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgIHZhciBkb2MgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIHNjcm9sbFBvc2l0aW9uID0gcmVjdC50b3AgLSAoKHdpbmRvdy5wYWdlWU9mZnNldCB8fCBkb2Muc2Nyb2xsVG9wKSAgLSAoZG9jLmNsaWVudFRvcCB8fCAwKSk7CiAgICBpZiAoc2Nyb2xsUG9zaXRpb24gPCA0MCkgewogICAgICB0b29sdGlwLnRpcC5jbGFzc05hbWUgPSB0b29sdGlwLnRpcC5jbGFzc05hbWUucmVwbGFjZSgvID8oX2Fib3ZlfF9iZWxvdykgPy9nLCAnJykgKyAnIF9iZWxvdyc7CiAgICB9IGVsc2UgewogICAgICB0b29sdGlwLnRpcC5jbGFzc05hbWUgPSB0b29sdGlwLnRpcC5jbGFzc05hbWUucmVwbGFjZSgvID8oX2Fib3ZlfF9iZWxvdykgPy9nLCAnJykgKyAnIF9hYm92ZSc7CiAgICB9CiAgfTsKICB2YXIgcmVzaXplX3Rvb2x0aXBzID0gZnVuY3Rpb24oKSB7CiAgICBpZiAoX3JlbW92ZWQpIHJldHVybjsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdG9vbHRpcHMubGVuZ3RoOyBpKyspIHsKICAgICAgaWYgKCF0b29sdGlwc1tpXS5ub19hcnJvdykgcmVzaXplX3Rvb2x0aXAodG9vbHRpcHNbaV0pOwogICAgfQogIH07CiAgdmFyIHZhbGlkYXRlX2ZpZWxkID0gZnVuY3Rpb24oZWxlbSwgcmVtb3ZlKSB7CiAgICB2YXIgdG9vbHRpcCA9IG51bGwsIHZhbHVlID0gZWxlbS52YWx1ZSwgbm9fZXJyb3IgPSB0cnVlOwogICAgcmVtb3ZlID8gcmVtb3ZlX3Rvb2x0aXAoZWxlbSkgOiBmYWxzZTsKICAgIGlmIChlbGVtLnR5cGUgIT0gJ2NoZWNrYm94JykgZWxlbS5jbGFzc05hbWUgPSBlbGVtLmNsYXNzTmFtZS5yZXBsYWNlKC8gP19oYXNfZXJyb3IgPy9nLCAnJyk7CiAgICBpZiAoZWxlbS5nZXRBdHRyaWJ1dGUoJ3JlcXVpcmVkJykgIT09IG51bGwpIHsKICAgICAgaWYgKGVsZW0udHlwZSA9PSAncmFkaW8nIHx8IChlbGVtLnR5cGUgPT0gJ2NoZWNrYm94JyAmJiAvYW55Ly50ZXN0KGVsZW0uY2xhc3NOYW1lKSkpIHsKICAgICAgICB2YXIgZWxlbXMgPSBmb3JtX3RvX3N1Ym1pdC5lbGVtZW50c1tlbGVtLm5hbWVdOwogICAgICAgIGlmICghKGVsZW1zIGluc3RhbmNlb2YgTm9kZUxpc3QgfHwgZWxlbXMgaW5zdGFuY2VvZiBIVE1MQ29sbGVjdGlvbikgfHwgZWxlbXMubGVuZ3RoIDw9IDEpIHsKICAgICAgICAgIG5vX2Vycm9yID0gZWxlbS5jaGVja2VkOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGlmIChlbGVtc1tpXS5jaGVja2VkKSBub19lcnJvciA9IHRydWU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICghbm9fZXJyb3IpIHsKICAgICAgICAgIHRvb2x0aXAgPSBjcmVhdGVfdG9vbHRpcChlbGVtLCAiUGxlYXNlIHNlbGVjdCBhbiBvcHRpb24uIik7CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKGVsZW0udHlwZSA9PSdjaGVja2JveCcpIHsKICAgICAgICB2YXIgZWxlbXMgPSBmb3JtX3RvX3N1Ym1pdC5lbGVtZW50c1tlbGVtLm5hbWVdLCBmb3VuZCA9IGZhbHNlLCBlcnIgPSBbXTsKICAgICAgICBub19lcnJvciA9IHRydWU7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgaWYgKGVsZW1zW2ldLmdldEF0dHJpYnV0ZSgncmVxdWlyZWQnKSA9PT0gbnVsbCkgY29udGludWU7CiAgICAgICAgICBpZiAoIWZvdW5kICYmIGVsZW1zW2ldICE9PSBlbGVtKSByZXR1cm4gdHJ1ZTsKICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKICAgICAgICAgIGVsZW1zW2ldLmNsYXNzTmFtZSA9IGVsZW1zW2ldLmNsYXNzTmFtZS5yZXBsYWNlKC8gP19oYXNfZXJyb3IgPy9nLCAnJyk7CiAgICAgICAgICBpZiAoIWVsZW1zW2ldLmNoZWNrZWQpIHsKICAgICAgICAgICAgbm9fZXJyb3IgPSBmYWxzZTsKICAgICAgICAgICAgZWxlbXNbaV0uY2xhc3NOYW1lID0gZWxlbXNbaV0uY2xhc3NOYW1lICsgJyBfaGFzX2Vycm9yJzsKICAgICAgICAgICAgZXJyLnB1c2goIkNoZWNraW5nICVzIGlzIHJlcXVpcmVkIi5yZXBsYWNlKCIlcyIsIGVsZW1zW2ldLnZhbHVlKSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICghbm9fZXJyb3IpIHsKICAgICAgICAgIHRvb2x0aXAgPSBjcmVhdGVfdG9vbHRpcChlbGVtLCBlcnIuam9pbignPGJyLz4nKSk7CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKGVsZW0udGFnTmFtZSA9PSAnU0VMRUNUJykgewogICAgICAgIHZhciBzZWxlY3RlZCA9IHRydWU7CiAgICAgICAgaWYgKGVsZW0ubXVsdGlwbGUpIHsKICAgICAgICAgIHNlbGVjdGVkID0gZmFsc2U7CiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW0ub3B0aW9ucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAoZWxlbS5vcHRpb25zW2ldLnNlbGVjdGVkKSB7CiAgICAgICAgICAgICAgc2VsZWN0ZWQgPSB0cnVlOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbS5vcHRpb25zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGlmIChlbGVtLm9wdGlvbnNbaV0uc2VsZWN0ZWQgJiYgKCFlbGVtLm9wdGlvbnNbaV0udmFsdWUgfHwgKGVsZW0ub3B0aW9uc1tpXS52YWx1ZS5tYXRjaCgvXG4vZykpKSkgewogICAgICAgICAgICAgIHNlbGVjdGVkID0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCFzZWxlY3RlZCkgewogICAgICAgICAgZWxlbS5jbGFzc05hbWUgPSBlbGVtLmNsYXNzTmFtZSArICcgX2hhc19lcnJvcic7CiAgICAgICAgICBub19lcnJvciA9IGZhbHNlOwogICAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sICJQbGVhc2Ugc2VsZWN0IGFuIG9wdGlvbi4iKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gJycpIHsKICAgICAgICBlbGVtLmNsYXNzTmFtZSA9IGVsZW0uY2xhc3NOYW1lICsgJyBfaGFzX2Vycm9yJzsKICAgICAgICBub19lcnJvciA9IGZhbHNlOwogICAgICAgIHRvb2x0aXAgPSBjcmVhdGVfdG9vbHRpcChlbGVtLCAiVGhpcyBmaWVsZCBpcyByZXF1aXJlZC4iKTsKICAgICAgfQogICAgfQogICAgaWYgKG5vX2Vycm9yICYmIChlbGVtLmlkID09ICdmaWVsZFtdJyB8fCBlbGVtLmlkID09ICdjYVsxMV1bdl0nKSkgewogICAgICBpZiAoZWxlbS5jbGFzc05hbWUuaW5jbHVkZXMoJ3Bob25lLWlucHV0LWVycm9yJykpIHsKICAgICAgICBlbGVtLmNsYXNzTmFtZSA9IGVsZW0uY2xhc3NOYW1lICsgJyBfaGFzX2Vycm9yJzsKICAgICAgICBub19lcnJvciA9IGZhbHNlOwogICAgICB9CiAgICB9CiAgICBpZiAobm9fZXJyb3IgJiYgZWxlbS5uYW1lID09ICdlbWFpbCcpIHsKICAgICAgaWYgKCF2YWx1ZS5tYXRjaCgvXltcK19hLXowLTktJyY9XSsoXC5bXCtfYS16MC05LSddKykqQFthLXowLTktXSsoXC5bYS16MC05LV0rKSooXC5bYS16XXsyLH0pJC9pKSkgewogICAgICAgIGVsZW0uY2xhc3NOYW1lID0gZWxlbS5jbGFzc05hbWUgKyAnIF9oYXNfZXJyb3InOwogICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sICJFbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MuIik7CiAgICAgIH0KICAgIH0KICAgIGlmIChub19lcnJvciAmJiAvZGF0ZV9maWVsZC8udGVzdChlbGVtLmNsYXNzTmFtZSkpIHsKICAgICAgaWYgKCF2YWx1ZS5tYXRjaCgvXlxkXGRcZFxkLVxkXGQtXGRcZCQvKSkgewogICAgICAgIGVsZW0uY2xhc3NOYW1lID0gZWxlbS5jbGFzc05hbWUgKyAnIF9oYXNfZXJyb3InOwogICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sICJFbnRlciBhIHZhbGlkIGRhdGUuIik7CiAgICAgIH0KICAgIH0KICAgIHRvb2x0aXAgPyByZXNpemVfdG9vbHRpcCh0b29sdGlwKSA6IGZhbHNlOwogICAgcmV0dXJuIG5vX2Vycm9yOwogIH07CiAgdmFyIG5lZWRzX3ZhbGlkYXRlID0gZnVuY3Rpb24oZWwpIHsKICAgICAgICBpZihlbC5nZXRBdHRyaWJ1dGUoJ3JlcXVpcmVkJykgIT09IG51bGwpewogICAgICAgICAgICByZXR1cm4gdHJ1ZQogICAgICAgIH0KICAgICAgICBpZihlbC5uYW1lID09PSAnZW1haWwnICYmIGVsLnZhbHVlICE9PSAiIil7CiAgICAgICAgICAgIHJldHVybiB0cnVlCiAgICAgICAgfQoKICAgIGlmKChlbC5pZCA9PSAnZmllbGRbXScgfHwgZWwuaWQgPT0gJ2NhWzExXVt2XScpICYmIGVsLmNsYXNzTmFtZS5pbmNsdWRlcygncGhvbmUtaW5wdXQtZXJyb3InKSl7CiAgICAgICAgICAgIHJldHVybiB0cnVlCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gZmFsc2UKICB9OwogIHZhciB2YWxpZGF0ZV9mb3JtID0gZnVuY3Rpb24oZSkgewogICAgdmFyIGVyciA9IGZvcm1fdG9fc3VibWl0LnF1ZXJ5U2VsZWN0b3IoJy5fZm9ybV9lcnJvcicpLCBub19lcnJvciA9IHRydWU7CiAgICBpZiAoIXN1Ym1pdHRlZCkgewogICAgICBzdWJtaXR0ZWQgPSB0cnVlOwogICAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gYWxsSW5wdXRzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7CiAgICAgICAgdmFyIGlucHV0ID0gYWxsSW5wdXRzW2ldOwogICAgICAgIGlmIChuZWVkc192YWxpZGF0ZShpbnB1dCkpIHsKICAgICAgICAgIGlmIChpbnB1dC50eXBlID09ICd0ZWwnKSB7CiAgICAgICAgICAgIGFkZEV2ZW50KGlucHV0LCAnYmx1cicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlLnRyaW0oKTsKICAgICAgICAgICAgICB2YWxpZGF0ZV9maWVsZCh0aGlzLCB0cnVlKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoaW5wdXQudHlwZSA9PSAndGV4dCcgfHwgaW5wdXQudHlwZSA9PSAnbnVtYmVyJyB8fCBpbnB1dC50eXBlID09ICd0aW1lJykgewogICAgICAgICAgICBhZGRFdmVudChpbnB1dCwgJ2JsdXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZS50cmltKCk7CiAgICAgICAgICAgICAgdmFsaWRhdGVfZmllbGQodGhpcywgdHJ1ZSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBhZGRFdmVudChpbnB1dCwgJ2lucHV0JywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgdmFsaWRhdGVfZmllbGQodGhpcywgdHJ1ZSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSBlbHNlIGlmIChpbnB1dC50eXBlID09ICdyYWRpbycgfHwgaW5wdXQudHlwZSA9PSAnY2hlY2tib3gnKSB7CiAgICAgICAgICAgIChmdW5jdGlvbihlbCkgewogICAgICAgICAgICAgIHZhciByYWRpb3MgPSBmb3JtX3RvX3N1Ym1pdC5lbGVtZW50c1tlbC5uYW1lXTsKICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJhZGlvcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgYWRkRXZlbnQocmFkaW9zW2ldLCAnY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgdmFsaWRhdGVfZmllbGQoZWwsIHRydWUpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KShpbnB1dCk7CiAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0LnRhZ05hbWUgPT0gJ1NFTEVDVCcpIHsKICAgICAgICAgICAgYWRkRXZlbnQoaW5wdXQsICdjaGFuZ2UnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICB2YWxpZGF0ZV9maWVsZCh0aGlzLCB0cnVlKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0LnR5cGUgPT0gJ3RleHRhcmVhJyl7CiAgICAgICAgICAgIGFkZEV2ZW50KGlucHV0LCAnaW5wdXQnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICB2YWxpZGF0ZV9maWVsZCh0aGlzLCB0cnVlKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZW1vdmVfdG9vbHRpcHMoKTsKICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBhbGxJbnB1dHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsKICAgICAgdmFyIGVsZW0gPSBhbGxJbnB1dHNbaV07CiAgICAgIGlmIChuZWVkc192YWxpZGF0ZShlbGVtKSkgewogICAgICAgIGlmIChlbGVtLnRhZ05hbWUudG9Mb3dlckNhc2UoKSAhPT0gInNlbGVjdCIpIHsKICAgICAgICAgIGVsZW0udmFsdWUgPSBlbGVtLnZhbHVlLnRyaW0oKTsKICAgICAgICB9CiAgICAgICAgdmFsaWRhdGVfZmllbGQoZWxlbSkgPyB0cnVlIDogbm9fZXJyb3IgPSBmYWxzZTsKICAgICAgfQogICAgfQogICAgaWYgKCFub19lcnJvciAmJiBlKSB7CiAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgIH0KICAgIHJlc2l6ZV90b29sdGlwcygpOwogICAgcmV0dXJuIG5vX2Vycm9yOwogIH07CiAgYWRkRXZlbnQod2luZG93LCAncmVzaXplJywgcmVzaXplX3Rvb2x0aXBzKTsKICBhZGRFdmVudCh3aW5kb3csICdzY3JvbGwnLCByZXNpemVfdG9vbHRpcHMpOwoKICB2YXIgaGlkZVBob25lSW5wdXRFcnJvciA9IGZ1bmN0aW9uKGlucHV0SWQpIHsKICAgIHZhciBlcnJvck1lc3NhZ2UgPSAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVycm9yLW1zZy0iICsgaW5wdXRJZCk7CiAgICB2YXIgaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpbnB1dElkKTsKICAgIGVycm9yTWVzc2FnZS5jbGFzc0xpc3QucmVtb3ZlKCJwaG9uZS1lcnJvciIpOwogICAgZXJyb3JNZXNzYWdlLmNsYXNzTGlzdC5hZGQoInBob25lLWVycm9yLWhpZGRlbiIpOwogICAgaW5wdXQuY2xhc3NMaXN0LnJlbW92ZSgicGhvbmUtaW5wdXQtZXJyb3IiKTsKICB9OwoKICB2YXIgaW5pdGlhbGl6ZVBob25lSW5wdXQgPSBmdW5jdGlvbihpbnB1dCwgZGVmYXVsdENvdW50cnkpIHsKICAgIHJldHVybiB3aW5kb3cuaW50bFRlbElucHV0KGlucHV0LCB7CiAgICAgIHV0aWxzU2NyaXB0OiAiaHR0cHM6Ly91bnBrZy5jb20vaW50bC10ZWwtaW5wdXRAMTcuMC4xOC9idWlsZC9qcy91dGlscy5qcyIsCiAgICAgIGF1dG9IaWRlRGlhbENvZGU6IGZhbHNlLAogICAgICBzZXBhcmF0ZURpYWxDb2RlOiB0cnVlLAogICAgICBpbml0aWFsQ291bnRyeTogZGVmYXVsdENvdW50cnksCiAgICAgIHByZWZlcnJlZENvdW50cmllczogW10KICAgIH0pOwogIH0KCiAgdmFyIHNldFBob25lSW5wdXRFdmVudExpc3RlbmVycyA9IGZ1bmN0aW9uKGlucHV0SWQsIGlucHV0LCBpdGkpIHsKICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBmdW5jdGlvbigpIHsKICAgICAgdmFyIGVycm9yTWVzc2FnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlcnJvci1tc2ctIiArIGlucHV0SWQpOwogICAgICBpZiAoaW5wdXQudmFsdWUudHJpbSgpKSB7CiAgICAgICAgaWYgKGl0aS5pc1ZhbGlkTnVtYmVyKCkpIHsKICAgICAgICAgIGl0aS5zZXROdW1iZXIoaXRpLmdldE51bWJlcigpKTsKICAgICAgICAgIGlmIChlcnJvck1lc3NhZ2UuY2xhc3NMaXN0LmNvbnRhaW5zKCJwaG9uZS1lcnJvciIpKXsKICAgICAgICAgICAgaGlkZVBob25lSW5wdXRFcnJvcihpbnB1dElkKTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgc2hvd1Bob25lSW5wdXRFcnJvcihpbnB1dElkKQogICAgICAgIH0KICAgICAgfSBlbHNlIHsKICAgICAgICBpZiAoZXJyb3JNZXNzYWdlLmNsYXNzTGlzdC5jb250YWlucygicGhvbmUtZXJyb3IiKSl7CiAgICAgICAgICBoaWRlUGhvbmVJbnB1dEVycm9yKGlucHV0SWQpOwogICAgICAgIH0KICAgICAgfQogICAgfSk7CgogICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigiY291bnRyeWNoYW5nZSIsIGZ1bmN0aW9uKCkgewogICAgICBpdGkuc2V0TnVtYmVyKCcnKTsKICAgIH0pOwoKICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLCBmdW5jdGlvbihlKSB7CiAgICAgICAgdmFyIGNoYXJDb2RlID0gKGUud2hpY2gpID8gZS53aGljaCA6IGUua2V5Q29kZTsKICAgICAgICBpZiAoY2hhckNvZGUgPiAzMSAmJiAoY2hhckNvZGUgPCA0OCB8fCBjaGFyQ29kZSA+IDU3KSAmJiBjaGFyQ29kZSAhPT0gOCkgewogICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgIH0KICAgICB9KTsKICB9OwoKICB2YXIgc2hvd1Bob25lSW5wdXRFcnJvciA9IGZ1bmN0aW9uKGlucHV0SWQpIHsKICAgIHZhciBlcnJvck1lc3NhZ2UgPSAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVycm9yLW1zZy0iICsgaW5wdXRJZCk7CiAgICB2YXIgaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpbnB1dElkKTsKICAgIGVycm9yTWVzc2FnZS5jbGFzc0xpc3QuYWRkKCJwaG9uZS1lcnJvciIpOwogICAgZXJyb3JNZXNzYWdlLmNsYXNzTGlzdC5yZW1vdmUoInBob25lLWVycm9yLWhpZGRlbiIpOwogICAgaW5wdXQuY2xhc3NMaXN0LmFkZCgicGhvbmUtaW5wdXQtZXJyb3IiKTsKICB9OwoKCiAgd2luZG93WydyZWNhcHRjaGFfY2FsbGJhY2snXSA9IGZ1bmN0aW9uKCkgewogIC8vIEdldCBhbGwgcmVjYXB0Y2hhcyBpbiB0aGUgRE9NICh0aGVyZSBtYXkgYmUgbW9yZSB0aGFuIG9uZSBmb3JtIG9uIHRoZSBwYWdlKS4KICB2YXIgcmVjYXB0Y2hhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImctcmVjYXB0Y2hhIik7CiAgZm9yICh2YXIgaSBpbiByZWNhcHRjaGFzKSB7CiAgICAvLyBTZXQgdGhlIHJlY2FwdGNoYSBlbGVtZW50IElELCBzbyB0aGUgcmVjYXB0Y2hhIGNhbiBiZSBhcHBsaWVkIHRvIGVhY2ggZWxlbWVudC4KICAgIHZhciByZWNhcHRjaGFfaWQgPSAicmVjYXB0Y2hhXyIgKyBpOwogICAgcmVjYXB0Y2hhc1tpXS5pZCA9IHJlY2FwdGNoYV9pZDsKICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHJlY2FwdGNoYV9pZCk7CiAgICBpZiAoZWwgIT0gbnVsbCkgewogICAgICB2YXIgc2l0ZWtleSA9IGVsLmdldEF0dHJpYnV0ZSgiZGF0YS1zaXRla2V5Iik7CiAgICAgIHZhciBzdG9rZW4gPSBlbC5nZXRBdHRyaWJ1dGUoImRhdGEtc3Rva2VuIik7CiAgICAgIGdyZWNhcHRjaGEucmVuZGVyKHJlY2FwdGNoYV9pZCwgeyJzaXRla2V5IjpzaXRla2V5LCJzdG9rZW4iOnN0b2tlbn0pOwogICAgfQogIH0KfTsgIF9sb2FkX3NjcmlwdCgiaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9yZWNhcHRjaGEvYXBpLmpzP29ubG9hZD1yZWNhcHRjaGFfY2FsbGJhY2smcmVuZGVyPWV4cGxpY2l0Iik7CiAgICB2YXIgX2Zvcm1fc2VyaWFsaXplID0gZnVuY3Rpb24oZm9ybSl7aWYoIWZvcm18fGZvcm0ubm9kZU5hbWUhPT0iRk9STSIpe3JldHVybiB9dmFyIGksaixxPVtdO2ZvcihpPTA7aTxmb3JtLmVsZW1lbnRzLmxlbmd0aDtpKyspe2lmKGZvcm0uZWxlbWVudHNbaV0ubmFtZT09PSIiKXtjb250aW51ZX1zd2l0Y2goZm9ybS5lbGVtZW50c1tpXS5ub2RlTmFtZSl7Y2FzZSJJTlBVVCI6c3dpdGNoKGZvcm0uZWxlbWVudHNbaV0udHlwZSl7Y2FzZSJ0ZWwiOnEucHVzaChmb3JtLmVsZW1lbnRzW2ldLm5hbWUrIj0iK2VuY29kZVVSSUNvbXBvbmVudChmb3JtLmVsZW1lbnRzW2ldLnByZXZpb3VzU2libGluZy5xdWVyeVNlbGVjdG9yKCdkaXYuaXRpX19zZWxlY3RlZC1kaWFsLWNvZGUnKS5pbm5lclRleHQpK2VuY29kZVVSSUNvbXBvbmVudCgiICIpK2VuY29kZVVSSUNvbXBvbmVudChmb3JtLmVsZW1lbnRzW2ldLnZhbHVlKSk7YnJlYWs7Y2FzZSJ0ZXh0IjpjYXNlIm51bWJlciI6Y2FzZSJkYXRlIjpjYXNlInRpbWUiOmNhc2UiaGlkZGVuIjpjYXNlInBhc3N3b3JkIjpjYXNlImJ1dHRvbiI6Y2FzZSJyZXNldCI6Y2FzZSJzdWJtaXQiOnEucHVzaChmb3JtLmVsZW1lbnRzW2ldLm5hbWUrIj0iK2VuY29kZVVSSUNvbXBvbmVudChmb3JtLmVsZW1lbnRzW2ldLnZhbHVlKSk7YnJlYWs7Y2FzZSJjaGVja2JveCI6Y2FzZSJyYWRpbyI6aWYoZm9ybS5lbGVtZW50c1tpXS5jaGVja2VkKXtxLnB1c2goZm9ybS5lbGVtZW50c1tpXS5uYW1lKyI9IitlbmNvZGVVUklDb21wb25lbnQoZm9ybS5lbGVtZW50c1tpXS52YWx1ZSkpfWJyZWFrO2Nhc2UiZmlsZSI6YnJlYWt9YnJlYWs7Y2FzZSJURVhUQVJFQSI6cS5wdXNoKGZvcm0uZWxlbWVudHNbaV0ubmFtZSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGZvcm0uZWxlbWVudHNbaV0udmFsdWUpKTticmVhaztjYXNlIlNFTEVDVCI6c3dpdGNoKGZvcm0uZWxlbWVudHNbaV0udHlwZSl7Y2FzZSJzZWxlY3Qtb25lIjpxLnB1c2goZm9ybS5lbGVtZW50c1tpXS5uYW1lKyI9IitlbmNvZGVVUklDb21wb25lbnQoZm9ybS5lbGVtZW50c1tpXS52YWx1ZSkpO2JyZWFrO2Nhc2Uic2VsZWN0LW11bHRpcGxlIjpmb3Ioaj0wO2o8Zm9ybS5lbGVtZW50c1tpXS5vcHRpb25zLmxlbmd0aDtqKyspe2lmKGZvcm0uZWxlbWVudHNbaV0ub3B0aW9uc1tqXS5zZWxlY3RlZCl7cS5wdXNoKGZvcm0uZWxlbWVudHNbaV0ubmFtZSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGZvcm0uZWxlbWVudHNbaV0ub3B0aW9uc1tqXS52YWx1ZSkpfX1icmVha31icmVhaztjYXNlIkJVVFRPTiI6c3dpdGNoKGZvcm0uZWxlbWVudHNbaV0udHlwZSl7Y2FzZSJyZXNldCI6Y2FzZSJzdWJtaXQiOmNhc2UiYnV0dG9uIjpxLnB1c2goZm9ybS5lbGVtZW50c1tpXS5uYW1lKyI9IitlbmNvZGVVUklDb21wb25lbnQoZm9ybS5lbGVtZW50c1tpXS52YWx1ZSkpO2JyZWFrfWJyZWFrfX1yZXR1cm4gcS5qb2luKCImIil9OwogIHZhciBmb3JtX3N1Ym1pdCA9IGZ1bmN0aW9uKGUpIHsKICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgIGlmICh2YWxpZGF0ZV9mb3JtKCkpIHsKICAgICAgLy8gdXNlIHRoaXMgdHJpY2sgdG8gZ2V0IHRoZSBzdWJtaXQgYnV0dG9uICYgZGlzYWJsZSBpdCB1c2luZyBwbGFpbiBqYXZhc2NyaXB0CiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNfZm9ybV82NF9zdWJtaXQnKS5kaXNhYmxlZCA9IHRydWU7CiAgICAgICAgICAgIHZhciBzZXJpYWxpemVkID0gX2Zvcm1fc2VyaWFsaXplKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdfZm9ybV82NF8nKSkucmVwbGFjZSgvJTBBL2csICdcXG4nKTsKICAgICAgdmFyIGVyciA9IGZvcm1fdG9fc3VibWl0LnF1ZXJ5U2VsZWN0b3IoJy5fZm9ybV9lcnJvcicpOwogICAgICBlcnIgPyBlcnIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlcnIpIDogZmFsc2U7CiAgICAgIF9sb2FkX3NjcmlwdCgnaHR0cHM6Ly9lbGV2YXRlZHRhbGVudGNvbnN1bHRpbmcuYWN0aXZlaG9zdGVkLmNvbS9wcm9jLnBocD8nICsgc2VyaWFsaXplZCArICcmanNvbnA9dHJ1ZScpOwogICAgfQogICAgcmV0dXJuIGZhbHNlOwogIH07CiAgYWRkRXZlbnQoZm9ybV90b19zdWJtaXQsICdzdWJtaXQnLCBmb3JtX3N1Ym1pdCk7Cn0pKCk7Cgo8L3NjcmlwdD4=”][/bt_bb_raw_content][/bt_bb_column][/bt_bb_row][/bt_bb_section][bt_bb_section layout=”boxed_1200″ lazy_load=”yes” allow_content_outside=”no” show_video_on_mobile=”” top_spacing=”normal” bottom_spacing=”normal” full_screen=”” vertical_align=”top” color_scheme=”light-skin” background_color=”” background_image=”” background_overlay=”” top_section_coverage_image=”” bottom_section_coverage_image=”” parallax=”” parallax_offset=”” background_video_yt=”” yt_video_settings=”” background_video_mp4=”” background_video_ogg=”” background_video_webm=”” responsive=”” publish_datetime=”” expiry_datetime=”” animation=”no_animation” el_id=”” el_class=”” el_style=”” bt_bb_toggled=”false”][bt_bb_row column_gap=”” row_width=”boxed_1200_left_content_wide” color_scheme=”” background_color=”” opacity=”” responsive=”” publish_datetime=”” expiry_datetime=”” animation=”no_animation” el_id=”” el_class=”” el_style=”” negative_margin=””][bt_bb_column order=”0,;,,;,,;,,;,” lazy_load=”yes” width=”1/2″ width_lg=”1/2″ width_md=”1/2″ width_sm=”1/2″ width_xs=”1/1″ align=”left,;,,;,,;,,;,” vertical_align=”top” background_image=”” inner_background_image=”” color_scheme=”” inner_color_scheme=”” background_color=”” inner_background_color=”” opacity=”” responsive=”” publish_datetime=”” expiry_datetime=”” animation=”no_animation” el_id=”” el_class=”” el_style=”” padding=”normal” shape=””][bt_bb_image lazy_load=”yes” image=”6707″ size=”full” image_height=”” align=”inherit,;,,;,,;,,;,” caption=”” url=”” target=”_self” hover_style=”simple” content_display=”always” content_background_color=”” content_background_opacity=”” content_align=”middle” responsive=”” publish_datetime=”” expiry_datetime=”” animation=”no_animation” el_id=”” el_class=”” el_style=”” shadow=”” shape=”square”][/bt_bb_image][/bt_bb_column][bt_bb_column order=”0,;,,;,,;,,;,” lazy_load=”yes” width=”1/2″ width_lg=”1/2″ width_md=”1/2″ width_sm=”1/2″ width_xs=”1/1″ align=”left,;,,;,,;,,;,” vertical_align=”top” background_image=”” inner_background_image=”” color_scheme=”” inner_color_scheme=”” background_color=”” inner_background_color=”” opacity=”” responsive=”” publish_datetime=”” expiry_datetime=”” animation=”no_animation” el_id=”” el_class=”” el_style=”” padding=”normal” shape=””][bt_bb_headline font_subset=”latin,latin-ext” superheadline=”” headline=”Real-world solutions delivered by a real expert.” subheadline=”” html_tag=”h3″ size=”inherit” align=”left” dash=”none” color_scheme=”light-skin” color=”” supertitle_position=”” supertitle_style=”” subtitle_style=”” font=”inherit” font_size=”” font_weight=”” supertitle_font_weight=”” subtitle_font_weight=”” letter_spacing=”” supertitle_letter_spacing=”” subtitle_letter_spacing=”” url=”” target=”_self” responsive=”” publish_datetime=”” expiry_datetime=”” animation=”no_animation” el_id=”” el_class=”” el_style=””][/bt_bb_headline][bt_bb_separator top_spacing=”40″ bottom_spacing=”” text=”” border_style=”none” border_color=”none” border_width=”” opacity=”” responsive=”” publish_datetime=”” expiry_datetime=”” animation=”no_animation” el_id=”” el_class=”” el_style=””][/bt_bb_separator][bt_bb_text]
Meet Traci Scherck MPA, SPHR, SHRM-SCP, CPC, NHA, Chief Talent Officer and owner of Elevated Talent Consulting.
Traci is a certified HR and Talent Optimization professional with two decades of experience in employee development and engagement, performance consulting, and training facilitation. Traci uses her consulting expertise to serve clients in applying behavioral concepts to hiring and selection, designing and implementing talent pathways, coaching, motivation, and more.
[/bt_bb_text][bt_bb_separator top_spacing=”20″ bottom_spacing=”” text=”” border_style=”none” border_color=”none” border_width=”” opacity=”” responsive=”” publish_datetime=”” expiry_datetime=”” animation=”no_animation” el_id=”” el_class=”” el_style=””][/bt_bb_separator][bt_bb_image lazy_load=”yes” image=”4091″ size=”medium” image_height=”” align=”left%$%%$%%$%%$%” caption=”” url=”https://www.linkedin.com/in/traci-scherck/” target=”_blank” hover_style=”simple” content_display=”always” content_background_color=”” content_background_opacity=”” content_align=”middle” responsive=”” publish_datetime=”” expiry_datetime=”” animation=”no_animation” el_id=”” el_class=”” el_style=”max-width: 40px;” shadow=”” shape=”square”][/bt_bb_image][/bt_bb_column][/bt_bb_row][/bt_bb_section][bt_bb_section layout=”boxed_900″ lazy_load=”yes” allow_content_outside=”no” show_video_on_mobile=”” top_spacing=”normal” bottom_spacing=”large” full_screen=”” vertical_align=”top” color_scheme=”light-skin” background_color=”” background_image=”” background_overlay=”” top_section_coverage_image=”” bottom_section_coverage_image=”” parallax=”” parallax_offset=”” background_video_yt=”” yt_video_settings=”” background_video_mp4=”” background_video_ogg=”” background_video_webm=”” responsive=”” publish_datetime=”” expiry_datetime=”” animation=”no_animation” el_id=”” el_class=”” el_style=””][bt_bb_row][bt_bb_column order=”0″ lazy_load=”yes” width=”1/1″ width_lg=”1/1″ width_md=”1/1″ width_sm=”1/1″ width_xs=”1/1″][bt_bb_headline font_subset=”latin,latin-ext” superheadline=”” headline=”See what real HR professionals are saying:” subheadline=”” html_tag=”h1″ size=”inherit” align=”center” dash=”none” color_scheme=”” color=”” supertitle_position=”” supertitle_style=”” subtitle_style=”” font=”inherit” font_size=”” font_weight=”” supertitle_font_weight=”” subtitle_font_weight=”” letter_spacing=”” supertitle_letter_spacing=”” subtitle_letter_spacing=”” url=”” target=”_self” responsive=”” publish_datetime=”” expiry_datetime=”” animation=”no_animation” el_id=”” el_class=”” el_style=””][/bt_bb_headline][/bt_bb_column][/bt_bb_row][bt_bb_row][bt_bb_column order=”0,;,,;,,;,,;,” lazy_load=”yes” width=”1/2″ width_lg=”1/2″ width_md=”1/2″ width_sm=”1/2″ width_xs=”1/1″ align=”left,;,,;,,;,,;,” vertical_align=”top” background_image=”” inner_background_image=”” color_scheme=”” inner_color_scheme=”” background_color=”” inner_background_color=”” opacity=”” responsive=”” publish_datetime=”” expiry_datetime=”” animation=”no_animation” el_id=”” el_class=”” el_style=”” padding=”normal” shape=””][bt_bb_testimonial text_font_subset=”latin,latin-ext” text=”Elevated Talent Consulting listened to our needs and was able to coach us in developing the HR foundations that fit our company. I trust Traci to steer our organization to meet our business objectives with strong human capital operations.” logo=”” name=”Shelley Taylor” details=”Consortium For Educational Change” signature=”” quote_color=”accent” quote_position=”hide” text_size=”” text_style=”italic” font_weight=”thin” text_font=”Roboto” responsive=”” publish_datetime=”” expiry_datetime=”” animation=”no_animation” el_id=”” el_class=”” el_style=””][/bt_bb_testimonial][bt_bb_separator top_spacing=”small” bottom_spacing=”” text=”” border_style=”none” border_color=”none” border_width=”” opacity=”” responsive=”” publish_datetime=”” expiry_datetime=”” animation=”no_animation” el_id=”” el_class=”” el_style=””][/bt_bb_separator][bt_bb_testimonial text_font_subset=”latin,latin-ext” text=”When Traci did her Career Goal Setting workshop, it was clear she knows how to connect to her audience. Despite a Zoom format, she tailored her comments to the audience giving them actionable information.” logo=”” name=”Brian Morello” details=”Beloit College” signature=”” quote_color=”” quote_position=”hide” text_size=”” text_style=”italic” font_weight=”thin” text_font=”Roboto” responsive=”” publish_datetime=”” expiry_datetime=”” animation=”no_animation” el_id=”” el_class=”” el_style=””][/bt_bb_testimonial][/bt_bb_column][bt_bb_column width=”1/2″ width_lg=”1/2″ width_md=”1/2″ width_sm=”1/2″ width_xs=”1/1″ order=”0″ lazy_load=”yes”][bt_bb_testimonial text_font_subset=”latin,latin-ext” text=”Traci is a consummate example of courage under fire in difficult decisions. She taught me the subtle art of soft skills by watching her perform her craft.” logo=”” name=”Travis Eagan” details=”American Mortgage” signature=”” quote_color=”” quote_position=”hide” text_size=”” text_style=”italic” font_weight=”thin” text_font=”Roboto” responsive=”” publish_datetime=”” expiry_datetime=”” animation=”no_animation” el_id=”” el_class=”” el_style=””][/bt_bb_testimonial][bt_bb_separator top_spacing=”small” bottom_spacing=”” text=”” border_style=”none” border_color=”none” border_width=”” opacity=”” responsive=”” publish_datetime=”” expiry_datetime=”” animation=”no_animation” el_id=”” el_class=”” el_style=””][/bt_bb_separator][bt_bb_testimonial text_font_subset=”latin,latin-ext” text=”Traci gave us a full update on HR, OSHA, and legal concerns related to COVID-19 for healthcare organizations and members of the Northwest Illinois Preparedness and Response Coalition. What an incredible resource for Human Resource information!” logo=”” name=”Diane Logsdon” details=”Logsdon Consultation Services, Inc.” signature=”” quote_color=”” quote_position=”hide” text_size=”” text_style=”italic” font_weight=”thin” text_font=”Roboto” responsive=”” publish_datetime=”” expiry_datetime=”” animation=”no_animation” el_id=”” el_class=”” el_style=””][/bt_bb_testimonial][/bt_bb_column][/bt_bb_row][/bt_bb_section][bt_bb_section layout=”boxed_1200″ lazy_load=”yes” allow_content_outside=”no” show_video_on_mobile=””][bt_bb_row][bt_bb_column order=”0″ lazy_load=”yes” width=”1/1″ width_lg=”1/1″ width_md=”1/1″ width_sm=”1/1″ width_xs=”1/1″][/bt_bb_column][/bt_bb_row][/bt_bb_section]