[fusion_builder_container type=”flex” hundred_percent=”yes” hundred_percent_height=”no” min_height_medium=”” min_height_small=”” min_height=”” hundred_percent_height_scroll=”no” align_content=”stretch” flex_align_items=”flex-start” flex_justify_content=”flex-start” flex_wrap_medium=”” flex_wrap_small=”” flex_wrap=”wrap” flex_column_spacing=”” hundred_percent_height_center_content=”yes” equal_height_columns=”no” container_tag=”div” menu_anchor=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” status=”published” publish_date=”” class=”” id=”” html_attributes=”W10=” margin_top_medium=”” margin_bottom_medium=”” margin_top_small=”” margin_bottom_small=”” margin_top=”” margin_bottom=”” padding_top_medium=”” padding_right_medium=”” padding_bottom_medium=”” padding_left_medium=”” padding_top_small=”” padding_right_small=”” padding_bottom_small=”” padding_left_small=”” padding_top=”” padding_right=”” padding_bottom=”” padding_left=”” link_hover_color=”” hue=”” saturation=”” lightness=”” alpha=”” link_color=”” border_sizes_top=”” border_sizes_right=”” border_sizes_bottom=”” border_sizes_left=”” border_color=”” border_style=”solid” border_radius_top_left=”” border_radius_top_right=”” border_radius_bottom_right=”” border_radius_bottom_left=”” box_shadow=”no” box_shadow_vertical=”” box_shadow_horizontal=”” box_shadow_blur=”0″ box_shadow_spread=”0″ box_shadow_color=”” box_shadow_style=”” z_index=”” overflow=”” background_color_medium=”” background_color_small=”” background_color=”” gradient_start_color=”” gradient_end_color=”” gradient_start_position=”0″ gradient_end_position=”100″ gradient_type=”linear” radial_direction=”center center” linear_angle=”180″ background_image_medium=”” background_image_small=”” background_image=”” skip_lazy_load=”” background_position_medium=”” background_position_small=”” background_position=”center center” background_repeat_medium=”” background_repeat_small=”” background_repeat=”no-repeat” background_size_medium=”” background_size_small=”” background_size=”” background_custom_size=”” background_custom_size_medium=”” background_custom_size_small=”” fade=”no” background_parallax=”none” enable_mobile=”no” parallax_speed=”0.3″ background_blend_mode_medium=”” background_blend_mode_small=”” background_blend_mode=”none” background_slider_images=”” background_slider_position=”” background_slider_skip_lazy_loading=”no” background_slider_random_order=”no” background_slider_loop=”yes” background_slider_pause_on_hover=”no” background_slider_slideshow_speed=”5000″ background_slider_animation=”fade” background_slider_direction=”up” background_slider_animation_speed=”800″ background_slider_blend_mode=”” video_mp4=”” video_webm=”” video_ogv=”” video_url=”” video_aspect_ratio=”16:9″ video_loop=”yes” video_mute=”yes” video_preview_image=”” pattern_bg=”none” pattern_custom_bg=”” pattern_bg_color=”” pattern_bg_style=”default” pattern_bg_opacity=”100″ pattern_bg_size=”” pattern_bg_blend_mode=”normal” mask_bg=”none” mask_custom_bg=”” mask_bg_color=”” mask_bg_accent_color=”” mask_bg_style=”default” mask_bg_opacity=”100″ mask_bg_transform=”left” mask_bg_blend_mode=”normal” render_logics=”” logics=”” absolute=”off” absolute_devices=”small,medium,large” position_top_medium=”” position_right_medium=”” position_bottom_medium=”” position_left_medium=”” position_top_small=”” position_right_small=”” position_bottom_small=”” position_left_small=”” position_top=”” position_right=”” position_bottom=”” position_left=”” sticky=”off” sticky_devices=”small-visibility,medium-visibility,large-visibility” sticky_background_color=”” sticky_height=”” sticky_offset=”” sticky_transition_offset=”0″ scroll_offset=”0″ animation_type=”” animation_direction=”left” animation_color=”” animation_speed=”0.3″ animation_delay=”0″ animation_offset=”” filter_hue=”0″ filter_saturation=”100″ filter_brightness=”100″ filter_contrast=”100″ filter_invert=”0″ filter_sepia=”0″ filter_opacity=”100″ filter_blur=”0″ filter_hue_hover=”0″ filter_saturation_hover=”100″ filter_brightness_hover=”100″ filter_contrast_hover=”100″ filter_invert_hover=”0″ filter_sepia_hover=”0″ filter_opacity_hover=”100″ filter_blur_hover=”0″][fusion_builder_row][fusion_builder_column type=”1_1″ layout=”1_1″ align_self=”auto” content_layout=”column” align_content=”flex-start” valign_content=”flex-start” dimension_gap_medium=”” dimension_gap_small=”” dimension_gap=”” content_wrap=”wrap” spacing=”” center_content=”no” column_tag=”div” link=”” target=”_self” link_description=”” min_height=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” sticky_display=”normal,sticky” class=”” id=”” html_attributes=”” type_medium=”” type_small=”” max_height_medium=”” max_height_small=”” max_height=”” flex_grow_medium=”” flex_grow_small=”” flex_grow=”” flex_shrink_medium=”” flex_shrink_small=”” flex_shrink=”” order_medium=”0″ order_small=”0″ dimension_spacing_medium=”” dimension_spacing_small=”” dimension_spacing=”” dimension_margin_medium=”” dimension_margin_small=”” margin_top=”” margin_bottom=”” padding_medium=”” padding_small=”” padding_top=”” padding_right=”” padding_bottom=”” padding_left=”” hover_type=”none” border_sizes=”” border_color_hover=”” border_color=”” border_style=”solid” border_radius=”” box_shadow=”no” dimension_box_shadow=”” box_shadow_blur=”0″ box_shadow_spread=”0″ box_shadow_color=”” box_shadow_style=”” z_index_hover=”” z_index=”” overflow=”” background_type=”single” background_color_medium=”” background_color_small=”” background_color_medium_hover=”” background_color_small_hover=”” background_color_hover=”” background_color=”” gradient_start_color=”” gradient_end_color=”” gradient_start_position=”0″ gradient_end_position=”100″ gradient_type=”linear” radial_direction=”center center” linear_angle=”180″ background_image_medium=”” background_image_small=”” background_image=”” background_image_id_medium=”” background_image_id_small=”” background_image_id=”” lazy_load=”none” skip_lazy_load=”” background_position_medium=”” background_position_small=”” background_position=”left top” background_repeat_medium=”” background_repeat_small=”” background_repeat=”no-repeat” background_size_medium=”” background_size_small=”” background_size=”” background_custom_size=”” background_custom_size_medium=”” background_custom_size_small=”” background_blend_mode_medium=”” background_blend_mode_small=”” background_blend_mode=”none” background_slider_images=”” background_slider_position=”” background_slider_skip_lazy_loading=”no” background_slider_random_order=”no” background_slider_loop=”yes” background_slider_pause_on_hover=”no” background_slider_slideshow_speed=”5000″ background_slider_animation=”fade” background_slider_direction=”up” background_slider_animation_speed=”800″ background_slider_blend_mode=”” render_logics=”” sticky=”off” sticky_devices=”small-visibility,medium-visibility,large-visibility” sticky_offset=”” absolute=”off” absolute_props=”” filter_type=”regular” filter_hover_element=”self” filter_hue=”0″ filter_saturation=”100″ filter_brightness=”100″ filter_contrast=”100″ filter_invert=”0″ filter_sepia=”0″ filter_opacity=”100″ filter_blur=”0″ filter_hue_hover=”0″ filter_saturation_hover=”100″ filter_brightness_hover=”100″ filter_contrast_hover=”100″ filter_invert_hover=”0″ filter_sepia_hover=”0″ filter_opacity_hover=”100″ filter_blur_hover=”0″ transform_type=”regular” transform_hover_element=”self” transform_scale_x=”1″ transform_scale_y=”1″ transform_translate_x=”0″ transform_translate_y=”0″ transform_rotate=”0″ transform_skew_x=”0″ transform_skew_y=”0″ transform_scale_x_hover=”1″ transform_scale_y_hover=”1″ transform_translate_x_hover=”0″ transform_translate_y_hover=”0″ transform_rotate_hover=”0″ transform_skew_x_hover=”0″ transform_skew_y_hover=”0″ transform_origin=”” transition_duration=”300″ transition_easing=”ease” transition_custom_easing=”” motion_effects=”” scroll_motion_devices=”small-visibility,medium-visibility,large-visibility” animation_type=”” animation_direction=”left” animation_color=”” animation_speed=”0.3″ animation_delay=”0″ animation_offset=”” last=”true” border_position=”all” first=”true”][fusion_code render_logics=””]PGxpbmsgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1DaW56ZWw6d2dodEA1MDA7NjAwOzcwMDs4MDAmZmFtaWx5PUludGVyOndnaHRANDAwOzUwMDs2MDA7NzAwOzgwMCZmYW1pbHk9UGxheWZhaXIrRGlzcGxheTp3Z2h0QDUwMDs2MDAmZGlzcGxheT1zd2FwIiByZWw9InN0eWxlc2hlZXQiPgoKPHN0eWxlPgogICAgLyogLS0tIENPUkUgVkFSSUFCTEVTIC0tLSAqLwogICAgOnJvb3QgewogICAgICAgIC0tY2otZ3JlZW46ICMwMTQ0MWE7CiAgICAgICAgLS1jai1iZy1ncmV5OiAjZjlmOWY5OwogICAgICAgIC0tY2otd2hpdGU6ICNmZmZmZmY7CiAgICAgICAgLS1jai1maWx0ZXItZ3JlZW46ICM3MWIwNzI7CiAgICAgICAgLS1jai1mb250OiAnSW50ZXInLCBzYW5zLXNlcmlmOwogICAgICAgIC0tY2otc2VyaWY6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7CiAgICAgICAgLS1jai10aXRsZS1mb250OiAnQ2luemVsJywgc2VyaWY7CiAgICB9CgogICAgLmNqLXNob3Atd3JhcHBlciwgLmNqLXNob3Atd3JhcHBlciAqIHsgYm94LXNpemluZzogYm9yZGVyLWJveCAhaW1wb3J0YW50OyB9CgogICAgLmNqLXNob3Atd3JhcHBlciB7CiAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWNqLWZvbnQpOwogICAgICAgIGNvbG9yOiB2YXIoLS1jai1ncmVlbik7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgbWF4LXdpZHRoOiAxMjAwcHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgcGFkZGluZzogNDBweCAyMHB4IDgwcHggMjBweDsKICAgIH0KCiAgICAvKiAtLS0gUEFHRSBIRUFERVIgLS0tICovCiAgICAuY2otc2hvcC1oZWFkZXIgewogICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwogICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlYWVhZWE7CiAgICAgICAgcGFkZGluZy1ib3R0b206IDIwcHg7CiAgICB9CgogICAgLmNqLXNlY3Rpb24tdGl0bGUgewogICAgICAgIGZvbnQtZmFtaWx5OiB2YXIoLS1jai10aXRsZS1mb250KTsgLyogVXBkYXRlZCB0byBDaW56ZWwgKi8KICAgICAgICBmb250LXNpemU6IDQycHg7IC8qIEluY3JlYXNlZCBzbGlnaHRseSBzaW5jZSBDaW56ZWwgcnVucyBhIGJpdCBzbWFsbGVyICovCiAgICAgICAgZm9udC13ZWlnaHQ6IDgwMDsKICAgICAgICBjb2xvcjogdmFyKC0tY2otZ3JlZW4pOwogICAgICAgIG1hcmdpbjogMCAwIDI0cHggMDsKICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7IC8qIEluY3JlYXNlZCBsZXR0ZXIgc3BhY2luZyBmb3IgdGhlIGNsYXNzaWMgbG9vayAqLwogICAgfQoKICAgIC8qIC0tLSBEWU5BTUlDIEFWQURBIE1FTlUgU1RZTElORyAtLS0gKi8KICAgIC5jai1tZXJjaC1uYXYtd3JhcHBlciAuZnVzaW9uLXdpZGdldC1tZW51IHsKICAgICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdyAhaW1wb3J0YW50OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7CiAgICAgICAgZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7CiAgICAgICAgZ2FwOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50OwogICAgICAgIGxpc3Qtc3R5bGU6IG5vbmUgIWltcG9ydGFudDsKICAgIH0KICAgIAogICAgLmNqLW1lcmNoLW5hdi13cmFwcGVyIC5mdXNpb24td2lkZ2V0LW1lbnUgLm1lbnUtaXRlbSB7CiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jai1tZXJjaC1uYXYtd3JhcHBlciAuZnVzaW9uLXdpZGdldC1tZW51IGEgewogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7CiAgICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7CiAgICAgICAgY29sb3I6ICMyYzNlNTAgIWltcG9ydGFudDsgCiAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWNqLXNlcmlmKSAhaW1wb3J0YW50OwogICAgICAgIGZvbnQtc2l6ZTogMTZweCAhaW1wb3J0YW50OwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWltcG9ydGFudDsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMS41cHggIWltcG9ydGFudDsKICAgICAgICBwYWRkaW5nOiA4cHggMCAhaW1wb3J0YW50OwogICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuM3MgZWFzZSAhaW1wb3J0YW50OwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50OwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jai1tZXJjaC1uYXYtd3JhcHBlciAuZnVzaW9uLXdpZGdldC1tZW51IGE6aG92ZXIsCiAgICAuY2otbWVyY2gtbmF2LXdyYXBwZXIgLmZ1c2lvbi13aWRnZXQtbWVudSAuY3VycmVudC1tZW51LWl0ZW0gPiBhIHsKICAgICAgICBjb2xvcjogdmFyKC0tY2otZmlsdGVyLWdyZWVuKSAhaW1wb3J0YW50OwogICAgfQogICAgCiAgICAvKiBTbGlkaW5nIFVuZGVybGluZSBFZmZlY3QgKi8KICAgIC5jai1tZXJjaC1uYXYtd3JhcHBlciAuZnVzaW9uLXdpZGdldC1tZW51IGE6OmFmdGVyIHsKICAgICAgICBjb250ZW50OiAnJzsKICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICAgICAgYm90dG9tOiAwOwogICAgICAgIGxlZnQ6IDA7CiAgICAgICAgd2lkdGg6IDAlOwogICAgICAgIGhlaWdodDogMnB4OwogICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNqLWZpbHRlci1ncmVlbik7CiAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4zcyBlYXNlOwogICAgfQogICAgLmNqLW1lcmNoLW5hdi13cmFwcGVyIC5mdXNpb24td2lkZ2V0LW1lbnUgLmN1cnJlbnQtbWVudS1pdGVtID4gYTo6YWZ0ZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgfQoKICAgIC8qIEhpZGUgQXZhZGEncyBTdWItbWVudXMgZm9yIHRoaXMgY2xlYW4gZmlsdGVyIGxvb2sgKi8KICAgIC5jai1tZXJjaC1uYXYtd3JhcHBlciAuZnVzaW9uLXdpZGdldC1tZW51IC5zdWItbWVudSB7CiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC8qIC0tLSBTS0VMRVRPTiBMT0FERVJTIC0tLSAqLwogICAgLmNqLXNrZWxldG9uLWJveCB7CiAgICAgICAgYmFja2dyb3VuZDogI2U1ZTVlNTsKICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNmMGYwZjAgMjUlLCAjZTVlNWU1IDUwJSwgI2YwZjBmMCA3NSUpOwogICAgICAgIGJhY2tncm91bmQtc2l6ZTogMjAwJSAxMDAlOwogICAgICAgIGFuaW1hdGlvbjogY2otc2tlbGV0b24tbG9hZGluZyAxLjVzIGluZmluaXRlOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDZweDsKICAgIH0KICAgIEBrZXlmcmFtZXMgY2otc2tlbGV0b24tbG9hZGluZyB7CiAgICAgICAgMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAyMDAlIDA7IH0KICAgICAgICAxMDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTIwMCUgMDsgfQogICAgfQoKICAgIC8qIC0tLSBQUk9EVUNUIEdSSUQgKENSSVNQLCBNT0RFUk4gU1RZTElORykgLS0tICovCiAgICAuY2otcHJvZHVjdC1ncmlkIHsKICAgICAgICBkaXNwbGF5OiBncmlkOwogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZmlsbCwgbWlubWF4KDI4MHB4LCAxZnIpKTsKICAgICAgICBnYXA6IDMycHg7CiAgICB9CgogICAgLmNqLXByb2R1Y3QtY2FyZCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2otd2hpdGUpOwogICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2UsIGJveC1zaGFkb3cgMC4zcyBlYXNlLCBib3JkZXItY29sb3IgMC4zcyBlYXNlOwogICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZTBlMGUwOwogICAgfQoKICAgIC5jai1wcm9kdWN0LWNhcmQ6aG92ZXIgewogICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNHB4KTsKICAgICAgICBib3gtc2hhZG93OiAwIDEycHggMzBweCByZ2JhKDEsIDY4LCAyNiwgMC4xMik7CiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jai1ncmVlbik7CiAgICB9CgogICAgLmNqLXByb2R1Y3QtaW1nLXdyYXBwZXIgewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7IAogICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7CiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgIG92ZXJmbG93OiBoaWRkZW47CiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7CiAgICB9CgogICAgLmNqLXByb2R1Y3QtaW1nIHsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7CiAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2U7CiAgICB9CgogICAgLmNqLXByb2R1Y3QtY2FyZDpob3ZlciAuY2otcHJvZHVjdC1pbWcgewogICAgICAgIG9wYWNpdHk6IDAuOTU7IAogICAgfQoKICAgIC5jai1wcm9kdWN0LWNvbnRlbnQgewogICAgICAgIHBhZGRpbmc6IDI0cHg7CiAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgIGZsZXgtZ3JvdzogMTsKICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsKICAgIH0KCiAgICAuY2otcHJvZHVjdC1jYXRlZ29yeSB7CiAgICAgICAgZm9udC1zaXplOiAxMXB4OwogICAgICAgIGNvbG9yOiAjODg4OwogICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7CiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICAgICAgICBsZXR0ZXItc3BhY2luZzogMC41cHg7CiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgfQoKICAgIC5jai1wcm9kdWN0LXRpdGxlIHsKICAgICAgICBmb250LXNpemU6IDE4cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBsaW5lLWhlaWdodDogMS4zOwogICAgICAgIGNvbG9yOiB2YXIoLS1jai1ncmVlbik7CiAgICAgICAgbWFyZ2luOiAwIDAgMTBweCAwOwogICAgfQoKICAgIC5jai1wcm9kdWN0LXByaWNlIHsKICAgICAgICBmb250LXNpemU6IDE1cHg7CiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsKICAgICAgICBjb2xvcjogdmFyKC0tY2otZmlsdGVyLWdyZWVuKTsKICAgICAgICBtYXJnaW46IDAgMCAyNHB4IDA7CiAgICB9CiAgICAuY2otcHJvZHVjdC1wcmljZSBkZWwgewogICAgICAgIGNvbG9yOiAjYWFhOwogICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7CiAgICAgICAgZm9udC1zaXplOiAxM3B4OwogICAgICAgIG1hcmdpbi1yaWdodDogNnB4OwogICAgfQogICAgLmNqLXByb2R1Y3QtcHJpY2UgaW5zIHsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9CgogICAgLyogQ3Jpc3AgSG9sbG93IFBpbGwgQnV0dG9uICovCiAgICAuY2otYWRkLXRvLWNhcnQgewogICAgICAgIG1hcmdpbi10b3A6IGF1dG87CiAgICAgICAgZm9udC1mYW1pbHk6IHZhcigtLWNqLWZvbnQpOwogICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogICAgICAgIGNvbG9yOiB2YXIoLS1jai1ncmVlbik7CiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2otZ3JlZW4pOwogICAgICAgIHBhZGRpbmc6IDEwcHggMjRweDsKICAgICAgICBib3JkZXItcmFkaXVzOiA1MHB4OwogICAgICAgIGZvbnQtc2l6ZTogMTJweDsKICAgICAgICBmb250LXdlaWdodDogNzAwOwogICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7CiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuNXB4OwogICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2U7CiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIH0KCiAgICAuY2otcHJvZHVjdC1jYXJkOmhvdmVyIC5jai1hZGQtdG8tY2FydCB7CiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2otZ3JlZW4pOwogICAgICAgIGNvbG9yOiB2YXIoLS1jai13aGl0ZSk7CiAgICB9CgogICAgLmNqLWFuaW1hdGUtaW4gewogICAgICAgIG9wYWNpdHk6IDA7CiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpOwogICAgICAgIGFuaW1hdGlvbjogY2otZmFkZS11cCAwLjVzIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpIGZvcndhcmRzOwogICAgfQogICAgQGtleWZyYW1lcyBjai1mYWRlLXVwIHsKICAgICAgICB0byB7IG9wYWNpdHk6IDE7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfQogICAgfQoKICAgIC8qIC0tLSBNT0JJTEUgUkVTUE9OU0lWRSAtLS0gKi8KICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDkwMHB4KSB7CiAgICAgICAgLmNqLXNob3Atd3JhcHBlciB7IHBhZGRpbmc6IDIwcHggMTVweCA2MHB4IDE1cHg7IH0KICAgICAgICAuY2otc2VjdGlvbi10aXRsZSB7IGZvbnQtc2l6ZTogMjhweDsgfQogICAgICAgIAogICAgICAgIC5jai1tZXJjaC1uYXYtd3JhcHBlciAuZnVzaW9uLXdpZGdldC1tZW51IHsganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IGdhcDogMTZweCAhaW1wb3J0YW50OyBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50OyBvdmVyZmxvdy14OiBhdXRvICFpbXBvcnRhbnQ7IHBhZGRpbmctYm90dG9tOiA4cHggIWltcG9ydGFudDt9CiAgICAgICAgLmNqLW1lcmNoLW5hdi13cmFwcGVyIC5mdXNpb24td2lkZ2V0LW1lbnUgYSB7IGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50OyB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7IH0KICAgICAgICAKICAgICAgICAuY2otcHJvZHVjdC1ncmlkIHsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgMWZyKTsgZ2FwOiAxNnB4OyB9CiAgICAgICAgLmNqLXByb2R1Y3QtY29udGVudCB7IHBhZGRpbmc6IDE2cHg7IH0KICAgICAgICAuY2otcHJvZHVjdC10aXRsZSB7IGZvbnQtc2l6ZTogMTRweDsgfQogICAgICAgIC5jai1wcm9kdWN0LXByaWNlIHsgZm9udC1zaXplOiAxM3B4OyBtYXJnaW4tYm90dG9tOiAxNnB4O30KICAgICAgICAuY2otYWRkLXRvLWNhcnQgeyBwYWRkaW5nOiA4cHggMTZweDsgZm9udC1zaXplOiAxMHB4O30KICAgIH0KPC9zdHlsZT4KCjxkaXYgY2xhc3M9ImNqLXNob3Atd3JhcHBlciI+CiAgICAKICAgIDxkaXYgY2xhc3M9ImNqLXNob3AtaGVhZGVyIj4KICAgICAgICA8aDEgY2xhc3M9ImNqLXNlY3Rpb24tdGl0bGUiPkNvb2tpZSBKYXIgTWVyY2g8L2gxPgogICAgICAgIAogICAgICAgIDxkaXYgY2xhc3M9ImNqLW1lcmNoLW5hdi13cmFwcGVyIj4KICAgICAgICAgICAgW2Z1c2lvbl9tZW51IG1lbnU9Im1lcmNoIiBkaXJlY3Rpb249InJvdyIgYWxpZ25faXRlbXM9ImNlbnRlciIganVzdGlmeV9jb250ZW50PSJjZW50ZXIiIGdhcD0iMzJweCIgYmc9InJnYmEoMCwwLDAsMCkiIC9dCiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGNsYXNzPSJjai1wcm9kdWN0LWdyaWQiIGlkPSJjai1wcm9kdWN0LWdyaWQiPgogICAgICAgIDxkaXYgY2xhc3M9ImNqLXByb2R1Y3QtY2FyZCI+PGRpdiBjbGFzcz0iY2otcHJvZHVjdC1pbWctd3JhcHBlciBjai1za2VsZXRvbi1ib3giPjwvZGl2PjxkaXYgY2xhc3M9ImNqLXByb2R1Y3QtY29udGVudCI+PGRpdiBjbGFzcz0iY2otc2tlbGV0b24tYm94IiBzdHlsZT0id2lkdGg6IDQwJTsgaGVpZ2h0OiAxMHB4OyBtYXJnaW4tYm90dG9tOjEycHg7Ij48L2Rpdj48ZGl2IGNsYXNzPSJjai1za2VsZXRvbi1ib3giIHN0eWxlPSJ3aWR0aDogOTAlOyBoZWlnaHQ6IDE4cHg7IG1hcmdpbi1ib3R0b206MTJweDsiPjwvZGl2PjxkaXYgY2xhc3M9ImNqLXNrZWxldG9uLWJveCIgc3R5bGU9IndpZHRoOiAzMCU7IGhlaWdodDogMTZweDsgbWFyZ2luLWJvdHRvbToyNHB4OyI+PC9kaXY+PGRpdiBjbGFzcz0iY2otc2tlbGV0b24tYm94IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDM2cHg7IGJvcmRlci1yYWRpdXM6NTBweDsiPjwvZGl2PjwvZGl2PjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNqLXByb2R1Y3QtY2FyZCI+PGRpdiBjbGFzcz0iY2otcHJvZHVjdC1pbWctd3JhcHBlciBjai1za2VsZXRvbi1ib3giPjwvZGl2PjxkaXYgY2xhc3M9ImNqLXByb2R1Y3QtY29udGVudCI+PGRpdiBjbGFzcz0iY2otc2tlbGV0b24tYm94IiBzdHlsZT0id2lkdGg6IDQwJTsgaGVpZ2h0OiAxMHB4OyBtYXJnaW4tYm90dG9tOjEycHg7Ij48L2Rpdj48ZGl2IGNsYXNzPSJjai1za2VsZXRvbi1ib3giIHN0eWxlPSJ3aWR0aDogMTAwJTsgaGVpZ2h0OiAxOHB4OyBtYXJnaW4tYm90dG9tOjEycHg7Ij48L2Rpdj48ZGl2IGNsYXNzPSJjai1za2VsZXRvbi1ib3giIHN0eWxlPSJ3aWR0aDogNDAlOyBoZWlnaHQ6IDE2cHg7IG1hcmdpbi1ib3R0b206MjRweDsiPjwvZGl2PjxkaXYgY2xhc3M9ImNqLXNrZWxldG9uLWJveCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAzNnB4OyBib3JkZXItcmFkaXVzOjUwcHg7Ij48L2Rpdj48L2Rpdj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjai1wcm9kdWN0LWNhcmQiPjxkaXYgY2xhc3M9ImNqLXByb2R1Y3QtaW1nLXdyYXBwZXIgY2otc2tlbGV0b24tYm94Ij48L2Rpdj48ZGl2IGNsYXNzPSJjai1wcm9kdWN0LWNvbnRlbnQiPjxkaXYgY2xhc3M9ImNqLXNrZWxldG9uLWJveCIgc3R5bGU9IndpZHRoOiA0MCU7IGhlaWdodDogMTBweDsgbWFyZ2luLWJvdHRvbToxMnB4OyI+PC9kaXY+PGRpdiBjbGFzcz0iY2otc2tlbGV0b24tYm94IiBzdHlsZT0id2lkdGg6IDgwJTsgaGVpZ2h0OiAxOHB4OyBtYXJnaW4tYm90dG9tOjEycHg7Ij48L2Rpdj48ZGl2IGNsYXNzPSJjai1za2VsZXRvbi1ib3giIHN0eWxlPSJ3aWR0aDogMzUlOyBoZWlnaHQ6IDE2cHg7IG1hcmdpbi1ib3R0b206MjRweDsiPjwvZGl2PjxkaXYgY2xhc3M9ImNqLXNrZWxldG9uLWJveCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAzNnB4OyBib3JkZXItcmFkaXVzOjUwcHg7Ij48L2Rpdj48L2Rpdj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjai1wcm9kdWN0LWNhcmQiPjxkaXYgY2xhc3M9ImNqLXByb2R1Y3QtaW1nLXdyYXBwZXIgY2otc2tlbGV0b24tYm94Ij48L2Rpdj48ZGl2IGNsYXNzPSJjai1wcm9kdWN0LWNvbnRlbnQiPjxkaXYgY2xhc3M9ImNqLXNrZWxldG9uLWJveCIgc3R5bGU9IndpZHRoOiA0MCU7IGhlaWdodDogMTBweDsgbWFyZ2luLWJvdHRvbToxMnB4OyI+PC9kaXY+PGRpdiBjbGFzcz0iY2otc2tlbGV0b24tYm94IiBzdHlsZT0id2lkdGg6IDg1JTsgaGVpZ2h0OiAxOHB4OyBtYXJnaW4tYm90dG9tOjEycHg7Ij48L2Rpdj48ZGl2IGNsYXNzPSJjai1za2VsZXRvbi1ib3giIHN0eWxlPSJ3aWR0aDogMzAlOyBoZWlnaHQ6IDE2cHg7IG1hcmdpbi1ib3R0b206MjRweDsiPjwvZGl2PjxkaXYgY2xhc3M9ImNqLXNrZWxldG9uLWJveCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAzNnB4OyBib3JkZXItcmFkaXVzOjUwcHg7Ij48L2Rpdj48L2Rpdj48L2Rpdj4KICAgIDwvZGl2PgoKPC9kaXY+Cgo8c2NyaXB0PgogICAgbGV0IG1hc3RlclByb2R1Y3RMaXN0ID0gW107CgogICAgLy8gLS0tIEhUTUwgQ0FSRCBHRU5FUkFUT1IgLS0tCiAgICBjb25zdCBidWlsZFByb2R1Y3RDYXJkID0gKHByb2R1Y3QsIGRlbGF5VmFsKSA9PiB7CiAgICAgICAgY29uc3QgaW1nVXJsID0gcHJvZHVjdC5pbWFnZXMgJiYgcHJvZHVjdC5pbWFnZXMubGVuZ3RoID4gMCAKICAgICAgICAgICAgPyBwcm9kdWN0LmltYWdlc1swXS5zcmMgCiAgICAgICAgICAgIDogJ2h0dHBzOi8vdmlhLnBsYWNlaG9sZGVyLmNvbS82MDB4NjAwP3RleHQ9Q29va2llK0phcitHb2xmJzsKICAgICAgICAKICAgICAgICBsZXQgY2F0TmFtZSA9ICdNZXJjaCc7CiAgICAgICAgaWYgKHByb2R1Y3QuY2F0ZWdvcmllcyAmJiBwcm9kdWN0LmNhdGVnb3JpZXMubGVuZ3RoID4gMCkgewogICAgICAgICAgICBjYXROYW1lID0gcHJvZHVjdC5jYXRlZ29yaWVzWzBdLm5hbWU7CiAgICAgICAgfQoKICAgICAgICAvLyBBbGwgYnV0dG9ucyBub3cgc2F5ICJWaWV3IFByb2R1Y3QiIGFuZCBsaW5rIHRvIHRoZSBzcGVjaWZpYyBwcm9kdWN0IHBhZ2UhCiAgICAgICAgY29uc3QgYnRuVGV4dCA9ICdWaWV3IFByb2R1Y3QnOwogICAgICAgIGNvbnN0IHRhcmdldFVybCA9IHByb2R1Y3QucGVybWFsaW5rOwoKICAgICAgICByZXR1cm4gYAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjai1wcm9kdWN0LWNhcmQgY2otYW5pbWF0ZS1pbiIgc3R5bGU9ImFuaW1hdGlvbi1kZWxheTogJHtkZWxheVZhbH1zIj4KICAgICAgICAgICAgICAgIDxhIGhyZWY9IiR7dGFyZ2V0VXJsfSIgY2xhc3M9ImNqLXByb2R1Y3QtaW1nLXdyYXBwZXIiPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSIke2ltZ1VybH0iIGNsYXNzPSJjai1wcm9kdWN0LWltZyIgYWx0PSIke3Byb2R1Y3QubmFtZX0iPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2otcHJvZHVjdC1jb250ZW50Ij4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2otcHJvZHVjdC1jYXRlZ29yeSI+JHtjYXROYW1lfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIke3RhcmdldFVybH0iIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZTsiPjxoMyBjbGFzcz0iY2otcHJvZHVjdC10aXRsZSI+JHtwcm9kdWN0Lm5hbWV9PC9oMz48L2E+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2otcHJvZHVjdC1wcmljZSI+JHtwcm9kdWN0LnByaWNlX2h0bWx9PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iJHt0YXJnZXRVcmx9IiBjbGFzcz0iY2otYWRkLXRvLWNhcnQiPiR7YnRuVGV4dH08L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgYDsKICAgIH07CgogICAgLy8gLS0tIFJFTkRFUiBHUklEIC0tLQogICAgY29uc3QgcmVuZGVyUHJvZHVjdHMgPSAocHJvZHVjdHNUb1JlbmRlcikgPT4gewogICAgICAgIGNvbnN0IGdyaWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2otcHJvZHVjdC1ncmlkJyk7CiAgICAgICAgZ3JpZC5pbm5lckhUTUwgPSAnJzsgCgogICAgICAgIGlmIChwcm9kdWN0c1RvUmVuZGVyLmxlbmd0aCA9PT0gMCkgewogICAgICAgICAgICBncmlkLmlubmVySFRNTCA9ICc8ZGl2IHN0eWxlPSJwYWRkaW5nOjQwcHggMDsgY29sb3I6Izg4ODsgZm9udC1zdHlsZTppdGFsaWM7IGdyaWQtY29sdW1uOiAxIC8gLTE7IHRleHQtYWxpZ246Y2VudGVyOyB3aWR0aDoxMDAlOyI+Tm8gcHJvZHVjdHMgZm91bmQgaW4gdGhpcyBjYXRlZ29yeS48L2Rpdj4nOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBsZXQgaHRtbCA9ICcnOwogICAgICAgIGxldCBkZWxheSA9IDAuMDU7CiAgICAgICAgcHJvZHVjdHNUb1JlbmRlci5mb3JFYWNoKHAgPT4gewogICAgICAgICAgICBodG1sICs9IGJ1aWxkUHJvZHVjdENhcmQocCwgZGVsYXkpOwogICAgICAgICAgICBkZWxheSArPSAwLjA1OyAKICAgICAgICB9KTsKCiAgICAgICAgZ3JpZC5pbm5lckhUTUwgPSBodG1sOwogICAgfTsKCiAgICAvLyAtLS0gTUFJTiBGRVRDSCAmIElOSVRJQUxJWkFUSU9OIC0tLQogICAgY29uc3QgaW5pdFNob3BQYWdlID0gKCkgPT4gewogICAgICAgIC8vIEZldGNoIGFsbCBwcm9kdWN0cyB2aWEgV29vQ29tbWVyY2UgU3RvcmUgQVBJCiAgICAgICAgY29uc3QgYXBpVVJMID0gYGh0dHBzOi8vd3d3LmNvb2tpZWphcmdvbGYuY29tL3dwLWpzb24vd2Mvc3RvcmUvcHJvZHVjdHM/cGVyX3BhZ2U9MTAwJnQ9JHtEYXRlLm5vdygpfWA7CgogICAgICAgIGZldGNoKGFwaVVSTCkKICAgICAgICAgICAgLnRoZW4ociA9PiB7IAogICAgICAgICAgICAgICAgaWYgKCFyLm9rKSB0aHJvdyBuZXcgRXJyb3IoJ0FQSSBub3QgYWNjZXNzaWJsZScpOyAKICAgICAgICAgICAgICAgIHJldHVybiByLmpzb24oKTsgCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIC50aGVuKHByb2R1Y3RzID0+IHsKICAgICAgICAgICAgICAgIG1hc3RlclByb2R1Y3RMaXN0ID0gcHJvZHVjdHMuZmlsdGVyKHAgPT4gcC5pc19wdXJjaGFzYWJsZSAmJiBwLmNhdGFsb2dfdmlzaWJpbGl0eSAhPT0gJ2hpZGRlbicpOwogICAgICAgICAgICAgICAgcmVuZGVyUHJvZHVjdHMobWFzdGVyUHJvZHVjdExpc3QpOwogICAgICAgICAgICAgICAgc2V0dXBNZW51SW50ZXJjZXB0b3IoKTsKICAgICAgICAgICAgfSkKICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjai1wcm9kdWN0LWdyaWQnKS5pbm5lckhUTUwgPSBgCiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT0icGFkZGluZzo0MHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgY29sb3I6I2MwMDsgZ3JpZC1jb2x1bW46IDEgLyAtMTsiPgogICAgICAgICAgICAgICAgICAgICAgICBVbmFibGUgdG8gbG9hZCBwcm9kdWN0cyB2aWEgQVBJLgogICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7CiAgICAgICAgICAgIH0pOwogICAgfTsKCiAgICAvLyAtLS0gQVZBREEgTUVOVSBJTlRFUkNFUFRPUiAtLS0KICAgIGNvbnN0IHNldHVwTWVudUludGVyY2VwdG9yID0gKCkgPT4gewogICAgICAgIGNvbnN0IG1lbnVMaW5rcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jai1tZXJjaC1uYXYtd3JhcHBlciAuZnVzaW9uLXdpZGdldC1tZW51IGEnKTsKICAgICAgICAKICAgICAgICBsZXQgYWxsTWVyY2hMaW5rID0gbnVsbDsKCiAgICAgICAgbWVudUxpbmtzLmZvckVhY2gobGluayA9PiB7CiAgICAgICAgICAgIGNvbnN0IHVybCA9IGxpbmsuZ2V0QXR0cmlidXRlKCdocmVmJykgfHwgJyc7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBBc3N1bWUgdGhlIG1haW4gL21lcmNoLyBsaW5rIGlzIHRoZSAiQWxsIiBidXR0b24KICAgICAgICAgICAgaWYgKHVybC5lbmRzV2l0aCgnL21lcmNoLycpIHx8IHVybC5lbmRzV2l0aCgnL21lcmNoJykpIHsKICAgICAgICAgICAgICAgIGFsbE1lcmNoTGluayA9IGxpbmsucGFyZW50RWxlbWVudDsKICAgICAgICAgICAgICAgIGFsbE1lcmNoTGluay5jbGFzc0xpc3QuYWRkKCdjdXJyZW50LW1lbnUtaXRlbScpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBsaW5rLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICAgICAgLy8gT25seSBpbnRlcmNlcHQgcHJvZHVjdCBjYXRlZ29yeSBsaW5rcyBvciB0aGUgbWFpbiBtZXJjaCBwYWdlIGxpbmsKICAgICAgICAgICAgICAgIGlmICh1cmwuaW5jbHVkZXMoJy9wcm9kdWN0LWNhdGVnb3J5LycpIHx8IHVybC5lbmRzV2l0aCgnL21lcmNoLycpIHx8IHVybC5lbmRzV2l0aCgnL21lcmNoJykpIHsKICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7IAoKICAgICAgICAgICAgICAgICAgICAvLyBWaXN1YWxseSB1cGRhdGUgdGhlIGFjdGl2ZSBtZW51IGl0ZW0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuY2otbWVyY2gtbmF2LXdyYXBwZXIgLmZ1c2lvbi13aWRnZXQtbWVudSBsaScpLmZvckVhY2gobGkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBsaS5jbGFzc0xpc3QucmVtb3ZlKCdjdXJyZW50LW1lbnUtaXRlbScsICdjdXJyZW50X3BhZ2VfaXRlbScpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgIHRoaXMucGFyZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCdjdXJyZW50LW1lbnUtaXRlbScpOwoKICAgICAgICAgICAgICAgICAgICAvLyBGaWx0ZXIgdGhlIHByb2R1Y3RzCiAgICAgICAgICAgICAgICAgICAgaWYgKHVybC5pbmNsdWRlcygnL3Byb2R1Y3QtY2F0ZWdvcnkvJykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFydHMgPSB1cmwuc3BsaXQoJy8nKS5maWx0ZXIocGFydCA9PiBwYXJ0Lmxlbmd0aCA+IDApOwogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjYXRlZ29yeVNsdWcgPSBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXTsgCiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJlZCA9IG1hc3RlclByb2R1Y3RMaXN0LmZpbHRlcihwID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwLmNhdGVnb3JpZXMuc29tZShjYXQgPT4gY2F0LnNsdWcgPT09IGNhdGVnb3J5U2x1Zyk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJQcm9kdWN0cyhmaWx0ZXJlZCk7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gTWFpbiAiTWVyY2giIGxpbmsgY2xpY2tlZCwgc2hvdyBhbGwKICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyUHJvZHVjdHMobWFzdGVyUHJvZHVjdExpc3QpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICB9OwoKICAgIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSAnbG9hZGluZycpIHsKICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgaW5pdFNob3BQYWdlKTsKICAgIH0gZWxzZSB7CiAgICAgICAgaW5pdFNob3BQYWdlKCk7CiAgICB9Cjwvc2NyaXB0Pg==[/fusion_code][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]