Home

[fusion_builder_container type=”flex” hundred_percent=”no” 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=”fade” animation_direction=”up” animation_color=”” animation_speed=”1.0″ animation_delay=”1.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=”avada” 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=””]PCEtLSBDQVJMIEhlcm8gLSBGdWxsIFdpZHRoIExheW91dCAtLT4KPCEtLSBQYXN0ZSB0aGlzIGludG8gYSBzaW5nbGUgQ29kZSBCbG9jayBpbiBhIDEvMSBmdWxsLXdpZHRoIGNvbHVtbiAtLT4KCjxkaXYgY2xhc3M9ImNhcmwtaGVyby1mdWxsd2lkdGgiPgogIDwhLS0gTGVmdCBDb250ZW50IC0tPgogIDxkaXYgY2xhc3M9ImNhcmwtaGVyby1jb250ZW50Ij4KICAgIDxoMSBjbGFzcz0iY2FybC1oZXJvLWhlYWRsaW5lIj5BSS1hc3Npc3RlZC48YnI+VGVhY2hlci1jb250cm9sbGVkLjwvaDE+CgogICAgPHAgY2xhc3M9ImNhcmwtaGVyby1zdWJ0ZXh0Ij4KICAgICAgUGxhbiBsZXNzb25zLCBjb21wb25lbnRzLCBhbmQgY2xhc3Nyb29tIHN1cHBvcnRzIGluIG9uZSBjb25uZWN0ZWQgd29ya2Zsb3csIGJ1aWx0IGZvciBDYW5hZGlhbiBjdXJyaWN1bHVtIGFuZCBmdWxseSBjb250cm9sbGVkIGJ5IHRlYWNoZXJzLgogICAgPC9wPgoKICAgIDxkaXYgY2xhc3M9ImNhcmwtaGVyby1jdGFzIj4KICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9oaWNhcmwuYWkvYmV0YS1iYXNlbGluZS1zdXJ2ZXkvIiBjbGFzcz0iY2FybC1oZXJvLWJ0biBjYXJsLWhlcm8tYnRuLXByaW1hcnkiPgogICAgICAgIEpvaW4gQmV0YQogICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj7ihpI8L3NwYW4+CiAgICAgIDwvYT4KCiAgICAgIDxkaXYgY2xhc3M9ImNhcmwtaGVyby1zZWNvbmRhcnktc3RhY2siPgogICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vaGljYXJsLmFpL2NhcmwtaW4tNS1taW51dGVzLXRoZS1lc3NlbnRpYWwtdG91ci8iIGNsYXNzPSJjYXJsLWhlcm8tYnRuIGNhcmwtaGVyby1idG4tc2Vjb25kYXJ5Ij4KICAgICAgICAgIFRha2UgdGhlIDUtTWludXRlIFRvdXIKICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj7ihpI8L3NwYW4+CiAgICAgICAgPC9hPgoKCiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0iY2FybC1oZXJvLXRhZ3MiPgogICAgICA8ZGl2IGNsYXNzPSJjYXJsLWhlcm8tdGFnLXJvdyI+CiAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmwtdGFnIj4KICA8c3ZnIGNsYXNzPSJ0YWctaWNvbiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNjQwIDY0MCIgYXJpYS1oaWRkZW49InRydWUiIGZvY3VzYWJsZT0iZmFsc2UiPgogICAgPHBhdGggZmlsbD0iY3VycmVudENvbG9yIiBkPSJNNDQ3LjggNDE1LjdjMi41LTIuNSAxMDUuMi05Mi40IDEwNS4yLTkyLjRsLTE3LjUtNy41Yy0xMC00LjktNy40LTExLjUtNS0xNy40YzIuNC03LjYgMjAuMS02Ny4zIDIwLjEtNjcuM3MtNDcuNyAxMC01Ny43IDEyLjVjLTcuNSAyLjQtMTAtMi41LTEyLjUtNy41cy0xNS0zMi40LTE1LTMyLjRzLTUyLjYgNTkuOS01NS4xIDYyLjNjLTEwIDcuNS0yMC4xIDAtMTcuNi0xMGMwLTEwIDI3LjYtMTI5LjYgMjcuNi0xMjkuNnMtMzAuMSAxNy40LTQwLjEgMjIuNGMtNy41IDUtMTIuNiA1LTE3LjYtNWMtNS4xLTcuNS00Mi43LTc5LjgtNDIuNy03OS44cy0zNy41IDcyLjMtNDIuNSA3OS44Yy01IDEwLTEwIDEwLTE3LjYgNWMtMTAtNS00MC4xLTIyLjQtNDAuMS0yMi40UzI0Ny4zIDI0NiAyNDcuMyAyNTZjMi41IDEwLTcuNSAxNy41LTE3LjYgMTBjLTIuNS0yLjUtNTUuMS02Mi4zLTU1LjEtNjIuM3MtMTIuNSAyNy4zLTE1IDMyLjNzLTUgOS45LTEyLjUgNy41QzEzNyAyNDEgODkuNCAyMzEgODkuNCAyMzFzMTcuNiA1OS43IDIwLjEgNjcuM2MyLjQgNiA1IDEyLjUtNSAxNy40TDg3IDMyMy4zczEwMi42IDg5LjkgMTA1LjIgOTIuNGM1LjEgNSAxMCA3LjUgNS4xIDIyLjVjLTUuMSAxNS0xMC4xIDM1LjEtMTAuMSAzNS4xczk1LjItMjAuMSAxMDUuMy0yMi42YzguNy0uOSAxOC4zIDIuNSAxOC4zIDEyLjVTMzA1IDU3NiAzMDUgNTc2aDMwcy01LjgtMTAyLjctNS44LTExMi44czkuNS0xMy40IDE4LjQtMTIuNWMxMCAyLjUgMTA1LjIgMjIuNiAxMDUuMiAyMi42cy01LTIwLjEtMTAtMzUuMXMwLTE3LjUgNS0yMi41Ii8+CiAgPC9zdmc+CiAgQ2FuYWRpYW4gQ3VycmljdWx1bSBBbGlnbmVkCjwvc3Bhbj4KCiAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmwtdGFnIj4KICAgICAgICAgIDxzdmcgY2xhc3M9InRhZy1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICA8cGF0aCBkPSJNMjEuNSAydjZoLTYiPjwvcGF0aD4KICAgICAgICAgICAgPHBhdGggZD0iTTIuNSAyMnYtNmg2Ij48L3BhdGg+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yIDExLjVhMTAgMTAgMCAwIDEgMTguOC00LjMiPjwvcGF0aD4KICAgICAgICAgICAgPHBhdGggZD0iTTIyIDEyLjVhMTAgMTAgMCAwIDEtMTguOCA0LjIiPjwvcGF0aD4KICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgUmVtaXhhYmxlIExpYnJhcnkKICAgICAgICA8L3NwYW4+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iY2FybC1oZXJvLXRhZy1yb3ciPgogICAgICAgIDxzcGFuIGNsYXNzPSJjYXJsLXRhZyI+CiAgICAgICAgICA8c3ZnIGNsYXNzPSJ0YWctaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIj4KICAgICAgICAgICAgPHBhdGggZD0iTTIxIDE1YTIgMiAwIDAgMS0yIDJIN2wtNCA0VjVhMiAyIDAgMCAxIDItMmgxNGEyIDIgMCAwIDEgMiAyeiI+PC9wYXRoPgogICAgICAgICAgPC9zdmc+CiAgICAgICAgICBGcmVuY2ggSW1tZXJzaW9uCiAgICAgICAgPC9zcGFuPgoKICAgICAgICA8c3BhbiBjbGFzcz0iY2FybC10YWciPgogICAgICAgICAgPHN2ZyBjbGFzcz0idGFnLWljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiI+CiAgICAgICAgICAgIDxyZWN0IHg9IjMiIHk9IjExIiB3aWR0aD0iMTgiIGhlaWdodD0iMTEiIHJ4PSIyIiByeT0iMiI+PC9yZWN0PgogICAgICAgICAgICA8cGF0aCBkPSJNNyAxMVY3YTUgNSAwIDAgMSAxMCAwdjQiPjwvcGF0aD4KICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgTm8gU3R1ZGVudCBEYXRhIE5lZWRlZAogICAgICAgIDwvc3Bhbj4KCiAgICAgICAgPHNwYW4gY2xhc3M9ImNhcmwtdGFnIj4KICAgICAgICAgIDxzdmcgY2xhc3M9InRhZy1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgICAgICA8cGF0aCBkPSJNMTIgMjJzOC00IDgtMTBWNWwtOC0zLTggM3Y3YzAgNiA4IDEwIDggMTB6Ij48L3BhdGg+CiAgICAgICAgICA8L3N2Zz4KICAgICAgICAgIEhvc3RlZCBpbiBDYW5hZGEKICAgICAgICA8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPHAgY2xhc3M9ImNhcmwtaGVyby1wcm92aW5jZXMiPk5vdyBzdXBwb3J0aW5nOiBCQywgQWxiZXJ0YSwgT250YXJpbywgVW5pdmVyc2FsPC9wPgogIDwvZGl2PgoKICA8IS0tIFJpZ2h0IFZpc3VhbDogVmlkZW8gKyBNYXNjb3QgLS0+CiAgPGRpdiBjbGFzcz0iY2FybC1oZXJvLXZpc3VhbCI+CiAgICA8ZGl2IGNsYXNzPSJjYXJsLWhlcm8tZ2lmLXdyYXBwZXIiPgogICAgICA8ZGl2IGNsYXNzPSJjYXJsLWhlcm8tZ2lmLW92ZXJsYXkiIGlkPSJjYXJsSGVyb092ZXJsYXkiIHN0eWxlPSJvcGFjaXR5OjA7Ij48L2Rpdj4KCiAgICAgIDx2aWRlbwogICAgICAgIGNsYXNzPSJjYXJsLWhlcm8tZ2lmIgogICAgICAgIG11dGVkCiAgICAgICAgbG9vcAogICAgICAgIHBsYXlzaW5saW5lCiAgICAgICAgaWQ9ImNhcmxIZXJvVmlkZW8iCiAgICAgICAgb25sb2FkZWRkYXRhPSJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FybEhlcm9PdmVybGF5Jykuc3R5bGUuY3NzVGV4dD0nb3BhY2l0eToxO3RyYW5zaXRpb246b3BhY2l0eSAwLjRzIGVhc2U7Jzsgc2V0VGltZW91dChmdW5jdGlvbigpeyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY2FybEhlcm9WaWRlbycpLnBsYXkoKTsgfSwgMjUwMCkiCiAgICAgID4KICAgICAgICA8c291cmNlIHNyYz0iaHR0cHM6Ly9oaWNhcmwuYWkvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDQvaGVyby1tcDQubXA0IiB0eXBlPSJ2aWRlby9tcDQiPgogICAgICA8L3ZpZGVvPgogICAgPC9kaXY+CgogICAgPGltZwogICAgICBzcmM9Imh0dHBzOi8vaGljYXJsLmFpL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzAyL0xvZ29zLUZpbmFsLTEwMDAteC01MDAtcHgtODAwLXgtNTAwLXB4LTE0LnBuZyIKICAgICAgYWx0PSJDQVJMIG1hc2NvdCIKICAgICAgY2xhc3M9ImNhcmwtaGVyby1tYXNjb3QiCiAgICA+CiAgPC9kaXY+CjwvZGl2PgoKPHN0eWxlPgouY2FybC1oZXJvLWZ1bGx3aWR0aCB7CiAgZGlzcGxheTogZmxleDsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICBtaW4taGVpZ2h0OiA1MDBweDsKICBwYWRkaW5nOiA0MHB4IDIwcHg7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIG1heC13aWR0aDogMTAwJTsKICBtYXJnaW46IDAgYXV0bzsKICBnYXA6IDA7CiAgZm9udC1mYW1pbHk6ICdQb3BwaW5zJywgc2Fucy1zZXJpZiAhaW1wb3J0YW50Owp9CgouY2FybC1oZXJvLWZ1bGx3aWR0aCAqLAouY2FybC1oZXJvLWZ1bGx3aWR0aCAqOjpiZWZvcmUsCi5jYXJsLWhlcm8tZnVsbHdpZHRoICo6OmFmdGVyIHsKICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogIGZvbnQtZmFtaWx5OiAnUG9wcGlucycsIHNhbnMtc2VyaWYgIWltcG9ydGFudDsKfQoKLmNhcmwtaGVyby1jb250ZW50IHsKICBmbGV4OiAwIDAgNDQlOwogIG1heC13aWR0aDogNjIwcHg7CiAgYm9yZGVyLWxlZnQ6IDhweCBzb2xpZCAjQThFMDYzOwogIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgcGFkZGluZzogNDBweCAyOHB4IDQwcHggNDVweDsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgei1pbmRleDogMjsKfQoKLmNhcmwtaGVyby1oZWFkbGluZSB7CiAgZm9udC1zaXplOiBjbGFtcCgyLjVyZW0sIDV2dywgMy41cmVtKTsKICBmb250LXdlaWdodDogODAwOwogIGNvbG9yOiAjMDAxOTMwOwogIGxpbmUtaGVpZ2h0OiAxLjE7CiAgbWFyZ2luOiAwIDAgMjRweCAwOwp9CgouY2FybC1oZXJvLXN1YnRleHQgewogIGZvbnQtc2l6ZTogMS4xMjVyZW07CiAgY29sb3I6ICM1QTZDN0Q7CiAgbGluZS1oZWlnaHQ6IDEuNjU7CiAgbWFyZ2luOiAwIDAgMzJweCAwOwogIG1heC13aWR0aDogNTYwcHg7Cn0KCi5jYXJsLWhlcm8tY3RhcyB7CiAgZGlzcGxheTogZmxleDsKICBnYXA6IDE0cHg7CiAgbWFyZ2luLWJvdHRvbTogMzBweDsKICBmbGV4LXdyYXA6IHdyYXA7CiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7Cn0KCi5jYXJsLWhlcm8tc2Vjb25kYXJ5LXN0YWNrIHsKICBkaXNwbGF5OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7CiAgZ2FwOiAxMHB4Owp9CgouY2FybC1oZXJvLWJ0biB7CiAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDsKICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDsKICBnYXA6IDhweCAhaW1wb3J0YW50OwogIG1pbi1oZWlnaHQ6IDQ4cHggIWltcG9ydGFudDsKICBwYWRkaW5nOiAxNHB4IDI2cHggIWltcG9ydGFudDsKICBib3JkZXItcmFkaXVzOiA5OTlweCAhaW1wb3J0YW50OwogIGZvbnQtZmFtaWx5OiAnUG9wcGlucycsIHNhbnMtc2VyaWYgIWltcG9ydGFudDsKICBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDsKICBmb250LXdlaWdodDogNzAwICFpbXBvcnRhbnQ7CiAgbGluZS1oZWlnaHQ6IDEgIWltcG9ydGFudDsKICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsKICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDsKICB0cmFuc2l0aW9uOgogICAgdHJhbnNmb3JtIDY1MG1zIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpICFpbXBvcnRhbnQsCiAgICBib3gtc2hhZG93IDY1MG1zIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpICFpbXBvcnRhbnQsCiAgICBiYWNrZ3JvdW5kLWNvbG9yIDY1MG1zIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpICFpbXBvcnRhbnQsCiAgICBjb2xvciA2NTBtcyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKSAhaW1wb3J0YW50LAogICAgYm9yZGVyLWNvbG9yIDY1MG1zIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpICFpbXBvcnRhbnQ7Cn0KCi5jYXJsLWhlcm8tYnRuOmhvdmVyIHsKICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCkgIWltcG9ydGFudDsKICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsKfQoKLmNhcmwtaGVyby1idG4gc3BhbiB7CiAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDsKICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gNjUwbXMgY3ViaWMtYmV6aWVyKDAuMTYsIDEsIDAuMywgMSkgIWltcG9ydGFudDsKfQoKLmNhcmwtaGVyby1idG46aG92ZXIgc3BhbiB7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCkgIWltcG9ydGFudDsKfQoKLmNhcmwtaGVyby1idG4tcHJpbWFyeSB7CiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDsKICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjNTljOWUxLCAjMDBlNWQzKSAhaW1wb3J0YW50OwogIGJvcmRlcjogMCAhaW1wb3J0YW50OwogIGJveC1zaGFkb3c6IDAgNHB4IDE0cHggcmdiYSgwLCA0NSwgNzYsIDAuMTMpICFpbXBvcnRhbnQ7Cn0KCi5jYXJsLWhlcm8tYnRuLXByaW1hcnk6aG92ZXIgewogIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7CiAgYm94LXNoYWRvdzogMCA3cHggMjJweCByZ2JhKDAsIDQ1LCA3NiwgMC4xNikgIWltcG9ydGFudDsKfQoKLmNhcmwtaGVyby1idG4tc2Vjb25kYXJ5IHsKICBjb2xvcjogIzAwMkQ0QyAhaW1wb3J0YW50OwogIGJhY2tncm91bmQ6ICNGRkZGRkYgIWltcG9ydGFudDsKICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDQ1LCA3NiwgMC4xMikgIWltcG9ydGFudDsKICBib3gtc2hhZG93OiAwIDRweCAxNHB4IHJnYmEoMCwgNDUsIDc2LCAwLjA4KSAhaW1wb3J0YW50Owp9CgouY2FybC1oZXJvLWJ0bi1zZWNvbmRhcnk6aG92ZXIgewogIGNvbG9yOiAjMDAxOTMwICFpbXBvcnRhbnQ7CiAgYm9yZGVyLWNvbG9yOiAjMDBFNUQzICFpbXBvcnRhbnQ7CiAgYmFja2dyb3VuZDogcmdiYSg4OSwgMjAxLCAyMjUsIDAuMDgpICFpbXBvcnRhbnQ7CiAgYm94LXNoYWRvdzogMCA3cHggMjJweCByZ2JhKDAsIDQ1LCA3NiwgMC4xMSkgIWltcG9ydGFudDsKfQoKLmNhcmwtaGVyby1saWJyYXJ5LWxpbmsgewogIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7CiAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50OwogIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7CiAgY29sb3I6ICM1QTZDN0QgIWltcG9ydGFudDsKICBmb250LWZhbWlseTogJ1BvcHBpbnMnLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7CiAgZm9udC1zaXplOiAxM3B4ICFpbXBvcnRhbnQ7CiAgZm9udC13ZWlnaHQ6IDcwMCAhaW1wb3J0YW50OwogIGxpbmUtaGVpZ2h0OiAxLjQgIWltcG9ydGFudDsKICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsKICBib3JkZXItYm90dG9tOiAycHggc29saWQgcmdiYSg4OSwgMjAxLCAyMjUsIDAuNTUpICFpbXBvcnRhbnQ7CiAgcGFkZGluZy1ib3R0b206IDNweCAhaW1wb3J0YW50OwogIG1hcmdpbi1sZWZ0OiAxMnB4ICFpbXBvcnRhbnQ7CiAgdHJhbnNpdGlvbjoKICAgIGNvbG9yIDY1MG1zIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpICFpbXBvcnRhbnQsCiAgICBib3JkZXItY29sb3IgNjUwbXMgY3ViaWMtYmV6aWVyKDAuMTYsIDEsIDAuMywgMSkgIWltcG9ydGFudDsKfQoKLmNhcmwtaGVyby1saWJyYXJ5LWxpbms6aG92ZXIgewogIGNvbG9yOiAjMDBCOEE5ICFpbXBvcnRhbnQ7CiAgYm9yZGVyLWNvbG9yOiAjMDBFNUQzICFpbXBvcnRhbnQ7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7Cn0KCi5jYXJsLWhlcm8tdGFncyB7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIGdhcDogMTBweDsKICBtYXJnaW4tYm90dG9tOiAyMnB4OwogIG1heC13aWR0aDogNjEwcHg7Cn0KCi5jYXJsLWhlcm8tdGFnLXJvdyB7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LXdyYXA6IG5vd3JhcDsKICBnYXA6IDEwcHggMTJweDsKICBhbGlnbi1pdGVtczogY2VudGVyOwp9CgouY2FybC10YWcgewogIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7CiAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50OwogIGdhcDogNnB4ICFpbXBvcnRhbnQ7CiAgcGFkZGluZzogN3B4IDExcHggIWltcG9ydGFudDsKICBmb250LXNpemU6IDEwLjVweCAhaW1wb3J0YW50OwogIGZvbnQtd2VpZ2h0OiA3MDAgIWltcG9ydGFudDsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAyRDRDICFpbXBvcnRhbnQ7CiAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDsKICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDsKICBib3JkZXItbGVmdDogNHB4IHNvbGlkICNBOEUwNjMgIWltcG9ydGFudDsKICBib3JkZXItcmFkaXVzOiA5OTlweCAhaW1wb3J0YW50OwogIGxpbmUtaGVpZ2h0OiAxLjIgIWltcG9ydGFudDsKICB3aGl0ZS1zcGFjZTogbm93cmFwICFpbXBvcnRhbnQ7Cn0KCi50YWctaWNvbiB7CiAgd2lkdGg6IDE1cHg7CiAgaGVpZ2h0OiAxNXB4OwogIGZsZXgtc2hyaW5rOiAwOwp9CgouY2FybC1oZXJvLXByb3ZpbmNlcyB7CiAgZm9udC1zaXplOiAwLjg3NXJlbTsKICBjb2xvcjogIzcxODA5NjsKICBtYXJnaW46IDA7Cn0KCi5jYXJsLWhlcm8tdmlzdWFsIHsKICBmbGV4OiAwIDAgNTYlOwogIG1hcmdpbi1yaWdodDogLTYwcHg7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIGRpc3BsYXk6IGZsZXg7CiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIHBhZGRpbmctcmlnaHQ6IDA7Cn0KCi5jYXJsLWhlcm8tZ2lmLXdyYXBwZXIgewogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB3aWR0aDogMTAwJTsKICBtYXgtd2lkdGg6IDg1MHB4OwogIGJvcmRlci1yYWRpdXM6IDE2cHg7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICBib3gtc2hhZG93OiAwIDI0cHggNjRweCByZ2JhKDAsIDI1LCA0OCwgMC4yKTsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjRThFQUVDOwp9CgouY2FybC1oZXJvLWdpZi1vdmVybGF5IHsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgaW5zZXQ6IDA7CiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSByaWdodCwgdHJhbnNwYXJlbnQgNDAlLCByZ2JhKDAsIDI1LCA0OCwgMC42NSkgMTAwJSk7CiAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgei1pbmRleDogMjsKICBib3JkZXItcmFkaXVzOiAxNnB4Owp9CgouY2FybC1oZXJvLWdpZiB7CiAgd2lkdGg6IDEwMCU7CiAgZGlzcGxheTogYmxvY2s7CiAgYm9yZGVyLXJhZGl1czogMTZweDsKfQoKLmNhcmwtaGVyby1tYXNjb3QgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICBib3R0b206IC05MHB4OwogIHJpZ2h0OiAtNzBweDsKICB3aWR0aDogNjAwcHg7CiAgbWF4LXdpZHRoOiA2MiU7CiAgei1pbmRleDogNTsKICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMTJweCAzMnB4IHJnYmEoMCwgMjUsIDQ4LCAwLjMpKTsKICBhbmltYXRpb246IG1hc2NvdEZsb2F0IDMuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7Cn0KCkBrZXlmcmFtZXMgbWFzY290RmxvYXQgewogIDAlLCAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9CiAgNTAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC04cHgpOyB9Cn0KCkBtZWRpYSAobWF4LXdpZHRoOiAxMTIwcHgpIHsKICAuY2FybC1oZXJvLXRhZy1yb3cgewogICAgZmxleC13cmFwOiB3cmFwOwogIH0KfQoKQG1lZGlhIChtYXgtd2lkdGg6IDEwMjRweCkgewogIC5jYXJsLWhlcm8tZnVsbHdpZHRoIHsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBwYWRkaW5nOiA0MHB4IDIwcHg7CiAgfQoKICAuY2FybC1oZXJvLWNvbnRlbnQgewogICAgZmxleDogMTsKICAgIG1heC13aWR0aDogMTAwJTsKICAgIHBhZGRpbmctbGVmdDogMDsKICAgIG1hcmdpbi1ib3R0b206IDQwcHg7CiAgICBib3JkZXItbGVmdDogbm9uZTsKICAgIGJvcmRlci10b3A6IDZweCBzb2xpZCAjQThFMDYzOwogICAgcGFkZGluZy10b3A6IDM0cHg7CiAgfQoKICAuY2FybC1oZXJvLXN1YnRleHQgewogICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgfQoKICAuY2FybC1oZXJvLWN0YXMgewogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgfQoKICAuY2FybC1oZXJvLXNlY29uZGFyeS1zdGFjayB7CiAgICBhbGlnbi1pdGVtczogY2VudGVyOwogIH0KCiAgLmNhcmwtaGVyby10YWdzIHsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgbWF4LXdpZHRoOiA2NjBweDsKICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogIH0KCiAgLmNhcmwtaGVyby10YWctcm93IHsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZmxleC13cmFwOiB3cmFwOwogIH0KCiAgLmNhcmwtaGVyby12aXN1YWwgewogICAgZmxleDogMTsKICAgIHdpZHRoOiAxMDAlOwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgICBwYWRkaW5nLXJpZ2h0OiAwOwogICAgbWFyZ2luLXJpZ2h0OiAwOwogIH0KCiAgLmNhcmwtaGVyby1naWYtd3JhcHBlciB7CiAgICBtYXgtd2lkdGg6IDUwMHB4OwogIH0KCiAgLmNhcmwtaGVyby1tYXNjb3QgewogICAgd2lkdGg6IDE1MHB4OwogICAgYm90dG9tOiAtMzBweDsKICAgIHJpZ2h0OiAxMCU7CiAgfQp9CgpAbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHsKICAuY2FybC1oZXJvLWN0YXMgewogICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwogIH0KCiAgLmNhcmwtaGVyby1zZWNvbmRhcnktc3RhY2sgewogICAgd2lkdGg6IDEwMCU7CiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICB9CgogIC5jYXJsLWhlcm8tYnRuIHsKICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgfQoKICAuY2FybC1oZXJvLWxpYnJhcnktbGluayB7CiAgICBtYXJnaW4tbGVmdDogMCAhaW1wb3J0YW50OwogICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDsKICAgIGFsaWduLXNlbGY6IGNlbnRlciAhaW1wb3J0YW50OwogIH0KCiAgLmNhcmwtaGVyby10YWdzIHsKICAgIG1heC13aWR0aDogMTAwJTsKICAgIGdhcDogOHB4OwogIH0KCiAgLmNhcmwtaGVyby10YWctcm93IHsKICAgIGZsZXgtd3JhcDogd3JhcDsKICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgZ2FwOiA4cHggMTBweDsKICB9CgogIC5jYXJsLXRhZyB7CiAgICBmb250LXNpemU6IDEwcHggIWltcG9ydGFudDsKICAgIHBhZGRpbmc6IDdweCAxMHB4ICFpbXBvcnRhbnQ7CiAgfQp9CgpAbWVkaWEgKG1heC13aWR0aDogNzY3cHgpIHsKICAuY2FybC1oZXJvLXZpc3VhbCB7CiAgICBkaXNwbGF5OiBub25lOwogIH0KCiAgLmNhcmwtaGVyby1oZWFkbGluZSB7CiAgICBmb250LXNpemU6IDJyZW07CiAgfQoKICAuY2FybC1oZXJvLWNvbnRlbnQgewogICAgcGFkZGluZzogMjhweCAyMHB4IDA7CiAgfQp9CgpAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkgewogIC5jYXJsLWhlcm8tYnRuLAogIC5jYXJsLWhlcm8tYnRuOmhvdmVyLAogIC5jYXJsLWhlcm8tYnRuIHNwYW4sCiAgLmNhcmwtaGVyby1idG46aG92ZXIgc3BhbiwKICAuY2FybC1oZXJvLWxpYnJhcnktbGluaywKICAuY2FybC1oZXJvLW1hc2NvdCB7CiAgICB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDsKICAgIGFuaW1hdGlvbjogbm9uZSAhaW1wb3J0YW50OwogIH0KfQo8L3N0eWxlPgo8c2NyaXB0PgooZnVuY3Rpb24gKCkgewogIHZhciBvbGRTdHlsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYXJsSGVyb1NvZnRIb3ZlckZpeCcpOwogIGlmIChvbGRTdHlsZSkgb2xkU3R5bGUucmVtb3ZlKCk7CgogIHZhciBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7CiAgc3R5bGUuaWQgPSAnY2FybEhlcm9Tb2Z0SG92ZXJGaXgnOwoKICBzdHlsZS50ZXh0Q29udGVudCA9IGAKICAgIC5jYXJsLWhlcm8tZnVsbHdpZHRoIHsKICAgICAgLS1jYXJsLWhlcm8taG92ZXItc3BlZWQ6IDY1MG1zOwogICAgICAtLWNhcmwtaGVyby1ob3Zlci1lYXNlOiBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKTsKICAgIH0KCiAgICAuY2FybC1oZXJvLWZ1bGx3aWR0aCBhLmNhcmwtaGVyby1idG4sCiAgICAuY2FybC1oZXJvLWZ1bGx3aWR0aCBhLmNhcmwtaGVyby1idG4gc3BhbiwKICAgIC5jYXJsLWhlcm8tZnVsbHdpZHRoIGEuY2FybC1oZXJvLWJ0bi1wcmltYXJ5LAogICAgLmNhcmwtaGVyby1mdWxsd2lkdGggYS5jYXJsLWhlcm8tYnRuLXNlY29uZGFyeSB7CiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IHZhcigtLWNhcmwtaGVyby1ob3Zlci1zcGVlZCkgIWltcG9ydGFudDsKICAgICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IHZhcigtLWNhcmwtaGVyby1ob3Zlci1lYXNlKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYXJsLWhlcm8tZnVsbHdpZHRoIGEuY2FybC1oZXJvLWJ0biB7CiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgYm94LXNoYWRvdywgYmFja2dyb3VuZC1jb2xvciwgY29sb3IsIGJvcmRlci1jb2xvciwgZmlsdGVyLCBvcGFjaXR5ICFpbXBvcnRhbnQ7CiAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIGJveC1zaGFkb3cgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2FybC1oZXJvLWZ1bGx3aWR0aCBhLmNhcmwtaGVyby1idG46aG92ZXIgewogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCkgIWltcG9ydGFudDsKICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhcmwtaGVyby1mdWxsd2lkdGggYS5jYXJsLWhlcm8tYnRuLXByaW1hcnk6aG92ZXIgewogICAgICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjNTljOWUxLCAjMDBlNWQzKSAhaW1wb3J0YW50OwogICAgICBib3gtc2hhZG93OiAwIDdweCAyMnB4IHJnYmEoMCwgNDUsIDc2LCAwLjE2KSAhaW1wb3J0YW50OwogICAgICBmaWx0ZXI6IGJyaWdodG5lc3MoMS4wMTUpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhcmwtaGVyby1mdWxsd2lkdGggYS5jYXJsLWhlcm8tYnRuLXNlY29uZGFyeTpob3ZlciB7CiAgICAgIGNvbG9yOiAjMDAxOTMwICFpbXBvcnRhbnQ7CiAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoODksIDIwMSwgMjI1LCAwLjA4KSAhaW1wb3J0YW50OwogICAgICBib3JkZXItY29sb3I6ICMwMEU1RDMgIWltcG9ydGFudDsKICAgICAgYm94LXNoYWRvdzogMCA3cHggMjJweCByZ2JhKDAsIDQ1LCA3NiwgMC4xMSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2FybC1oZXJvLWZ1bGx3aWR0aCBhLmNhcmwtaGVyby1idG4gc3BhbiB7CiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSAhaW1wb3J0YW50OwogICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhcmwtaGVyby1mdWxsd2lkdGggYS5jYXJsLWhlcm8tYnRuOmhvdmVyIHNwYW4gewogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMnB4KSAhaW1wb3J0YW50OwogICAgfQoKICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7CiAgICAgIC5jYXJsLWhlcm8tZnVsbHdpZHRoIGEuY2FybC1oZXJvLWJ0biwKICAgICAgLmNhcmwtaGVyby1mdWxsd2lkdGggYS5jYXJsLWhlcm8tYnRuOmhvdmVyLAogICAgICAuY2FybC1oZXJvLWZ1bGx3aWR0aCBhLmNhcmwtaGVyby1idG4gc3BhbiwKICAgICAgLmNhcmwtaGVyby1mdWxsd2lkdGggYS5jYXJsLWhlcm8tYnRuOmhvdmVyIHNwYW4gewogICAgICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsKICAgICAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDsKICAgICAgICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQogICAgfQogIGA7CgogIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc3R5bGUpOwp9KSgpOwo8L3NjcmlwdD4KCjwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICAgQ0FSTCBIT01FUEFHRQogICAgIEZ1bGwgb25lLWNvZGUtYmxvY2sgdmVyc2lvbgogICAgIFN0YW5kYWxvbmUsIGZ1bGwtd2lkdGgsIHNjb3BlZCwgaGFyZGNvZGVkIFBvcHBpbnMKICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLS0+Cgo8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNSI+CgogIDxzdHlsZT4KICAgIC5jYS1ob21lLTI2MDUwNSwKICAgIC5jYS1ob21lLTI2MDUwNSAqLAogICAgLmNhLWhvbWUtMjYwNTA1ICo6OmJlZm9yZSwKICAgIC5jYS1ob21lLTI2MDUwNSAqOjphZnRlciB7CiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3ggIWltcG9ydGFudDsKICAgICAgZm9udC1mYW1pbHk6ICdQb3BwaW5zJywgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAiU2Vnb2UgVUkiLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1IHsKICAgICAgLS1jYS1ob21lLW5hdnk6ICMwMDJENEM7CiAgICAgIC0tY2EtaG9tZS1uYXZ5LWRhcms6ICMwMDE5MzA7CiAgICAgIC0tY2EtaG9tZS1ibHVlOiAjNTlDOUUxOwogICAgICAtLWNhLWhvbWUtdGVhbDogIzAwRTVEMzsKICAgICAgLS1jYS1ob21lLWxpbWU6ICNBOEUwNjM7CiAgICAgIC0tY2EtaG9tZS1jb3JhbDogI0Y4ODM3OTsKICAgICAgLS1jYS1ob21lLXBpbms6ICNGNjcxRUE7CiAgICAgIC0tY2EtaG9tZS1tdXRlZDogIzVBNkM3RDsKICAgICAgLS1jYS1ob21lLXNvZnQ6ICNGQUZCRkE7CiAgICAgIC0tY2EtaG9tZS1saW5lOiByZ2JhKDAsNDUsNzYsMC4wOCk7CiAgICAgIC0tY2EtaG9tZS1zaGFkb3c6IDAgOHB4IDM0cHggcmdiYSgwLCA0NSwgNzYsIDAuMDc1KTsKICAgICAgLS1jYS1ob21lLXNoYWRvdy1ob3ZlcjogMCAxMHB4IDI4cHggcmdiYSgwLCA0NSwgNzYsIDAuMTApOwogICAgICAtLWNhLWhvbWUtc3BlZWQ6IDY1MG1zOwogICAgICAtLWNhLWhvbWUtZWFzZTogY3ViaWMtYmV6aWVyKDAuMTYsIDEsIDAuMywgMSk7CgogICAgICB3aWR0aDogMTAwdncgIWltcG9ydGFudDsKICAgICAgbWF4LXdpZHRoOiAxMDB2dyAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tbGVmdDogY2FsYyg1MCUgLSA1MHZ3KSAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tcmlnaHQ6IGNhbGMoNTAlIC0gNTB2dykgIWltcG9ydGFudDsKICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50OwogICAgICBvdmVyZmxvdy14OiBoaWRkZW4gIWltcG9ydGFudDsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7CiAgICAgIGlzb2xhdGlvbjogaXNvbGF0ZSAhaW1wb3J0YW50OwoKICAgICAgYmFja2dyb3VuZDogI0ZGRkZGRiAhaW1wb3J0YW50OwogICAgICBjb2xvcjogdmFyKC0tY2EtaG9tZS1uYXZ5KSAhaW1wb3J0YW50OwogICAgICBsaW5lLWhlaWdodDogMS41ICFpbXBvcnRhbnQ7CiAgICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDUgYSB7CiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OwogICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1IGltZywKICAgIC5jYS1ob21lLTI2MDUwNSBzdmcsCiAgICAuY2EtaG9tZS0yNjA1MDUgdmlkZW8gewogICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNSBidXR0b24gewogICAgICBmb250LWZhbWlseTogJ1BvcHBpbnMnLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICJTZWdvZSBVSSIsIFJvYm90bywgQXJpYWwsIHNhbnMtc2VyaWYgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2lubmVyIHsKICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKICAgICAgbWF4LXdpZHRoOiAxMjAwcHggIWltcG9ydGFudDsKICAgICAgbWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX3NlY3Rpb24gewogICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OwogICAgICBwYWRkaW5nOiA3OHB4IDMwcHggIWltcG9ydGFudDsKICAgICAgYmFja2dyb3VuZDogI0ZGRkZGRiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fc2VjdGlvbi1zb2Z0IHsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2EtaG9tZS1zb2Z0KSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fc2VjdGlvbi1kYXJrIHsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tY2EtaG9tZS1uYXZ5LWRhcmspLCB2YXIoLS1jYS1ob21lLW5hdnkpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fc2VjdGlvbi1oZWFkZXIgewogICAgICBtYXgtd2lkdGg6IDg2MHB4ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbjogMCBhdXRvIDQycHggIWltcG9ydGFudDsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19leWVicm93IHsKICAgICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICBnYXA6IDhweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW46IDAgMCAxMnB4IDAgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHZhcigtLWNhLWhvbWUtYmx1ZSkgIWltcG9ydGFudDsKICAgICAgZm9udC1zaXplOiAxM3B4ICFpbXBvcnRhbnQ7CiAgICAgIGZvbnQtd2VpZ2h0OiA4MDAgIWltcG9ydGFudDsKICAgICAgbGluZS1oZWlnaHQ6IDEuMiAhaW1wb3J0YW50OwogICAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtICFpbXBvcnRhbnQ7CiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2V5ZWJyb3ctZG90IHsKICAgICAgd2lkdGg6IDlweCAhaW1wb3J0YW50OwogICAgICBoZWlnaHQ6IDlweCAhaW1wb3J0YW50OwogICAgICBib3JkZXItcmFkaXVzOiA5OTlweCAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1jYS1ob21lLWJsdWUpLCB2YXIoLS1jYS1ob21lLXRlYWwpKSAhaW1wb3J0YW50OwogICAgICBmbGV4LXNocmluazogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fdGl0bGUteGwgewogICAgICBtYXJnaW46IDAgMCAyNHB4IDAgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHZhcigtLWNhLWhvbWUtbmF2eS1kYXJrKSAhaW1wb3J0YW50OwogICAgICBmb250LXNpemU6IGNsYW1wKDQwcHgsIDV2dywgNThweCkgIWltcG9ydGFudDsKICAgICAgZm9udC13ZWlnaHQ6IDgwMCAhaW1wb3J0YW50OwogICAgICBsaW5lLWhlaWdodDogMS4xMiAhaW1wb3J0YW50OwogICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDRlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fdGl0bGUtbGcgewogICAgICBtYXJnaW46IDAgMCAxMnB4IDAgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHZhcigtLWNhLWhvbWUtbmF2eS1kYXJrKSAhaW1wb3J0YW50OwogICAgICBmb250LXNpemU6IDMycHggIWltcG9ydGFudDsKICAgICAgZm9udC13ZWlnaHQ6IDgwMCAhaW1wb3J0YW50OwogICAgICBsaW5lLWhlaWdodDogMS4yNSAhaW1wb3J0YW50OwogICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDNlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fdGl0bGUtbWQgewogICAgICBtYXJnaW46IDAgMCAxMHB4IDAgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHZhcigtLWNhLWhvbWUtbmF2eS1kYXJrKSAhaW1wb3J0YW50OwogICAgICBmb250LXNpemU6IDIwcHggIWltcG9ydGFudDsKICAgICAgZm9udC13ZWlnaHQ6IDgwMCAhaW1wb3J0YW50OwogICAgICBsaW5lLWhlaWdodDogMS4zICFpbXBvcnRhbnQ7CiAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19jb3B5IHsKICAgICAgbWFyZ2luOiAwIDAgMThweCAwICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiB2YXIoLS1jYS1ob21lLW11dGVkKSAhaW1wb3J0YW50OwogICAgICBmb250LXNpemU6IDE2cHggIWltcG9ydGFudDsKICAgICAgZm9udC13ZWlnaHQ6IDQwMCAhaW1wb3J0YW50OwogICAgICBsaW5lLWhlaWdodDogMS43NSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fY29weTpsYXN0LWNoaWxkIHsKICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fYnRuLXJvdyB7CiAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsKICAgICAgZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7CiAgICAgIGdhcDogMTRweCAhaW1wb3J0YW50OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19idG4gewogICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7CiAgICAgIGdhcDogOHB4ICFpbXBvcnRhbnQ7CiAgICAgIG1pbi1oZWlnaHQ6IDQ4cHggIWltcG9ydGFudDsKICAgICAgcGFkZGluZzogMTRweCAyNnB4ICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4ICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlcjogMCAhaW1wb3J0YW50OwogICAgICBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDsKICAgICAgZm9udC13ZWlnaHQ6IDgwMCAhaW1wb3J0YW50OwogICAgICBsaW5lLWhlaWdodDogMSAhaW1wb3J0YW50OwogICAgICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDsKICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7CiAgICAgIHRyYW5zaXRpb246CiAgICAgICAgdHJhbnNmb3JtIHZhcigtLWNhLWhvbWUtc3BlZWQpIHZhcigtLWNhLWhvbWUtZWFzZSkgIWltcG9ydGFudCwKICAgICAgICBib3gtc2hhZG93IHZhcigtLWNhLWhvbWUtc3BlZWQpIHZhcigtLWNhLWhvbWUtZWFzZSkgIWltcG9ydGFudCwKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLWNhLWhvbWUtc3BlZWQpIHZhcigtLWNhLWhvbWUtZWFzZSkgIWltcG9ydGFudCwKICAgICAgICBjb2xvciB2YXIoLS1jYS1ob21lLXNwZWVkKSB2YXIoLS1jYS1ob21lLWVhc2UpICFpbXBvcnRhbnQsCiAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLWNhLWhvbWUtc3BlZWQpIHZhcigtLWNhLWhvbWUtZWFzZSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2J0bjpob3ZlciB7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KSAhaW1wb3J0YW50OwogICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2J0biBzcGFuIHsKICAgICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDsKICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIHZhcigtLWNhLWhvbWUtc3BlZWQpIHZhcigtLWNhLWhvbWUtZWFzZSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2J0bjpob3ZlciBzcGFuIHsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2J0bi1wcmltYXJ5IHsKICAgICAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzU5YzllMSwgIzAwZTVkMykgIWltcG9ydGFudDsKICAgICAgYm94LXNoYWRvdzogMCA0cHggMTRweCByZ2JhKDAsIDQ1LCA3NiwgMC4xMykgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2J0bi1wcmltYXJ5OmhvdmVyIHsKICAgICAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDsKICAgICAgYm94LXNoYWRvdzogMCA3cHggMjJweCByZ2JhKDAsIDQ1LCA3NiwgMC4xNikgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2J0bi1zZWNvbmRhcnkgewogICAgICBjb2xvcjogdmFyKC0tY2EtaG9tZS1uYXZ5KSAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kOiAjRkZGRkZGICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHZhcigtLWNhLWhvbWUtYmx1ZSkgIWltcG9ydGFudDsKICAgICAgYm94LXNoYWRvdzogMCA0cHggMTRweCByZ2JhKDAsIDQ1LCA3NiwgMC4wOCkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2J0bi1zZWNvbmRhcnk6aG92ZXIgewogICAgICBjb2xvcjogdmFyKC0tY2EtaG9tZS1uYXZ5LWRhcmspICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY2EtaG9tZS10ZWFsKSAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kOiByZ2JhKDg5LCAyMDEsIDIyNSwgMC4wOCkgIWltcG9ydGFudDsKICAgICAgYm94LXNoYWRvdzogMCA3cHggMjJweCByZ2JhKDAsIDQ1LCA3NiwgMC4xMSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2J0bi13aGl0ZSB7CiAgICAgIGNvbG9yOiB2YXIoLS1jYS1ob21lLW5hdnktZGFyaykgIWltcG9ydGFudDsKICAgICAgYmFja2dyb3VuZDogI0ZGRkZGRiAhaW1wb3J0YW50OwogICAgICBib3gtc2hhZG93OiAwIDRweCAxNHB4IHJnYmEoMCwgNDUsIDc2LCAwLjEzKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fYnRuLWRhcmsgewogICAgICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jYS1ob21lLW5hdnktZGFyaykgIWltcG9ydGFudDsKICAgICAgYm94LXNoYWRvdzogMCA0cHggMTRweCByZ2JhKDAsIDQ1LCA3NiwgMC4xMykgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2NhcmQgewogICAgICBiYWNrZ3JvdW5kOiAjRkZGRkZGICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNhLWhvbWUtbGluZSkgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXJhZGl1czogMjBweCAhaW1wb3J0YW50OwogICAgICBib3gtc2hhZG93OiB2YXIoLS1jYS1ob21lLXNoYWRvdykgIWltcG9ydGFudDsKICAgICAgdHJhbnNpdGlvbjoKICAgICAgICB0cmFuc2Zvcm0gdmFyKC0tY2EtaG9tZS1zcGVlZCkgdmFyKC0tY2EtaG9tZS1lYXNlKSAhaW1wb3J0YW50LAogICAgICAgIGJveC1zaGFkb3cgdmFyKC0tY2EtaG9tZS1zcGVlZCkgdmFyKC0tY2EtaG9tZS1lYXNlKSAhaW1wb3J0YW50LAogICAgICAgIGJvcmRlci1jb2xvciB2YXIoLS1jYS1ob21lLXNwZWVkKSB2YXIoLS1jYS1ob21lLWVhc2UpICFpbXBvcnRhbnQsCiAgICAgICAgYmFja2dyb3VuZC1jb2xvciB2YXIoLS1jYS1ob21lLXNwZWVkKSB2YXIoLS1jYS1ob21lLWVhc2UpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19jYXJkOmhvdmVyIHsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpICFpbXBvcnRhbnQ7CiAgICAgIGJveC1zaGFkb3c6IHZhcigtLWNhLWhvbWUtc2hhZG93LWhvdmVyKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC8qIEhFUk8gKi8KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2hlcm8gewogICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OwogICAgICBwYWRkaW5nOiA0OHB4IDIwcHggNTJweCAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kOgogICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMTAlIDEwJSwgcmdiYSgxNjgsMjI0LDk5LDAuMTApLCB0cmFuc3BhcmVudCAzNCUpLAogICAgICAgIHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgODYlIDIwJSwgcmdiYSg4OSwyMDEsMjI1LDAuMTMpLCB0cmFuc3BhcmVudCAzNCUpLAogICAgICAgICNGRkZGRkYgIWltcG9ydGFudDsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7CiAgICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2hlcm8tbGF5b3V0IHsKICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7CiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiAhaW1wb3J0YW50OwogICAgICBnYXA6IDAgIWltcG9ydGFudDsKICAgICAgbWluLWhlaWdodDogNTIwcHggIWltcG9ydGFudDsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19oZXJvLWNvbnRlbnQgewogICAgICBmbGV4OiAwIDAgNDQlICFpbXBvcnRhbnQ7CiAgICAgIG1heC13aWR0aDogNjIwcHggIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWxlZnQ6IDhweCBzb2xpZCB2YXIoLS1jYS1ob21lLWxpbWUpICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1yYWRpdXM6IDEycHggIWltcG9ydGFudDsKICAgICAgcGFkZGluZzogNDBweCAyOHB4IDQwcHggNDVweCAhaW1wb3J0YW50OwogICAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDsKICAgICAgei1pbmRleDogMiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9faGVyby1zdWJ0ZXh0IHsKICAgICAgbWF4LXdpZHRoOiA1NjBweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW46IDAgMCAzMnB4IDAgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHZhcigtLWNhLWhvbWUtbXV0ZWQpICFpbXBvcnRhbnQ7CiAgICAgIGZvbnQtc2l6ZTogMThweCAhaW1wb3J0YW50OwogICAgICBsaW5lLWhlaWdodDogMS42NSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9faGVyby10YWdzIHsKICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7CiAgICAgIGdhcDogMTBweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW46IDMwcHggMCAyMnB4IDAgIWltcG9ydGFudDsKICAgICAgbWF4LXdpZHRoOiA2MTBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9faGVyby10YWctcm93IHsKICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OwogICAgICBmbGV4LXdyYXA6IG5vd3JhcCAhaW1wb3J0YW50OwogICAgICBnYXA6IDEwcHggMTJweCAhaW1wb3J0YW50OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X190YWcgewogICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7CiAgICAgIGdhcDogNnB4ICFpbXBvcnRhbnQ7CiAgICAgIHBhZGRpbmc6IDdweCAxMXB4ICFpbXBvcnRhbnQ7CiAgICAgIGZvbnQtc2l6ZTogMTAuNXB4ICFpbXBvcnRhbnQ7CiAgICAgIGZvbnQtd2VpZ2h0OiA4MDAgIWltcG9ydGFudDsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2EtaG9tZS1uYXZ5KSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50OwogICAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB2YXIoLS1jYS1ob21lLWxpbWUpICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4ICFpbXBvcnRhbnQ7CiAgICAgIGxpbmUtaGVpZ2h0OiAxLjIgIWltcG9ydGFudDsKICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fdGFnIHN2ZyB7CiAgICAgIHdpZHRoOiAxNXB4ICFpbXBvcnRhbnQ7CiAgICAgIGhlaWdodDogMTVweCAhaW1wb3J0YW50OwogICAgICBmbGV4LXNocmluazogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fcHJvdmluY2VzIHsKICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjNzE4MDk2ICFpbXBvcnRhbnQ7CiAgICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50OwogICAgICBsaW5lLWhlaWdodDogMS41ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19oZXJvLXZpc3VhbCB7CiAgICAgIGZsZXg6IDAgMCA1NiUgIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXJpZ2h0OiAtNjBweCAhaW1wb3J0YW50OwogICAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDsKICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kICFpbXBvcnRhbnQ7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDsKICAgICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9faGVyby12aWRlby13cmFwIHsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7CiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgICAgIG1heC13aWR0aDogODUwcHggIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXJhZGl1czogMTZweCAhaW1wb3J0YW50OwogICAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7CiAgICAgIGJveC1zaGFkb3c6IDAgMjRweCA2NHB4IHJnYmEoMCwgMjUsIDQ4LCAwLjIwKSAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kOiAjRThFQUVDICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19oZXJvLXZpZGVvLW92ZXJsYXkgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDsKICAgICAgaW5zZXQ6IDAgIWltcG9ydGFudDsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSByaWdodCwgdHJhbnNwYXJlbnQgNDAlLCByZ2JhKDAsIDI1LCA0OCwgMC42NSkgMTAwJSkgIWltcG9ydGFudDsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmUgIWltcG9ydGFudDsKICAgICAgei1pbmRleDogMiAhaW1wb3J0YW50OwogICAgICBib3JkZXItcmFkaXVzOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIG9wYWNpdHk6IDAgIWltcG9ydGFudDsKICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSA0NTBtcyBlYXNlICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19oZXJvLXZpZGVvIHsKICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXJhZGl1czogMTZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9faGVyby1tYXNjb3QgewogICAgICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDsKICAgICAgYm90dG9tOiAtOTBweCAhaW1wb3J0YW50OwogICAgICByaWdodDogLTcwcHggIWltcG9ydGFudDsKICAgICAgd2lkdGg6IDYwMHB4ICFpbXBvcnRhbnQ7CiAgICAgIG1heC13aWR0aDogNjIlICFpbXBvcnRhbnQ7CiAgICAgIHotaW5kZXg6IDUgIWltcG9ydGFudDsKICAgICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDEycHggMzJweCByZ2JhKDAsIDI1LCA0OCwgMC4zMCkpICFpbXBvcnRhbnQ7CiAgICAgIGFuaW1hdGlvbjogY2FIb21lTWFzY290RmxvYXQgMy41cyBlYXNlLWluLW91dCBpbmZpbml0ZSAhaW1wb3J0YW50OwogICAgfQoKICAgIEBrZXlmcmFtZXMgY2FIb21lTWFzY290RmxvYXQgewogICAgICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfQogICAgICA1MCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLThweCk7IH0KICAgIH0KCgogICAgLyogUE9TSVRJT05JTkcgLyBXT1JLRkxPVyBTVE9SWSAqLwoKICAgIC5jYS1ob21lLTI2MDUwNV9fd29ya2Zsb3ctZ3JpZCB7CiAgICAgIGRpc3BsYXk6IGdyaWQgIWltcG9ydGFudDsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMC45NWZyKSBtaW5tYXgoMCwgMS4wNWZyKSAhaW1wb3J0YW50OwogICAgICBnYXA6IDIycHggIWltcG9ydGFudDsKICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2ggIWltcG9ydGFudDsKICAgICAgbWFyZ2luOiAwIDAgMjhweCAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X193b3JrZmxvdy1jYXJkIHsKICAgICAgcGFkZGluZzogMzBweCAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1sZWZ0OiA1cHggc29saWQgdmFyKC0tY2EtaG9tZS1saW1lKSAhaW1wb3J0YW50OwogICAgICBtaW4taGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X193b3JrZmxvdy1jYXJkLW11dGVkIHsKICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICNEOERFRTQgIWltcG9ydGFudDsKICAgICAgYmFja2dyb3VuZDogI0ZGRkZGRiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fd29ya2Zsb3ctY2FyZC1zdHJvbmcgewogICAgICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tY2EtaG9tZS1saW1lKSAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kOgogICAgICAgIGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHJnYmEoMTY4LDIyNCw5OSwwLjEwKSwgcmdiYSg4OSwyMDEsMjI1LDAuMDgpKSwKICAgICAgICAjRkZGRkZGICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X193b3JrZmxvdy1saXN0IHsKICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7CiAgICAgIGdhcDogMTJweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW46IDE4cHggMCAwICFpbXBvcnRhbnQ7CiAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDsKICAgICAgbGlzdC1zdHlsZTogbm9uZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fd29ya2Zsb3ctbGlzdCBsaSB7CiAgICAgIGRpc3BsYXk6IGdyaWQgIWltcG9ydGFudDsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyMnB4IG1pbm1heCgwLCAxZnIpICFpbXBvcnRhbnQ7CiAgICAgIGdhcDogMTBweCAhaW1wb3J0YW50OwogICAgICBhbGlnbi1pdGVtczogc3RhcnQgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHZhcigtLWNhLWhvbWUtbXV0ZWQpICFpbXBvcnRhbnQ7CiAgICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50OwogICAgICBsaW5lLWhlaWdodDogMS41NSAhaW1wb3J0YW50OwogICAgICBtYXJnaW46IDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX3dvcmtmbG93LWxpc3QtaWNvbiB7CiAgICAgIHdpZHRoOiAyMnB4ICFpbXBvcnRhbnQ7CiAgICAgIGhlaWdodDogMjJweCAhaW1wb3J0YW50OwogICAgICBib3JkZXItcmFkaXVzOiA1MCUgIWltcG9ydGFudDsKICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7CiAgICAgIGZsZXgtc2hyaW5rOiAwICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbi10b3A6IDFweCAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kOiAjRUVGMUY0ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiB2YXIoLS1jYS1ob21lLW11dGVkKSAhaW1wb3J0YW50OwogICAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDsKICAgICAgZm9udC13ZWlnaHQ6IDgwMCAhaW1wb3J0YW50OwogICAgICBsaW5lLWhlaWdodDogMSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fd29ya2Zsb3ctY2FyZC1zdHJvbmcgLmNhLWhvbWUtMjYwNTA1X193b3JrZmxvdy1saXN0LWljb24gewogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jYS1ob21lLWxpbWUpICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiB2YXIoLS1jYS1ob21lLW5hdnktZGFyaykgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2Zsb3ctc3RyaXAgewogICAgICBkaXNwbGF5OiBncmlkICFpbXBvcnRhbnQ7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIG1pbm1heCgwLCAxZnIpKSAhaW1wb3J0YW50OwogICAgICBnYXA6IDE0cHggIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXRvcDogMThweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fZmxvdy1zdGVwIHsKICAgICAgcGFkZGluZzogMjBweCAxOHB4ICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1yYWRpdXM6IDE4cHggIWltcG9ydGFudDsKICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2EtaG9tZS1saW5lKSAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kOiAjRkZGRkZGICFpbXBvcnRhbnQ7CiAgICAgIGJveC1zaGFkb3c6IDAgNXB4IDIwcHggcmdiYSgwLDQ1LDc2LDAuMDU1KSAhaW1wb3J0YW50OwogICAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDsKICAgICAgbWluLWhlaWdodDogMTAwJSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fZmxvdy1zdGVwOm50aC1jaGlsZCgxKSB7IGJvcmRlci10b3A6IDVweCBzb2xpZCB2YXIoLS1jYS1ob21lLWJsdWUpICFpbXBvcnRhbnQ7IH0KICAgIC5jYS1ob21lLTI2MDUwNV9fZmxvdy1zdGVwOm50aC1jaGlsZCgyKSB7IGJvcmRlci10b3A6IDVweCBzb2xpZCB2YXIoLS1jYS1ob21lLWxpbWUpICFpbXBvcnRhbnQ7IH0KICAgIC5jYS1ob21lLTI2MDUwNV9fZmxvdy1zdGVwOm50aC1jaGlsZCgzKSB7IGJvcmRlci10b3A6IDVweCBzb2xpZCB2YXIoLS1jYS1ob21lLXBpbmspICFpbXBvcnRhbnQ7IH0KICAgIC5jYS1ob21lLTI2MDUwNV9fZmxvdy1zdGVwOm50aC1jaGlsZCg0KSB7IGJvcmRlci10b3A6IDVweCBzb2xpZCB2YXIoLS1jYS1ob21lLXRlYWwpICFpbXBvcnRhbnQ7IH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2Zsb3ctbnVtYmVyIHsKICAgICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICB3aWR0aDogMjhweCAhaW1wb3J0YW50OwogICAgICBoZWlnaHQ6IDI4cHggIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbi1ib3R0b206IDEycHggIWltcG9ydGFudDsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2EtaG9tZS1uYXZ5LWRhcmspICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7CiAgICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50OwogICAgICBmb250LXdlaWdodDogODAwICFpbXBvcnRhbnQ7CiAgICAgIGxpbmUtaGVpZ2h0OiAxICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19mbG93LXRpdGxlIHsKICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsKICAgICAgbWFyZ2luOiAwIDAgN3B4ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiB2YXIoLS1jYS1ob21lLW5hdnktZGFyaykgIWltcG9ydGFudDsKICAgICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7CiAgICAgIGZvbnQtd2VpZ2h0OiA4MDAgIWltcG9ydGFudDsKICAgICAgbGluZS1oZWlnaHQ6IDEuMzUgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2Zsb3ctY29weSB7CiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogdmFyKC0tY2EtaG9tZS1tdXRlZCkgIWltcG9ydGFudDsKICAgICAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIGxpbmUtaGVpZ2h0OiAxLjU1ICFpbXBvcnRhbnQ7CiAgICB9CgoKICAgIC5jYS1ob21lLTI2MDUwNV9fZmxvdy1saW5rIHsKICAgICAgY29sb3I6ICMwMEI4QTkgIWltcG9ydGFudDsKICAgICAgZm9udC13ZWlnaHQ6IDgwMCAhaW1wb3J0YW50OwogICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHJnYmEoMCwgMjI5LCAyMTEsIDAuNDUpICFpbXBvcnRhbnQ7CiAgICAgIHRyYW5zaXRpb246CiAgICAgICAgY29sb3IgdmFyKC0tY2EtaG9tZS1zcGVlZCkgdmFyKC0tY2EtaG9tZS1lYXNlKSAhaW1wb3J0YW50LAogICAgICAgIGJvcmRlci1jb2xvciB2YXIoLS1jYS1ob21lLXNwZWVkKSB2YXIoLS1jYS1ob21lLWVhc2UpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19mbG93LWxpbms6aG92ZXIgewogICAgICBjb2xvcjogdmFyKC0tY2EtaG9tZS1uYXZ5LWRhcmspICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY2EtaG9tZS10ZWFsKSAhaW1wb3J0YW50OwogICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDsKICAgIH0KCiAgICAvKiBMQU5HVUFHRSArIEVDT1NZU1RFTSBTRUNUSU9OUyAqLwoKICAgIC5jYS1ob21lLTI2MDUwNV9fc3BvdGxpZ2h0LWdyaWQgewogICAgICBkaXNwbGF5OiBncmlkICFpbXBvcnRhbnQ7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDAuOWZyKSBtaW5tYXgoMCwgMS4xZnIpICFpbXBvcnRhbnQ7CiAgICAgIGdhcDogMjRweCAhaW1wb3J0YW50OwogICAgICBhbGlnbi1pdGVtczogc3RyZXRjaCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fc3BvdGxpZ2h0LWNhcmQgewogICAgICBwYWRkaW5nOiAzMHB4IDI4cHggIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCB2YXIoLS1jYS1ob21lLWJsdWUpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19zcG90bGlnaHQtY2FyZDpudGgtY2hpbGQoMikgewogICAgICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tY2EtaG9tZS1waW5rKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fbGFuZ3VhZ2Utc2FtcGxlIHsKICAgICAgcGFkZGluZzogMjRweCAhaW1wb3J0YW50OwogICAgICBib3JkZXItcmFkaXVzOiAxOHB4ICFpbXBvcnRhbnQ7CiAgICAgIGJhY2tncm91bmQ6ICNGRkZGRkYgIWltcG9ydGFudDsKICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLDQ1LDc2LDAuMDgpICFpbXBvcnRhbnQ7CiAgICAgIGJveC1zaGFkb3c6IHZhcigtLWNhLWhvbWUtc2hhZG93KSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fbGFuZ3VhZ2UtbGFiZWwgewogICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7CiAgICAgIGdhcDogNnB4ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbi1ib3R0b206IDE0cHggIWltcG9ydGFudDsKICAgICAgcGFkZGluZzogNnB4IDEwcHggIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXJhZGl1czogOTk5cHggIWltcG9ydGFudDsKICAgICAgYmFja2dyb3VuZDogcmdiYSg4OSwyMDEsMjI1LDAuMTMpICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiB2YXIoLS1jYS1ob21lLW5hdnktZGFyaykgIWltcG9ydGFudDsKICAgICAgZm9udC1zaXplOiAxMXB4ICFpbXBvcnRhbnQ7CiAgICAgIGZvbnQtd2VpZ2h0OiA4MDAgIWltcG9ydGFudDsKICAgICAgbGluZS1oZWlnaHQ6IDEuMiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fc2FtcGxlLXRpdGxlIHsKICAgICAgbWFyZ2luOiAwIDAgMTBweCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogdmFyKC0tY2EtaG9tZS1uYXZ5LWRhcmspICFpbXBvcnRhbnQ7CiAgICAgIGZvbnQtc2l6ZTogMThweCAhaW1wb3J0YW50OwogICAgICBmb250LXdlaWdodDogODAwICFpbXBvcnRhbnQ7CiAgICAgIGxpbmUtaGVpZ2h0OiAxLjM1ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19zYW1wbGUtY29weSB7CiAgICAgIG1hcmdpbjogMCAwIDEycHggIWltcG9ydGFudDsKICAgICAgY29sb3I6IHZhcigtLWNhLWhvbWUtbXV0ZWQpICFpbXBvcnRhbnQ7CiAgICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50OwogICAgICBsaW5lLWhlaWdodDogMS43ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19tb2RlLXBpbGxzIHsKICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OwogICAgICBmbGV4LXdyYXA6IHdyYXAgIWltcG9ydGFudDsKICAgICAgZ2FwOiA4cHggIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXRvcDogMThweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fbW9kZS1waWxsIHsKICAgICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICBwYWRkaW5nOiA3cHggMTBweCAhaW1wb3J0YW50OwogICAgICBib3JkZXItcmFkaXVzOiA5OTlweCAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kOiByZ2JhKDE2OCwyMjQsOTksMC4xNykgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHZhcigtLWNhLWhvbWUtbmF2eS1kYXJrKSAhaW1wb3J0YW50OwogICAgICBmb250LXNpemU6IDExcHggIWltcG9ydGFudDsKICAgICAgZm9udC13ZWlnaHQ6IDgwMCAhaW1wb3J0YW50OwogICAgICBsaW5lLWhlaWdodDogMS4yICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19lY29zeXN0ZW0tZ3JpZCB7CiAgICAgIGRpc3BsYXk6IGdyaWQgIWltcG9ydGFudDsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpICFpbXBvcnRhbnQ7CiAgICAgIGdhcDogMjJweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tdG9wOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19lY29zeXN0ZW0tY2FyZCB7CiAgICAgIHBhZGRpbmc6IDMycHggMzBweCAhaW1wb3J0YW50OwogICAgICBib3JkZXItbGVmdDogNnB4IHNvbGlkIHZhcigtLWNhLWhvbWUtbGltZSkgIWltcG9ydGFudDsKICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OwogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7CiAgICAgIG1pbi1oZWlnaHQ6IDEwMCUgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2Vjb3N5c3RlbS1jYXJkOm50aC1jaGlsZCgyKSB7CiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1jYS1ob21lLXRlYWwpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19lY29zeXN0ZW0tYmFkZ2UgewogICAgICB3aWR0aDogZml0LWNvbnRlbnQgIWltcG9ydGFudDsKICAgICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICBtYXJnaW46IDAgMCAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIHBhZGRpbmc6IDdweCAxMXB4ICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4ICFpbXBvcnRhbnQ7CiAgICAgIGJhY2tncm91bmQ6IHJnYmEoODksMjAxLDIyNSwwLjEzKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogdmFyKC0tY2EtaG9tZS1uYXZ5LWRhcmspICFpbXBvcnRhbnQ7CiAgICAgIGZvbnQtc2l6ZTogMTFweCAhaW1wb3J0YW50OwogICAgICBmb250LXdlaWdodDogODAwICFpbXBvcnRhbnQ7CiAgICAgIGxpbmUtaGVpZ2h0OiAxLjIgIWltcG9ydGFudDsKICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhaW1wb3J0YW50OwogICAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLyogSE9XIElUIFdPUktTICovCgogICAgLmNhLWhvbWUtMjYwNTA1X190YWJzIHsKICAgICAgZGlzcGxheTogZ3JpZCAhaW1wb3J0YW50OwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCBtaW5tYXgoMCwgMWZyKSkgIWltcG9ydGFudDsKICAgICAgZ2FwOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbjogMCAwIDI4cHggMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fdGFiIHsKICAgICAgYXBwZWFyYW5jZTogbm9uZSAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kOiAjRkZGRkZGICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNhLWhvbWUtbGluZSkgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCAjRThFOEU4ICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1yYWRpdXM6IDE0cHggIWltcG9ydGFudDsKICAgICAgYm94LXNoYWRvdzogMCA0cHggMThweCByZ2JhKDAsNDUsNzYsMC4wNDUpICFpbXBvcnRhbnQ7CiAgICAgIHBhZGRpbmc6IDE2cHggIWltcG9ydGFudDsKICAgICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7CiAgICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDsKICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OwogICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydCAhaW1wb3J0YW50OwogICAgICBnYXA6IDEycHggIWltcG9ydGFudDsKICAgICAgb3BhY2l0eTogMC43OCAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uOgogICAgICAgIG9wYWNpdHkgdmFyKC0tY2EtaG9tZS1zcGVlZCkgdmFyKC0tY2EtaG9tZS1lYXNlKSAhaW1wb3J0YW50LAogICAgICAgIHRyYW5zZm9ybSB2YXIoLS1jYS1ob21lLXNwZWVkKSB2YXIoLS1jYS1ob21lLWVhc2UpICFpbXBvcnRhbnQsCiAgICAgICAgYm94LXNoYWRvdyB2YXIoLS1jYS1ob21lLXNwZWVkKSB2YXIoLS1jYS1ob21lLWVhc2UpICFpbXBvcnRhbnQsCiAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLWNhLWhvbWUtc3BlZWQpIHZhcigtLWNhLWhvbWUtZWFzZSkgIWltcG9ydGFudCwKICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLWNhLWhvbWUtc3BlZWQpIHZhcigtLWNhLWhvbWUtZWFzZSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX3RhYjpob3ZlciB7CiAgICAgIG9wYWNpdHk6IDAuOTUgIWltcG9ydGFudDsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpICFpbXBvcnRhbnQ7CiAgICAgIGJveC1zaGFkb3c6IHZhcigtLWNhLWhvbWUtc2hhZG93LWhvdmVyKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fdGFiLmlzLWFjdGl2ZSB7CiAgICAgIG9wYWNpdHk6IDEgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWNvbG9yOiByZ2JhKDg5LDIwMSwyMjUsMC4yMikgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWNhLWhvbWUtbGltZSkgIWltcG9ydGFudDsKICAgICAgYmFja2dyb3VuZDogI0ZGRkZGRiAhaW1wb3J0YW50OwogICAgICBib3gtc2hhZG93OiB2YXIoLS1jYS1ob21lLXNoYWRvdykgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX3RhYltkYXRhLWhvbWUtdGFiPSJ1cGxvYWQiXS5pcy1hY3RpdmUsCiAgICAuY2EtaG9tZS0yNjA1MDVfX3RhYltkYXRhLWhvbWUtdGFiPSJyZW1peCJdLmlzLWFjdGl2ZSB7CiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1jYS1ob21lLXBpbmspICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X190YWJbZGF0YS1ob21lLXRhYj0iY2hhdCJdLmlzLWFjdGl2ZSB7CiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1jYS1ob21lLXRlYWwpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X190YWItaWNvbiB7CiAgICAgIHdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIGhlaWdodDogNDBweCAhaW1wb3J0YW50OwogICAgICBib3JkZXItcmFkaXVzOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICBmbGV4LXNocmluazogMCAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kOiByZ2JhKDg5LDIwMSwyMjUsMC4xNSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX3RhYltkYXRhLWhvbWUtdGFiPSJ1cGxvYWQiXSAuY2EtaG9tZS0yNjA1MDVfX3RhYi1pY29uIHsKICAgICAgYmFja2dyb3VuZDogcmdiYSgyNDYsMTEzLDIzNCwwLjEyKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fdGFiW2RhdGEtaG9tZS10YWI9InJlbWl4Il0gLmNhLWhvbWUtMjYwNTA1X190YWItaWNvbiB7CiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTY4LDIyNCw5OSwwLjE4KSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fdGFiW2RhdGEtaG9tZS10YWI9ImNoYXQiXSAuY2EtaG9tZS0yNjA1MDVfX3RhYi1pY29uIHsKICAgICAgYmFja2dyb3VuZDogcmdiYSgwLDIyOSwyMTEsMC4xMikgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX3RhYi1pY29uIHN2ZyB7CiAgICAgIHdpZHRoOiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIGhlaWdodDogMjBweCAhaW1wb3J0YW50OwogICAgICBmaWxsOiBub25lICFpbXBvcnRhbnQ7CiAgICAgIHN0cm9rZS13aWR0aDogMi4yICFpbXBvcnRhbnQ7CiAgICAgIHN0cm9rZS1saW5lY2FwOiByb3VuZCAhaW1wb3J0YW50OwogICAgICBzdHJva2UtbGluZWpvaW46IHJvdW5kICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X190YWItdGl0bGUgewogICAgICBjb2xvcjogdmFyKC0tY2EtaG9tZS1uYXZ5LWRhcmspICFpbXBvcnRhbnQ7CiAgICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50OwogICAgICBmb250LXdlaWdodDogODAwICFpbXBvcnRhbnQ7CiAgICAgIGxpbmUtaGVpZ2h0OiAxLjMgIWltcG9ydGFudDsKICAgICAgbWFyZ2luOiAwIDAgNHB4IDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX3RhYi1zdWIgewogICAgICBjb2xvcjogdmFyKC0tY2EtaG9tZS1tdXRlZCkgIWltcG9ydGFudDsKICAgICAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQ1ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fbWluaS1iYWRnZSB7CiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDsKICAgICAgZ2FwOiA0cHggIWltcG9ydGFudDsKICAgICAgbWFyZ2luOiAzcHggMCA1cHggIWltcG9ydGFudDsKICAgICAgcGFkZGluZzogM3B4IDhweCAhaW1wb3J0YW50OwogICAgICBib3JkZXItcmFkaXVzOiA5OTlweCAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1jYS1ob21lLWJsdWUpLCB2YXIoLS1jYS1ob21lLXRlYWwpKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50OwogICAgICBmb250LXNpemU6IDlweCAhaW1wb3J0YW50OwogICAgICBmb250LXdlaWdodDogODAwICFpbXBvcnRhbnQ7CiAgICAgIGxpbmUtaGVpZ2h0OiAxLjIgIWltcG9ydGFudDsKICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbSAhaW1wb3J0YW50OwogICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19taW5pLWJhZGdlLXBpbmsgewogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1jYS1ob21lLXBpbmspLCB2YXIoLS1jYS1ob21lLWNvcmFsKSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX3BhbmVsIHsKICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fcGFuZWwuaXMtYWN0aXZlIHsKICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX21lZGlhIHsKICAgICAgYm9yZGVyLXJhZGl1czogMThweCAhaW1wb3J0YW50OwogICAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7CiAgICAgIGJveC1zaGFkb3c6IDAgMTJweCA0MHB4IHJnYmEoMCw0NSw3NiwwLjEzKSAhaW1wb3J0YW50OwogICAgICBib3JkZXItbGVmdDogNXB4IHNvbGlkIHZhcigtLWNhLWhvbWUtbGltZSkgIWltcG9ydGFudDsKICAgICAgYmFja2dyb3VuZDogI0ZGRkZGRiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fcGFuZWxbZGF0YS1ob21lLXBhbmVsPSJ1cGxvYWQiXSAuY2EtaG9tZS0yNjA1MDVfX21lZGlhLAogICAgLmNhLWhvbWUtMjYwNTA1X19wYW5lbFtkYXRhLWhvbWUtcGFuZWw9InJlbWl4Il0gLmNhLWhvbWUtMjYwNTA1X19tZWRpYSB7CiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1jYS1ob21lLXBpbmspICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19wYW5lbFtkYXRhLWhvbWUtcGFuZWw9ImNoYXQiXSAuY2EtaG9tZS0yNjA1MDVfX21lZGlhIHsKICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWNhLWhvbWUtdGVhbCkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX21lZGlhIGltZyB7CiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OwogICAgICBib3JkZXI6IDAgIWltcG9ydGFudDsKICAgIH0KCgogICAgLmNhLWhvbWUtMjYwNTA1X19tZWRpYSB2aWRlbywKICAgIC5jYS1ob21lLTI2MDUwNV9fc3RhcnQtdmlkZW8gewogICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OwogICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsKICAgICAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2NhcHRpb24gewogICAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsKICAgICAgbWFyZ2luOiAxNnB4IDAgMCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogdmFyKC0tY2EtaG9tZS1tdXRlZCkgIWltcG9ydGFudDsKICAgICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7CiAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYyAhaW1wb3J0YW50OwogICAgICBsaW5lLWhlaWdodDogMS42ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19jYXB0aW9uIGEgewogICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7CiAgICAgIGdhcDogNXB4ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjMDBCOEE5ICFpbXBvcnRhbnQ7CiAgICAgIGZvbnQtd2VpZ2h0OiA4MDAgIWltcG9ydGFudDsKICAgICAgdHJhbnNpdGlvbjoKICAgICAgICBnYXAgdmFyKC0tY2EtaG9tZS1zcGVlZCkgdmFyKC0tY2EtaG9tZS1lYXNlKSAhaW1wb3J0YW50LAogICAgICAgIGNvbG9yIHZhcigtLWNhLWhvbWUtc3BlZWQpIHZhcigtLWNhLWhvbWUtZWFzZSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2NhcHRpb24gYTpob3ZlciB7CiAgICAgIGdhcDogOXB4ICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiB2YXIoLS1jYS1ob21lLXRlYWwpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLyogVEVBQ0hJTkcgUEFDS0FHRSAqLwoKICAgIC5jYS1ob21lLTI2MDUwNV9fcGFja2FnZS1ncmlkIHsKICAgICAgZGlzcGxheTogZ3JpZCAhaW1wb3J0YW50OwogICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSkgIWltcG9ydGFudDsKICAgICAgZ2FwOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbjogMCAwIDM0cHggMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fcGFja2FnZS1jYXJkIHsKICAgICAgcGFkZGluZzogMzBweCAyNnB4ICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1sZWZ0OiA1cHggc29saWQgdmFyKC0tY2EtaG9tZS1saW1lKSAhaW1wb3J0YW50OwogICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDsKICAgICAgbWluLWhlaWdodDogMTAwJSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fcGFja2FnZS1jYXJkOm50aC1jaGlsZCgyKSB7CiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1jYS1ob21lLXBpbmspICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19wYWNrYWdlLWNhcmQ6bnRoLWNoaWxkKDMpIHsKICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWNhLWhvbWUtdGVhbCkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX3BhY2thZ2UtaWNvbiB7CiAgICAgIHdpZHRoOiA1MnB4ICFpbXBvcnRhbnQ7CiAgICAgIGhlaWdodDogNTJweCAhaW1wb3J0YW50OwogICAgICBib3JkZXItcmFkaXVzOiAxNHB4ICFpbXBvcnRhbnQ7CiAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICBtYXJnaW46IDAgMCAxOHB4IDAgIWltcG9ydGFudDsKICAgICAgYmFja2dyb3VuZDogcmdiYSg4OSwyMDEsMjI1LDAuMTUpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19wYWNrYWdlLWNhcmQ6bnRoLWNoaWxkKDIpIC5jYS1ob21lLTI2MDUwNV9fcGFja2FnZS1pY29uIHsKICAgICAgYmFja2dyb3VuZDogcmdiYSgyNDYsMTEzLDIzNCwwLjEyKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fcGFja2FnZS1jYXJkOm50aC1jaGlsZCgzKSAuY2EtaG9tZS0yNjA1MDVfX3BhY2thZ2UtaWNvbiB7CiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwyMjksMjExLDAuMTIpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19wYWNrYWdlLWljb24gc3ZnIHsKICAgICAgd2lkdGg6IDI2cHggIWltcG9ydGFudDsKICAgICAgaGVpZ2h0OiAyNnB4ICFpbXBvcnRhbnQ7CiAgICAgIGZpbGw6IG5vbmUgIWltcG9ydGFudDsKICAgICAgc3Ryb2tlLXdpZHRoOiAyLjIgIWltcG9ydGFudDsKICAgICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kICFpbXBvcnRhbnQ7CiAgICAgIHN0cm9rZS1saW5lam9pbjogcm91bmQgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX3BhY2thZ2UtdGl0bGUgewogICAgICBtYXJnaW46IDAgMCAxOHB4IDAgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHZhcigtLWNhLWhvbWUtbmF2eS1kYXJrKSAhaW1wb3J0YW50OwogICAgICBmb250LXNpemU6IDI4cHggIWltcG9ydGFudDsKICAgICAgZm9udC13ZWlnaHQ6IDgwMCAhaW1wb3J0YW50OwogICAgICBsaW5lLWhlaWdodDogMSAhaW1wb3J0YW50OwogICAgICBsZXR0ZXItc3BhY2luZzogLTAuMDRlbSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fcnVsZSB7CiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgICAgIGhlaWdodDogMXB4ICFpbXBvcnRhbnQ7CiAgICAgIGJhY2tncm91bmQ6ICNGMkYyRjIgIWltcG9ydGFudDsKICAgICAgbWFyZ2luOiAwIDAgMThweCAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19mZWF0dXJlLWxpc3QgewogICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7CiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDsKICAgICAgZ2FwOiAxNnB4ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50OwogICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7CiAgICAgIGZsZXg6IDEgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtaXRlbSB7CiAgICAgIGRpc3BsYXk6IGdyaWQgIWltcG9ydGFudDsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAyMnB4IG1pbm1heCgwLCAxZnIpICFpbXBvcnRhbnQ7CiAgICAgIGdhcDogMTFweCAhaW1wb3J0YW50OwogICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fY2hlY2sgewogICAgICB3aWR0aDogMjJweCAhaW1wb3J0YW50OwogICAgICBoZWlnaHQ6IDIycHggIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNhLWhvbWUtbGltZSkgIWltcG9ydGFudDsKICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7CiAgICAgIGZsZXgtc2hyaW5rOiAwICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbi10b3A6IDFweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fY2hlY2sgc3ZnIHsKICAgICAgd2lkdGg6IDExcHggIWltcG9ydGFudDsKICAgICAgaGVpZ2h0OiAxMXB4ICFpbXBvcnRhbnQ7CiAgICAgIGZpbGw6IG5vbmUgIWltcG9ydGFudDsKICAgICAgc3Ryb2tlOiB2YXIoLS1jYS1ob21lLW5hdnktZGFyaykgIWltcG9ydGFudDsKICAgICAgc3Ryb2tlLXdpZHRoOiAxLjggIWltcG9ydGFudDsKICAgICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kICFpbXBvcnRhbnQ7CiAgICAgIHN0cm9rZS1saW5lam9pbjogcm91bmQgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtbmFtZSB7CiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiB2YXIoLS1jYS1ob21lLW5hdnktZGFyaykgIWltcG9ydGFudDsKICAgICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7CiAgICAgIGZvbnQtd2VpZ2h0OiA4MDAgIWltcG9ydGFudDsKICAgICAgbGluZS1oZWlnaHQ6IDEuMyAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fZmVhdHVyZS1zdWIgewogICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OwogICAgICBjb2xvcjogdmFyKC0tY2EtaG9tZS1tdXRlZCkgIWltcG9ydGFudDsKICAgICAgZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIGZvbnQtd2VpZ2h0OiA0MDAgIWltcG9ydGFudDsKICAgICAgbGluZS1oZWlnaHQ6IDEuNDUgIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXRvcDogMnB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLyogV09SS1NQQUNFICovCgogICAgLmNhLWhvbWUtMjYwNTA1X193b3Jrc3BhY2UtZ3JpZCB7CiAgICAgIGRpc3BsYXk6IGdyaWQgIWltcG9ydGFudDsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpICFpbXBvcnRhbnQ7CiAgICAgIGdhcDogMjBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fd29ya3NwYWNlLWNhcmQgewogICAgICBhcHBlYXJhbmNlOiBub25lICFpbXBvcnRhbnQ7CiAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDsKICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY2EtaG9tZS1saW5lKSAhaW1wb3J0YW50OwogICAgICBib3JkZXItbGVmdDogNXB4IHNvbGlkIHZhcigtLWNhLWhvbWUtbGltZSkgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXJhZGl1czogMThweCAhaW1wb3J0YW50OwogICAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7CiAgICAgIGJhY2tncm91bmQ6ICNGRkZGRkYgIWltcG9ydGFudDsKICAgICAgYm94LXNoYWRvdzogdmFyKC0tY2EtaG9tZS1zaGFkb3cpICFpbXBvcnRhbnQ7CiAgICAgIGN1cnNvcjogem9vbS1pbiAhaW1wb3J0YW50OwogICAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7CiAgICAgIHRyYW5zaXRpb246CiAgICAgICAgdHJhbnNmb3JtIHZhcigtLWNhLWhvbWUtc3BlZWQpIHZhcigtLWNhLWhvbWUtZWFzZSkgIWltcG9ydGFudCwKICAgICAgICBib3gtc2hhZG93IHZhcigtLWNhLWhvbWUtc3BlZWQpIHZhcigtLWNhLWhvbWUtZWFzZSkgIWltcG9ydGFudCwKICAgICAgICBib3JkZXItY29sb3IgdmFyKC0tY2EtaG9tZS1zcGVlZCkgdmFyKC0tY2EtaG9tZS1lYXNlKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fd29ya3NwYWNlLWNhcmQ6aG92ZXIgewogICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCkgIWltcG9ydGFudDsKICAgICAgYm94LXNoYWRvdzogdmFyKC0tY2EtaG9tZS1zaGFkb3ctaG92ZXIpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X193b3Jrc3BhY2UtY2FyZDpudGgtY2hpbGQoMikgewogICAgICBib3JkZXItbGVmdC1jb2xvcjogdmFyKC0tY2EtaG9tZS1ibHVlKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fd29ya3NwYWNlLWNhcmQ6bnRoLWNoaWxkKDMpIHsKICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWNhLWhvbWUtcGluaykgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX3dvcmtzcGFjZS1jYXJkOm50aC1jaGlsZCg0KSB7CiAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiB2YXIoLS1jYS1ob21lLXRlYWwpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X193b3Jrc3BhY2UtY2FyZCBpbWcgewogICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OwogICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNGMEYwRjAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX3dvcmtzcGFjZS1mb290ZXIgewogICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDsKICAgICAgZ2FwOiAxMHB4ICFpbXBvcnRhbnQ7CiAgICAgIHBhZGRpbmc6IDEzcHggMTZweCAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kOiAjRkZGRkZGICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X193b3Jrc3BhY2UtZG90IHsKICAgICAgd2lkdGg6IDhweCAhaW1wb3J0YW50OwogICAgICBoZWlnaHQ6IDhweCAhaW1wb3J0YW50OwogICAgICBib3JkZXItcmFkaXVzOiA1MCUgIWltcG9ydGFudDsKICAgICAgZmxleC1zaHJpbms6IDAgIWltcG9ydGFudDsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2EtaG9tZS1saW1lKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fd29ya3NwYWNlLWNhcmQ6bnRoLWNoaWxkKDIpIC5jYS1ob21lLTI2MDUwNV9fd29ya3NwYWNlLWRvdCB7CiAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNhLWhvbWUtYmx1ZSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX3dvcmtzcGFjZS1jYXJkOm50aC1jaGlsZCgzKSAuY2EtaG9tZS0yNjA1MDVfX3dvcmtzcGFjZS1kb3QgewogICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jYS1ob21lLXBpbmspICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X193b3Jrc3BhY2UtY2FyZDpudGgtY2hpbGQoNCkgLmNhLWhvbWUtMjYwNTA1X193b3Jrc3BhY2UtZG90IHsKICAgICAgYmFja2dyb3VuZDogdmFyKC0tY2EtaG9tZS10ZWFsKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fd29ya3NwYWNlLWxhYmVsIHsKICAgICAgY29sb3I6IHZhcigtLWNhLWhvbWUtbmF2eS1kYXJrKSAhaW1wb3J0YW50OwogICAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDsKICAgICAgZm9udC13ZWlnaHQ6IDgwMCAhaW1wb3J0YW50OwogICAgICBsaW5lLWhlaWdodDogMS4zICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X193b3Jrc3BhY2UtY2FwdGlvbiB7CiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIGNvbG9yOiAjOEI5NUEwICFpbXBvcnRhbnQ7CiAgICAgIGZvbnQtc2l6ZTogMTFweCAhaW1wb3J0YW50OwogICAgICBmb250LXN0eWxlOiBpdGFsaWMgIWltcG9ydGFudDsKICAgICAgbGluZS1oZWlnaHQ6IDEuMyAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fY2FsbG91dHMgewogICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7CiAgICAgIGdhcDogMzRweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW4tdG9wOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIGZsZXgtd3JhcDogd3JhcCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fY2FsbG91dCB7CiAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICBnYXA6IDlweCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogdmFyKC0tY2EtaG9tZS1uYXZ5LWRhcmspICFpbXBvcnRhbnQ7CiAgICAgIGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50OwogICAgICBmb250LXdlaWdodDogODAwICFpbXBvcnRhbnQ7CiAgICAgIGxpbmUtaGVpZ2h0OiAxLjMgIWltcG9ydGFudDsKICAgIH0KCiAgICAvKiBURVNUSU1PTklBTFMgKi8KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmVkLXF1b3RlIHsKICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7CiAgICAgIGdhcDogMjRweCAhaW1wb3J0YW50OwogICAgICBtYXJnaW46IDAgMCAxOHB4IDAgIWltcG9ydGFudDsKICAgICAgcGFkZGluZzogMjhweCAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHggIWltcG9ydGFudDsKICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgdmFyKC0tY2EtaG9tZS1uYXZ5LWRhcmspLCB2YXIoLS1jYS1ob21lLW5hdnkpKSAhaW1wb3J0YW50OwogICAgICBib3JkZXItbGVmdDogNnB4IHNvbGlkIHZhcigtLWNhLWhvbWUtcGluaykgIWltcG9ydGFudDsKICAgICAgYm94LXNoYWRvdzogMCAxMnB4IDM0cHggcmdiYSgwLDQ1LDc2LDAuMTYpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19xdW90ZS1hdmF0YXIgewogICAgICB3aWR0aDogNTJweCAhaW1wb3J0YW50OwogICAgICBoZWlnaHQ6IDUycHggIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7CiAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICBmbGV4LXNocmluazogMCAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1jYS1ob21lLXBpbmspLCB2YXIoLS1jYS1ob21lLWNvcmFsKSkgIWltcG9ydGFudDsKICAgICAgY29sb3I6ICNGRkZGRkYgIWltcG9ydGFudDsKICAgICAgZm9udC1zaXplOiAxOHB4ICFpbXBvcnRhbnQ7CiAgICAgIGZvbnQtd2VpZ2h0OiA4MDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmVkLXF1b3RlLWJvZHkgewogICAgICBmbGV4OiAxICFpbXBvcnRhbnQ7CiAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICBnYXA6IDI0cHggIWltcG9ydGFudDsKICAgICAgZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19mZWF0dXJlZC10ZXh0IHsKICAgICAgZmxleDogMSAhaW1wb3J0YW50OwogICAgICBtaW4td2lkdGg6IDIyMHB4ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50OwogICAgICBmb250LXNpemU6IDE4cHggIWltcG9ydGFudDsKICAgICAgZm9udC13ZWlnaHQ6IDUwMCAhaW1wb3J0YW50OwogICAgICBsaW5lLWhlaWdodDogMS41NSAhaW1wb3J0YW50OwogICAgICBmb250LXN0eWxlOiBpdGFsaWMgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmVkLXRleHQ6OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICLigJwiOwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fZmVhdHVyZWQtdGV4dDo6YWZ0ZXIgewogICAgICBjb250ZW50OiAi4oCdIjsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX3F1b3RlLW1ldGEgewogICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4xOCkgIWltcG9ydGFudDsKICAgICAgcGFkZGluZy1sZWZ0OiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIGZsZXgtc2hyaW5rOiAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19xdW90ZS1uYW1lIHsKICAgICAgY29sb3I6IHZhcigtLWNhLWhvbWUtcGluaykgIWltcG9ydGFudDsKICAgICAgZm9udC1zaXplOiAxM3B4ICFpbXBvcnRhbnQ7CiAgICAgIGZvbnQtd2VpZ2h0OiA4MDAgIWltcG9ydGFudDsKICAgICAgbGluZS1oZWlnaHQ6IDEuMyAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fcXVvdGUtcm9sZSB7CiAgICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNjApICFpbXBvcnRhbnQ7CiAgICAgIGZvbnQtc2l6ZTogMTJweCAhaW1wb3J0YW50OwogICAgICBsaW5lLWhlaWdodDogMS40ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbi10b3A6IDJweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fcXVvdGUtZ3JpZCB7CiAgICAgIGRpc3BsYXk6IGdyaWQgIWltcG9ydGFudDsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpICFpbXBvcnRhbnQ7CiAgICAgIGdhcDogMTZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fcXVvdGUtY2FyZCB7CiAgICAgIHBhZGRpbmc6IDE4cHggIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWxlZnQ6IDVweCBzb2xpZCB2YXIoLS1jYS1ob21lLWxpbWUpICFpbXBvcnRhbnQ7CiAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50OwogICAgICBnYXA6IDEycHggIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX3F1b3RlLWNhcmQ6bnRoLWNoaWxkKDIpIHsKICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWNhLWhvbWUtYmx1ZSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX3F1b3RlLWNhcmQ6bnRoLWNoaWxkKDMpIHsKICAgICAgYm9yZGVyLWxlZnQtY29sb3I6IHZhcigtLWNhLWhvbWUtcGluaykgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX3F1b3RlLXNtYWxsIHsKICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7CiAgICAgIGZsZXg6IDEgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHZhcigtLWNhLWhvbWUtbmF2eS1kYXJrKSAhaW1wb3J0YW50OwogICAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDsKICAgICAgbGluZS1oZWlnaHQ6IDEuNjUgIWltcG9ydGFudDsKICAgICAgZm9udC1zdHlsZTogaXRhbGljICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19xdW90ZS1zbWFsbDo6YmVmb3JlIHsKICAgICAgY29udGVudDogIuKAnCI7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19xdW90ZS1zbWFsbDo6YWZ0ZXIgewogICAgICBjb250ZW50OiAi4oCdIjsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX3F1b3RlLWZvb3RlciB7CiAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICBnYXA6IDEwcHggIWltcG9ydGFudDsKICAgICAgcGFkZGluZy10b3A6IDEycHggIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNGMkYyRjIgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX3NtYWxsLWF2YXRhciB7CiAgICAgIHdpZHRoOiAzMnB4ICFpbXBvcnRhbnQ7CiAgICAgIGhlaWdodDogMzJweCAhaW1wb3J0YW50OwogICAgICBib3JkZXItcmFkaXVzOiA1MCUgIWltcG9ydGFudDsKICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7CiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7CiAgICAgIGZsZXgtc2hyaW5rOiAwICFpbXBvcnRhbnQ7CiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWNhLWhvbWUtcGluayksIHZhcigtLWNhLWhvbWUtY29yYWwpKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogI0ZGRkZGRiAhaW1wb3J0YW50OwogICAgICBmb250LXNpemU6IDExcHggIWltcG9ydGFudDsKICAgICAgZm9udC13ZWlnaHQ6IDgwMCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fcXVvdGUtY2FyZDpudGgtY2hpbGQoMikgLmNhLWhvbWUtMjYwNTA1X19zbWFsbC1hdmF0YXIgewogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1jYS1ob21lLWJsdWUpLCB2YXIoLS1jYS1ob21lLXRlYWwpKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fcXVvdGUtY2FyZDpudGgtY2hpbGQoMykgLmNhLWhvbWUtMjYwNTA1X19zbWFsbC1hdmF0YXIgewogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1jYS1ob21lLWxpbWUpLCAjNkJCRjJGKSAhaW1wb3J0YW50OwogICAgICBjb2xvcjogdmFyKC0tY2EtaG9tZS1uYXZ5LWRhcmspICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19zbWFsbC1uYW1lIHsKICAgICAgY29sb3I6IHZhcigtLWNhLWhvbWUtbmF2eS1kYXJrKSAhaW1wb3J0YW50OwogICAgICBmb250LXNpemU6IDEycHggIWltcG9ydGFudDsKICAgICAgZm9udC13ZWlnaHQ6IDgwMCAhaW1wb3J0YW50OwogICAgICBsaW5lLWhlaWdodDogMS4zICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19zbWFsbC1yb2xlIHsKICAgICAgY29sb3I6ICM4Qjk1QTAgIWltcG9ydGFudDsKICAgICAgZm9udC1zaXplOiAxMXB4ICFpbXBvcnRhbnQ7CiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQgIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXRvcDogMXB4ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLyogRkFRICovCgogICAgLmNhLWhvbWUtMjYwNTA1X19mYXEtc2hlbGwgewogICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCB2YXIoLS1jYS1ob21lLW5hdnktZGFyayksIHZhcigtLWNhLWhvbWUtbmF2eSkpICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1yYWRpdXM6IDMycHggIWltcG9ydGFudDsKICAgICAgcGFkZGluZzogNDJweCAzOHB4IDM4cHggIWltcG9ydGFudDsKICAgICAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDAsIDI5LCA0OCwgMC4zMCkgIWltcG9ydGFudDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fZmFxLWhlYWRlciB7CiAgICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OwogICAgICBtYXJnaW46IDAgMCAyOHB4IDAgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2ZhcS1oZWFkZXIgLmNhLWhvbWUtMjYwNTA1X190aXRsZS1sZyB7CiAgICAgIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19mYXEtaGVhZGVyIC5jYS1ob21lLTI2MDUwNV9fY29weSB7CiAgICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuNzApICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19mYXEtZ3JpZCB7CiAgICAgIGRpc3BsYXk6IGdyaWQgIWltcG9ydGFudDsKICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMjgwcHgsIDAuOWZyKSBtaW5tYXgoMCwgMS40ZnIpICFpbXBvcnRhbnQ7CiAgICAgIGdhcDogNDBweCAhaW1wb3J0YW50OwogICAgICBhbGlnbi1pdGVtczogc3RhcnQgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2ZhcS1tYXNjb3QgewogICAgICBwb3NpdGlvbjogc3RpY2t5ICFpbXBvcnRhbnQ7CiAgICAgIHRvcDogMTAwcHggIWltcG9ydGFudDsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19mYXEtbWFzY290IGltZyB7CiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgICAgIG1heC13aWR0aDogNDUwcHggIWltcG9ydGFudDsKICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbjogMCBhdXRvICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19mYXEtbGlzdCB7CiAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsKICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50OwogICAgICBnYXA6IDEwcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2ZhcS1pdGVtIHsKICAgICAgYXBwZWFyYW5jZTogbm9uZSAhaW1wb3J0YW50OwogICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMDUpICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4wOCkgIWltcG9ydGFudDsKICAgICAgYm9yZGVyLWxlZnQ6IDRweCBzb2xpZCB2YXIoLS1jYS1ob21lLWJsdWUpICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1yYWRpdXM6IDEycHggIWltcG9ydGFudDsKICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50OwogICAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7CiAgICAgIHRyYW5zaXRpb246CiAgICAgICAgYmFja2dyb3VuZC1jb2xvciB2YXIoLS1jYS1ob21lLXNwZWVkKSB2YXIoLS1jYS1ob21lLWVhc2UpICFpbXBvcnRhbnQsCiAgICAgICAgYm9yZGVyLWNvbG9yIHZhcigtLWNhLWhvbWUtc3BlZWQpIHZhcigtLWNhLWhvbWUtZWFzZSkgIWltcG9ydGFudCwKICAgICAgICBib3gtc2hhZG93IHZhcigtLWNhLWhvbWUtc3BlZWQpIHZhcigtLWNhLWhvbWUtZWFzZSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2ZhcS1pdGVtOmhvdmVyIHsKICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjA4KSAhaW1wb3J0YW50OwogICAgICBib3JkZXItY29sb3I6IHJnYmEoODksMjAxLDIyNSwwLjI1KSAhaW1wb3J0YW50OwogICAgICBib3gtc2hhZG93OiAwIDZweCAxOHB4IHJnYmEoMCwwLDAsMC4wOCkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2ZhcS1xdWVzdGlvbiB7CiAgICAgIGFwcGVhcmFuY2U6IG5vbmUgIWltcG9ydGFudDsKICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKICAgICAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7CiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7CiAgICAgIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50OwogICAgICBwYWRkaW5nOiAxM3B4IDE0cHggIWltcG9ydGFudDsKICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWltcG9ydGFudDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICBnYXA6IDE0cHggIWltcG9ydGFudDsKICAgICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fZmFxLXF1ZXN0aW9uLWxlZnQgewogICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDsKICAgICAgZ2FwOiAxMnB4ICFpbXBvcnRhbnQ7CiAgICAgIGZsZXg6IDEgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2ZhcS1pY29uIHsKICAgICAgd2lkdGg6IDE4cHggIWltcG9ydGFudDsKICAgICAgaGVpZ2h0OiAxOHB4ICFpbXBvcnRhbnQ7CiAgICAgIGZsZXgtc2hyaW5rOiAwICFpbXBvcnRhbnQ7CiAgICAgIGZpbGw6IG5vbmUgIWltcG9ydGFudDsKICAgICAgc3Ryb2tlOiB2YXIoLS1jYS1ob21lLWJsdWUpICFpbXBvcnRhbnQ7CiAgICAgIHN0cm9rZS13aWR0aDogMi4yICFpbXBvcnRhbnQ7CiAgICAgIHN0cm9rZS1saW5lY2FwOiByb3VuZCAhaW1wb3J0YW50OwogICAgICBzdHJva2UtbGluZWpvaW46IHJvdW5kICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19mYXEtdGV4dCB7CiAgICAgIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7CiAgICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50OwogICAgICBmb250LXdlaWdodDogODAwICFpbXBvcnRhbnQ7CiAgICAgIGxpbmUtaGVpZ2h0OiAxLjQgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2ZhcS1hcnJvdyB7CiAgICAgIHdpZHRoOiAxOHB4ICFpbXBvcnRhbnQ7CiAgICAgIGhlaWdodDogMThweCAhaW1wb3J0YW50OwogICAgICBmbGV4LXNocmluazogMCAhaW1wb3J0YW50OwogICAgICBmaWxsOiBub25lICFpbXBvcnRhbnQ7CiAgICAgIHN0cm9rZTogdmFyKC0tY2EtaG9tZS1ibHVlKSAhaW1wb3J0YW50OwogICAgICBzdHJva2Utd2lkdGg6IDIuNSAhaW1wb3J0YW50OwogICAgICBzdHJva2UtbGluZWNhcDogcm91bmQgIWltcG9ydGFudDsKICAgICAgc3Ryb2tlLWxpbmVqb2luOiByb3VuZCAhaW1wb3J0YW50OwogICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gdmFyKC0tY2EtaG9tZS1zcGVlZCkgdmFyKC0tY2EtaG9tZS1lYXNlKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fZmFxLWl0ZW0uaXMtb3BlbiAuY2EtaG9tZS0yNjA1MDVfX2ZhcS1hcnJvdyB7CiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZykgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2ZhcS1hbnN3ZXIgewogICAgICBtYXgtaGVpZ2h0OiAwICFpbXBvcnRhbnQ7CiAgICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDsKICAgICAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCB2YXIoLS1jYS1ob21lLXNwZWVkKSB2YXIoLS1jYS1ob21lLWVhc2UpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19mYXEtYW5zd2VyLWlubmVyIHsKICAgICAgbWFyZ2luOiAwIDE0cHggMTRweCA0NHB4ICFpbXBvcnRhbnQ7CiAgICAgIHBhZGRpbmctdG9wOiAxMXB4ICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDg5LDIwMSwyMjUsMC4yMikgIWltcG9ydGFudDsKICAgICAgY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC44MCkgIWltcG9ydGFudDsKICAgICAgZm9udC1zaXplOiAxM3B4ICFpbXBvcnRhbnQ7CiAgICAgIGxpbmUtaGVpZ2h0OiAxLjY1ICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19mYXEtYW5zd2VyLWlubmVyIGEgewogICAgICBjb2xvcjogdmFyKC0tY2EtaG9tZS1ibHVlKSAhaW1wb3J0YW50OwogICAgICBmb250LXdlaWdodDogODAwICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19mYXEtbGluay1yb3cgewogICAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsKICAgICAgbWFyZ2luLXRvcDogMjZweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fdGV4dC1saW5rLWxpZ2h0IHsKICAgICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICBnYXA6IDhweCAhaW1wb3J0YW50OwogICAgICBjb2xvcjogdmFyKC0tY2EtaG9tZS1ibHVlKSAhaW1wb3J0YW50OwogICAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDsKICAgICAgZm9udC13ZWlnaHQ6IDgwMCAhaW1wb3J0YW50OwogICAgICBsaW5lLWhlaWdodDogMS4zICFpbXBvcnRhbnQ7CiAgICAgIHRyYW5zaXRpb246CiAgICAgICAgY29sb3IgdmFyKC0tY2EtaG9tZS1zcGVlZCkgdmFyKC0tY2EtaG9tZS1lYXNlKSAhaW1wb3J0YW50LAogICAgICAgIGdhcCB2YXIoLS1jYS1ob21lLXNwZWVkKSB2YXIoLS1jYS1ob21lLWVhc2UpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X190ZXh0LWxpbmstbGlnaHQ6aG92ZXIgewogICAgICBjb2xvcjogdmFyKC0tY2EtaG9tZS10ZWFsKSAhaW1wb3J0YW50OwogICAgICBnYXA6IDExcHggIWltcG9ydGFudDsKICAgIH0KCiAgICAvKiBGSU5BTCBDVEEgKi8KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2ZpbmFsLWN0YSB7CiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgICAgIHBhZGRpbmc6IDgwcHggMzBweCAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kOiAjRkZGRkZGICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19jdGEtY2FyZCB7CiAgICAgIG1heC13aWR0aDogMTIwMHB4ICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbjogMCBhdXRvICFpbXBvcnRhbnQ7CiAgICAgIHBhZGRpbmc6IDU4cHggNzBweCAhaW1wb3J0YW50OwogICAgICBib3JkZXItcmFkaXVzOiAyOHB4ICFpbXBvcnRhbnQ7CiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsIHZhcigtLWNhLWhvbWUtdGVhbCksIHZhcigtLWNhLWhvbWUtYmx1ZSkpICFpbXBvcnRhbnQ7CiAgICAgIGJveC1zaGFkb3c6IDAgMjBweCA2MHB4IHJnYmEoMCw0NSw3NiwwLjE1KSAhaW1wb3J0YW50OwogICAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDsKICAgICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fY3RhLWNhcmQ6OmJlZm9yZSB7CiAgICAgIGNvbnRlbnQ6ICIiICFpbXBvcnRhbnQ7CiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OwogICAgICBpbnNldDogMCAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kOiByYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDIwJSAyMCUsIHJnYmEoMjU1LDI1NSwyNTUsMC4yNSksIHRyYW5zcGFyZW50IDYwJSkgIWltcG9ydGFudDsKICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmUgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2N0YS1sYXlvdXQgewogICAgICBkaXNwbGF5OiBncmlkICFpbXBvcnRhbnQ7CiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgbWlubWF4KDI2MHB4LCAwLjlmcikgIWltcG9ydGFudDsKICAgICAgZ2FwOiAzNnB4ICFpbXBvcnRhbnQ7CiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDsKICAgICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7CiAgICAgIHotaW5kZXg6IDIgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2N0YS10aXRsZSB7CiAgICAgIGNvbG9yOiAjRkZGRkZGICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbjogMCAwIDEycHggMCAhaW1wb3J0YW50OwogICAgICBmb250LXNpemU6IGNsYW1wKDI2cHgsIDN2dywgMzZweCkgIWltcG9ydGFudDsKICAgICAgZm9udC13ZWlnaHQ6IDgwMCAhaW1wb3J0YW50OwogICAgICBsaW5lLWhlaWdodDogMS4yICFpbXBvcnRhbnQ7CiAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4wM2VtICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19jdGEtY29weSB7CiAgICAgIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuOTIpICFpbXBvcnRhbnQ7CiAgICAgIG1hcmdpbjogMCAwIDI0cHggMCAhaW1wb3J0YW50OwogICAgICBmb250LXNpemU6IDE3cHggIWltcG9ydGFudDsKICAgICAgbGluZS1oZWlnaHQ6IDEuNzUgIWltcG9ydGFudDsKICAgICAgbWF4LXdpZHRoOiA2MjBweCAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNV9fY3RhLWltYWdlIHsKICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19jdGEtaW1hZ2UgaW1nIHsKICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKICAgICAgbWF4LXdpZHRoOiA1MjBweCAhaW1wb3J0YW50OwogICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICAgIH0KCiAgICAvKiBMSUdIVEJPWCAqLwoKICAgIC5jYS1ob21lLTI2MDUwNV9fbGlnaHRib3ggewogICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7CiAgICAgIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50OwogICAgICBpbnNldDogMCAhaW1wb3J0YW50OwogICAgICB6LWluZGV4OiA5OTk5OTk5ICFpbXBvcnRhbnQ7CiAgICAgIGJhY2tncm91bmQ6IHJnYmEoMCwwLDAsMC44OCkgIWltcG9ydGFudDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICBwYWRkaW5nOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIGN1cnNvcjogem9vbS1vdXQgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2xpZ2h0Ym94LmlzLWFjdGl2ZSB7CiAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2xpZ2h0Ym94IGltZyB7CiAgICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OwogICAgICBtYXgtaGVpZ2h0OiA5MHZoICFpbXBvcnRhbnQ7CiAgICAgIG9iamVjdC1maXQ6IGNvbnRhaW4gIWltcG9ydGFudDsKICAgICAgYm9yZGVyLXJhZGl1czogMTJweCAhaW1wb3J0YW50OwogICAgICBib3gtc2hhZG93OiAwIDIwcHggNjBweCByZ2JhKDAsMCwwLDAuNjApICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19saWdodGJveC1jbG9zZSB7CiAgICAgIHBvc2l0aW9uOiBmaXhlZCAhaW1wb3J0YW50OwogICAgICB0b3A6IDE2cHggIWltcG9ydGFudDsKICAgICAgcmlnaHQ6IDE2cHggIWltcG9ydGFudDsKICAgICAgd2lkdGg6IDQwcHggIWltcG9ydGFudDsKICAgICAgaGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50OwogICAgICBib3JkZXI6IDAgIWltcG9ydGFudDsKICAgICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7CiAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDsKICAgICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LDAuMTUpICFpbXBvcnRhbnQ7CiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgdmFyKC0tY2EtaG9tZS1zcGVlZCkgdmFyKC0tY2EtaG9tZS1lYXNlKSwgdHJhbnNmb3JtIHZhcigtLWNhLWhvbWUtc3BlZWQpIHZhcigtLWNhLWhvbWUtZWFzZSkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDVfX2xpZ2h0Ym94LWNsb3NlOmhvdmVyIHsKICAgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjI4KSAhaW1wb3J0YW50OwogICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDQpICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1X19saWdodGJveC1jbG9zZSBzdmcgewogICAgICB3aWR0aDogMTdweCAhaW1wb3J0YW50OwogICAgICBoZWlnaHQ6IDE3cHggIWltcG9ydGFudDsKICAgICAgZmlsbDogbm9uZSAhaW1wb3J0YW50OwogICAgICBzdHJva2U6ICNGRkZGRkYgIWltcG9ydGFudDsKICAgICAgc3Ryb2tlLXdpZHRoOiAyLjUgIWltcG9ydGFudDsKICAgICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kICFpbXBvcnRhbnQ7CiAgICAgIHN0cm9rZS1saW5lam9pbjogcm91bmQgIWltcG9ydGFudDsKICAgIH0KCiAgICBAbWVkaWEgKG1heC13aWR0aDogMTEyMHB4KSB7CiAgICAgIC5jYS1ob21lLTI2MDUwNV9faGVyby10YWctcm93IHsKICAgICAgICBmbGV4LXdyYXA6IHdyYXAgIWltcG9ydGFudDsKICAgICAgfQogICAgfQoKICAgIEBtZWRpYSAobWF4LXdpZHRoOiAxMDI0cHgpIHsKICAgICAgLmNhLWhvbWUtMjYwNTA1X19oZXJvLWxheW91dCB7CiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OwogICAgICAgIG1pbi1oZWlnaHQ6IDAgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmNhLWhvbWUtMjYwNTA1X19oZXJvLWNvbnRlbnQgewogICAgICAgIGZsZXg6IDEgIWltcG9ydGFudDsKICAgICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmUgIWltcG9ydGFudDsKICAgICAgICBib3JkZXItdG9wOiA2cHggc29saWQgdmFyKC0tY2EtaG9tZS1saW1lKSAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmc6IDM0cHggMjBweCAwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5jYS1ob21lLTI2MDUwNV9faGVyby1zdWJ0ZXh0IHsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuY2EtaG9tZS0yNjA1MDVfX2J0bi1yb3cgewogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5jYS1ob21lLTI2MDUwNV9faGVyby10YWdzIHsKICAgICAgICBtYXgtd2lkdGg6IDY2MHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG8gIWltcG9ydGFudDsKICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG8gIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmNhLWhvbWUtMjYwNTA1X19oZXJvLXRhZy1yb3cgewogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7CiAgICAgICAgZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5jYS1ob21lLTI2MDUwNV9faGVyby12aXN1YWwgewogICAgICAgIGZsZXg6IDEgIWltcG9ydGFudDsKICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OwogICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuY2EtaG9tZS0yNjA1MDVfX2hlcm8tdmlkZW8td3JhcCB7CiAgICAgICAgbWF4LXdpZHRoOiA1NjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuY2EtaG9tZS0yNjA1MDVfX2hlcm8tbWFzY290IHsKICAgICAgICB3aWR0aDogMTUwcHggIWltcG9ydGFudDsKICAgICAgICBib3R0b206IC0zMHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcmlnaHQ6IDEwJSAhaW1wb3J0YW50OwogICAgICB9CgoKICAgICAgLmNhLWhvbWUtMjYwNTA1X193b3JrZmxvdy1ncmlkLAogICAgICAuY2EtaG9tZS0yNjA1MDVfX3Nwb3RsaWdodC1ncmlkLAogICAgICAuY2EtaG9tZS0yNjA1MDVfX2Vjb3N5c3RlbS1ncmlkIHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuY2EtaG9tZS0yNjA1MDVfX2Zsb3ctc3RyaXAgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuY2EtaG9tZS0yNjA1MDVfX3RhYnMsCiAgICAgIC5jYS1ob21lLTI2MDUwNV9fcGFja2FnZS1ncmlkLAogICAgICAuY2EtaG9tZS0yNjA1MDVfX3F1b3RlLWdyaWQgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKSAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuY2EtaG9tZS0yNjA1MDVfX2ZhcS1ncmlkIHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuY2EtaG9tZS0yNjA1MDVfX2ZhcS1tYXNjb3QgewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmNhLWhvbWUtMjYwNTA1X19jdGEtbGF5b3V0IHsKICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAhaW1wb3J0YW50OwogICAgICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuY2EtaG9tZS0yNjA1MDVfX2N0YS1jb3B5IHsKICAgICAgICBtYXJnaW4tbGVmdDogYXV0byAhaW1wb3J0YW50OwogICAgICAgIG1hcmdpbi1yaWdodDogYXV0byAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuY2EtaG9tZS0yNjA1MDVfX2N0YS1sYXlvdXQgLmNhLWhvbWUtMjYwNTA1X19idG4tcm93IHsKICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50OwogICAgICB9CiAgICB9CgogICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2N3B4KSB7CiAgICAgIC5jYS1ob21lLTI2MDUwNV9fc2VjdGlvbiwKICAgICAgLmNhLWhvbWUtMjYwNTA1X19maW5hbC1jdGEgewogICAgICAgIHBhZGRpbmc6IDU4cHggMjRweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuY2EtaG9tZS0yNjA1MDVfX2hlcm8gewogICAgICAgIHBhZGRpbmc6IDQ0cHggMjRweCA1OHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5jYS1ob21lLTI2MDUwNV9faGVyby12aXN1YWwgewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmNhLWhvbWUtMjYwNTA1X190aXRsZS14bCB7CiAgICAgICAgZm9udC1zaXplOiA0MHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5jYS1ob21lLTI2MDUwNV9fdGl0bGUtbGcgewogICAgICAgIGZvbnQtc2l6ZTogMjhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuY2EtaG9tZS0yNjA1MDVfX2hlcm8tc3VidGV4dCB7CiAgICAgICAgZm9udC1zaXplOiAxN3B4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCgogICAgICAuY2EtaG9tZS0yNjA1MDVfX2Zsb3ctc3RyaXAgewogICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5jYS1ob21lLTI2MDUwNV9fdGFicywKICAgICAgLmNhLWhvbWUtMjYwNTA1X19wYWNrYWdlLWdyaWQsCiAgICAgIC5jYS1ob21lLTI2MDUwNV9fd29ya3NwYWNlLWdyaWQsCiAgICAgIC5jYS1ob21lLTI2MDUwNV9fcXVvdGUtZ3JpZCB7CiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmNhLWhvbWUtMjYwNTA1X19mZWF0dXJlZC1xdW90ZSwKICAgICAgLmNhLWhvbWUtMjYwNTA1X19mZWF0dXJlZC1xdW90ZS1ib2R5IHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7CiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmNhLWhvbWUtMjYwNTA1X19xdW90ZS1tZXRhIHsKICAgICAgICBib3JkZXItbGVmdDogMCAhaW1wb3J0YW50OwogICAgICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuY2EtaG9tZS0yNjA1MDVfX2ZhcS1zaGVsbCB7CiAgICAgICAgcGFkZGluZzogMzRweCAyMnB4IDMwcHggIWltcG9ydGFudDsKICAgICAgICBib3JkZXItcmFkaXVzOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5jYS1ob21lLTI2MDUwNV9fd29ya3NwYWNlLWNhcHRpb24gewogICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmNhLWhvbWUtMjYwNTA1X19jdGEtY2FyZCB7CiAgICAgICAgcGFkZGluZzogNDBweCAyNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIH0KCiAgICBAbWVkaWEgKG1heC13aWR0aDogNjQwcHgpIHsKICAgICAgLmNhLWhvbWUtMjYwNTA1X19idG4tcm93IHsKICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7CiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2ggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmNhLWhvbWUtMjYwNTA1X19idG4gewogICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5jYS1ob21lLTI2MDUwNV9faGVyby10YWdzIHsKICAgICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsKICAgICAgICBnYXA6IDhweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuY2EtaG9tZS0yNjA1MDVfX2hlcm8tdGFnLXJvdyB7CiAgICAgICAgZ2FwOiA4cHggMTBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuY2EtaG9tZS0yNjA1MDVfX3RhZyB7CiAgICAgICAgZm9udC1zaXplOiAxMHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZzogN3B4IDEwcHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmNhLWhvbWUtMjYwNTA1X19mYXEtYW5zd2VyLWlubmVyIHsKICAgICAgICBtYXJnaW4tbGVmdDogMTRweCAhaW1wb3J0YW50OwogICAgICB9CiAgICB9CgogICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7CiAgICAgIC5jYS1ob21lLTI2MDUwNV9faGVybywKICAgICAgLmNhLWhvbWUtMjYwNTA1X19zZWN0aW9uLAogICAgICAuY2EtaG9tZS0yNjA1MDVfX2ZpbmFsLWN0YSB7CiAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4ICFpbXBvcnRhbnQ7CiAgICAgICAgcGFkZGluZy1yaWdodDogMjBweCAhaW1wb3J0YW50OwogICAgICB9CgogICAgICAuY2EtaG9tZS0yNjA1MDVfX3RpdGxlLXhsIHsKICAgICAgICBmb250LXNpemU6IDM2cHggIWltcG9ydGFudDsKICAgICAgfQoKICAgICAgLmNhLWhvbWUtMjYwNTA1X190aXRsZS1sZyB7CiAgICAgICAgZm9udC1zaXplOiAyNnB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KCiAgICAgIC5jYS1ob21lLTI2MDUwNV9fcGFja2FnZS1jYXJkLAogICAgICAuY2EtaG9tZS0yNjA1MDVfX2NvbW1pdC1jYXJkIHsKICAgICAgICBwYWRkaW5nOiAyNHB4ICFpbXBvcnRhbnQ7CiAgICAgIH0KICAgIH0KCiAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkgewogICAgICAuY2EtaG9tZS0yNjA1MDUgKiwKICAgICAgLmNhLWhvbWUtMjYwNTA1ICo6aG92ZXIgewogICAgICAgIHRyYW5zaXRpb246IG5vbmUgIWltcG9ydGFudDsKICAgICAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDsKICAgICAgICBhbmltYXRpb246IG5vbmUgIWltcG9ydGFudDsKICAgICAgfQogICAgfQogIDwvc3R5bGU+CgoKICA8IS0tIENPTVBFVElUSVZFIFBPU0lUSU9OSU5HIFdPUktGTE9XIC0tPgogIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19zZWN0aW9uIGNhLWhvbWUtMjYwNTA1X19zZWN0aW9uLXNvZnQiPgogICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2lubmVyIj4KCiAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19zZWN0aW9uLWhlYWRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2V5ZWJyb3ciPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19leWVicm93LWRvdCI+PC9zcGFuPgogICAgICAgICAgV2hhdCBNYWtlcyBDQVJMIERpZmZlcmVudAogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X190aXRsZS1sZyI+T25lIHdvcmtmbG93LCBub3QgODAgZGlzY29ubmVjdGVkIHRvb2xzPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2NvcHkiPgogICAgICAgICAgQ0FSTCBpcyBidWlsdCBhcm91bmQgaG93IHRlYWNoZXJzIGFjdHVhbGx5IHBsYW46IHByZWZlcmVuY2VzIGZpcnN0LCB0aGVuIGxlc3NvbnMsIG1hdGVyaWFscywgc3VwcG9ydHMsIGFuZCByZXZpc2lvbnMgdGhhdCBzdGF5IGNvbm5lY3RlZC4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fd29ya2Zsb3ctZ3JpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2NhcmQgY2EtaG9tZS0yNjA1MDVfX3dvcmtmbG93LWNhcmQgY2EtaG9tZS0yNjA1MDVfX3dvcmtmbG93LWNhcmQtbXV0ZWQiPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3RpdGxlLW1kIj5Nb3N0IEFJIHRvb2xzIHN0YXJ0IG92ZXIgZXZlcnkgdGltZTwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2NvcHkiPgogICAgICAgICAgICBUaGV5IGNhbiBiZSB1c2VmdWwsIGJ1dCB0ZWFjaGVycyBvZnRlbiBoYXZlIHRvIHJlYnVpbGQgdGhlIHNhbWUgY29udGV4dCBhZ2FpbiBhbmQgYWdhaW4uCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDx1bCBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3dvcmtmbG93LWxpc3QiPgogICAgICAgICAgICA8bGk+PHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X193b3JrZmxvdy1saXN0LWljb24iPsOXPC9zcGFuPjxzcGFuPlJlLWVudGVyIHlvdXIgZ3JhZGUsIHN1YmplY3QsIHRpbWluZywgYW5kIGN1cnJpY3VsdW0gZGV0YWlscy48L3NwYW4+PC9saT4KICAgICAgICAgICAgPGxpPjxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fd29ya2Zsb3ctbGlzdC1pY29uIj7Dlzwvc3Bhbj48c3Bhbj5SZS1kZXNjcmliZSBsZWFybmVyIG5lZWRzLCBsYW5ndWFnZSBzdXBwb3J0cywgYW5kIGNsYXNzIGNvbnRleHQuPC9zcGFuPjwvbGk+CiAgICAgICAgICAgIDxsaT48c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3dvcmtmbG93LWxpc3QtaWNvbiI+w5c8L3NwYW4+PHNwYW4+UHJvbXB0IHNlcGFyYXRlbHkgZm9yIHdvcmtzaGVldHMsIGFzc2Vzc21lbnRzLCBzbGlkZXMsIGFuZCBkaWZmZXJlbnRpYXRpb24uPC9zcGFuPjwvbGk+CiAgICAgICAgICAgIDxsaT48c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3dvcmtmbG93LWxpc3QtaWNvbiI+w5c8L3NwYW4+PHNwYW4+Q29weSwgcGFzdGUsIHJlZm9ybWF0LCBhbmQgb3JnYW5pemUgdGhlIHBpZWNlcyB5b3Vyc2VsZi48L3NwYW4+PC9saT4KICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19jYXJkIGNhLWhvbWUtMjYwNTA1X193b3JrZmxvdy1jYXJkIGNhLWhvbWUtMjYwNTA1X193b3JrZmxvdy1jYXJkLXN0cm9uZyI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fdGl0bGUtbWQiPkNBUkwga2VlcHMgeW91ciBwbGFubmluZyBjb250ZXh0IGNvbm5lY3RlZDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2NvcHkiPgogICAgICAgICAgICBTZXQgeW91ciBwbGFubmluZyBwcmVmZXJlbmNlcyBvbmNlLCB0aGVuIGJ1aWxkIGZyb20gdGhhdCBzYW1lIGNvbnRleHQgYWNyb3NzIHlvdXIgcGxhbm5pbmcgd29ya2Zsb3cuCiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDx1bCBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3dvcmtmbG93LWxpc3QiPgogICAgICAgICAgICA8bGk+PHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X193b3JrZmxvdy1saXN0LWljb24iPuKckzwvc3Bhbj48c3Bhbj5TYXZlIGN1cnJpY3VsdW0sIGdyYWRlLCB0aW1pbmcsIGxlYXJuZXIgbmVlZHMsIGFuZCBsYW5ndWFnZSBtb2RlLjwvc3Bhbj48L2xpPgogICAgICAgICAgICA8bGk+PHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X193b3JrZmxvdy1saXN0LWljb24iPuKckzwvc3Bhbj48c3Bhbj5DcmVhdGUgbGVzc29ucyB3aXRoIGxlc3MgcmUtZXhwbGFpbmluZyBhbmQgbW9yZSB0ZWFjaGVyIGNvbnRyb2wuPC9zcGFuPjwvbGk+CiAgICAgICAgICAgIDxsaT48c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3dvcmtmbG93LWxpc3QtaWNvbiI+4pyTPC9zcGFuPjxzcGFuPkFkZCBjb21wb25lbnRzIGFuZCB0ZWFjaGluZyByZXNvdXJjZXMgdGhhdCBwdWxsIGZyb20geW91ciBsZXNzb24uPC9zcGFuPjwvbGk+CiAgICAgICAgICAgIDxsaT48c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3dvcmtmbG93LWxpc3QtaWNvbiI+4pyTPC9zcGFuPjxzcGFuPlJlbWl4LCByZXZpc2UsIGFuZCBzaGFyZSB3aXRob3V0IGNoYW5naW5nIHRoZSBvcmlnaW5hbCBsZXNzb24uPC9zcGFuPjwvbGk+CiAgICAgICAgICA8L3VsPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mbG93LXN0cmlwIiBhcmlhLWxhYmVsPSJDQVJMIGNvbm5lY3RlZCB3b3JrZmxvdyI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2Zsb3ctc3RlcCI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2Zsb3ctbnVtYmVyIj4xPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mbG93LXRpdGxlIj5TYXZlZCBDbGFzcyBQcm9maWxlPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mbG93LWNvcHkiPlNldCBjdXJyaWN1bHVtLCBncmFkZSwgcGxhbm5pbmcgcHJlZmVyZW5jZXMsIGxlYXJuZXIgbmVlZHMsIGFuZCBsYW5ndWFnZSBtb2RlIG9uY2UuPC9zcGFuPgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmxvdy1zdGVwIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmxvdy1udW1iZXIiPjI8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2Zsb3ctdGl0bGUiPkxlc3NvbiBQbGFuPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mbG93LWNvcHkiPlN0YXJ0IHdpdGggYSB0b3BpYywgZ29hbCwgdXBsb2FkLCByZW1peCwgb3IgY2hhdC1iYXNlZCBpZGVhLjwvc3Bhbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2Zsb3ctc3RlcCI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2Zsb3ctbnVtYmVyIj4zPC9zcGFuPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mbG93LXRpdGxlIj5Db21wb25lbnRzICYgU3VwcG9ydHM8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2Zsb3ctY29weSI+QWRkIGFjdGl2aXRpZXMsIGFzc2Vzc21lbnRzLCBVREwgcGF0aHdheXMsIEVMTCBzdXBwb3J0cywgYW5kIHRlYWNoaW5nIHJlc291cmNlcy48L3NwYW4+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mbG93LXN0ZXAiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mbG93LW51bWJlciI+NDwvc3Bhbj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmxvdy10aXRsZSI+UmVtaXggb3IgVHJhY2s8L3NwYW4+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2Zsb3ctY29weSI+U2hhcmUgd2l0aCBjb2xsZWFndWVzLCBhZGFwdCBmcm9tIHRoZSBsaWJyYXJ5LCBvciB0cmFjayBjb3ZlcmFnZSBpbiA8YSBocmVmPSJodHRwczovL2hpY2FybC5haS9jb21wYXNzLyIgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mbG93LWxpbmsiPkNvbXBhc3M8L2E+Ljwvc3Bhbj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgPC9kaXY+CiAgPC9kaXY+CgoKICA8IS0tIEhPVyBDQVJMIFdPUktTIC0tPgogIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19zZWN0aW9uIj4KICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19pbm5lciI+CgogICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fc2VjdGlvbi1oZWFkZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19leWVicm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZXllYnJvdy1kb3QiPjwvc3Bhbj4KICAgICAgICAgIFN0YXJ0IFdoZXJlIFlvdSBBcmUKICAgICAgICA8L2Rpdj4KPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3RpdGxlLWxnIj5DaG9vc2UgdGhlIHN0YXJ0aW5nIHBvaW50IHRoYXQgZml0cyB5b3VyIHdvcmtmbG93PC9kaXY+CjxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19jb3B5Ij4KICBCdWlsZCBmcm9tIHNjcmF0Y2gsIHVwbG9hZCB3aGF0IHlvdSBhbHJlYWR5IGhhdmUsIHJlbWl4IGZyb20gdGhlIGxpYnJhcnksIG9yIHRhbGsgdGhyb3VnaCBhbiBpZGVhIHdpdGggQ0FSTC4KPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3RhYnMiIHJvbGU9InRhYmxpc3QiIGFyaWEtbGFiZWw9IkhvdyBDQVJMIHdvcmtzIj4KCiAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fdGFiIGlzLWFjdGl2ZSIgZGF0YS1ob21lLXRhYj0ic2NyYXRjaCIgcm9sZT0idGFiIiBhcmlhLXNlbGVjdGVkPSJ0cnVlIiBhcmlhLWNvbnRyb2xzPSJjYS1ob21lLXBhbmVsLXNjcmF0Y2giPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X190YWItaWNvbiIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgc3Ryb2tlPSIjNTlDOUUxIj4KICAgICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjEyIDIgMTUuMDkgOC4yNiAyMiA5LjI3IDE3IDE0LjE0IDE4LjE4IDIxLjAyIDEyIDE3Ljc3IDUuODIgMjEuMDIgNyAxNC4xNCAyIDkuMjcgOC45MSA4LjI2IDEyIDIiPjwvcG9seWdvbj4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8c3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X190YWItdGl0bGUiPlN0YXJ0IGZyb20gU2NyYXRjaDwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X190YWItc3ViIj5CdWlsZCBhIGZ1bGwgbGVzc29uIGZyb20gYSB0b3BpYywgZ29hbCwgb3IgY3VycmljdWx1bSBhcmVhPC9zcGFuPgogICAgICAgICAgPC9zcGFuPgogICAgICAgIDwvYnV0dG9uPgoKICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X190YWIiIGRhdGEtaG9tZS10YWI9InVwbG9hZCIgcm9sZT0idGFiIiBhcmlhLXNlbGVjdGVkPSJmYWxzZSIgYXJpYS1jb250cm9scz0iY2EtaG9tZS1wYW5lbC11cGxvYWQiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X190YWItaWNvbiIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgc3Ryb2tlPSIjRjY3MUVBIj4KICAgICAgICAgICAgICA8cGF0aCBkPSJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNCI+PC9wYXRoPgogICAgICAgICAgICAgIDxwb2x5bGluZSBwb2ludHM9IjE3IDggMTIgMyA3IDgiPjwvcG9seWxpbmU+CiAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iMyIgeDI9IjEyIiB5Mj0iMTUiPjwvbGluZT4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8c3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X190YWItdGl0bGUiPlVwbG9hZCAmIEVuaGFuY2U8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fdGFiLXN1YiI+VHVybiBleGlzdGluZyBub3RlcywgUERGcywgb3IgcGxhbnMgaW50byBlZGl0YWJsZSBDQVJMIGxlc3NvbnM8L3NwYW4+CiAgICAgICAgICA8L3NwYW4+CiAgICAgICAgPC9idXR0b24+CgogICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3RhYiIgZGF0YS1ob21lLXRhYj0icmVtaXgiIHJvbGU9InRhYiIgYXJpYS1zZWxlY3RlZD0iZmFsc2UiIGFyaWEtY29udHJvbHM9ImNhLWhvbWUtcGFuZWwtcmVtaXgiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X190YWItaWNvbiIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgc3Ryb2tlPSIjQThFMDYzIj4KICAgICAgICAgICAgICA8cGF0aCBkPSJNMjEuNSAydjZoLTYiPjwvcGF0aD4KICAgICAgICAgICAgICA8cGF0aCBkPSJNMi41IDIydi02aDYiPjwvcGF0aD4KICAgICAgICAgICAgICA8cGF0aCBkPSJNMiAxMS41YTEwIDEwIDAgMCAxIDE4LjgtNC4zIj48L3BhdGg+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTIyIDEyLjVhMTAgMTAgMCAwIDEtMTguOCA0LjIiPjwvcGF0aD4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICA8c3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X190YWItdGl0bGUiPlJlbWl4IGEgTGVzc29uPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX21pbmktYmFkZ2UgY2EtaG9tZS0yNjA1MDVfX21pbmktYmFkZ2UtcGluayI+Q0FSTCBGZWF0dXJlPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3RhYi1zdWIiPkFkYXB0IGEgcHVibGljIGxlc3NvbiB3aXRob3V0IGNoYW5naW5nIHRoZSBvcmlnaW5hbDwvc3Bhbj4KICAgICAgICAgIDwvc3Bhbj4KICAgICAgICA8L2J1dHRvbj4KCiAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fdGFiIiBkYXRhLWhvbWUtdGFiPSJjaGF0IiByb2xlPSJ0YWIiIGFyaWEtc2VsZWN0ZWQ9ImZhbHNlIiBhcmlhLWNvbnRyb2xzPSJjYS1ob21lLXBhbmVsLWNoYXQiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X190YWItaWNvbiIgYXJpYS1oaWRkZW49InRydWUiPgogICAgICAgICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgc3Ryb2tlPSIjMDBCOEE5Ij4KICAgICAgICAgICAgICA8cGF0aCBkPSJNMjEgMTVhMiAyIDAgMCAxLTIgMkg3bC00IDRWNWEyIDIgMCAwIDEgMi0yaDE0YTIgMiAwIDAgMSAyIDJ6Ij48L3BhdGg+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPHNwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fdGFiLXRpdGxlIj5DaGF0IHdpdGggQ0FSTDwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19taW5pLWJhZGdlIj5OZXc8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fdGFiLXN1YiI+VGFsayB0aHJvdWdoIHlvdXIgaWRlYSBhbmQgbGV0IENBUkwgc2hhcGUgaXQgaW50byBhIHBsYW48L3NwYW4+CiAgICAgICAgICA8L3NwYW4+CiAgICAgICAgPC9idXR0b24+CgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19wYW5lbCBpcy1hY3RpdmUiIGlkPSJjYS1ob21lLXBhbmVsLXNjcmF0Y2giIGRhdGEtaG9tZS1wYW5lbD0ic2NyYXRjaCIgcm9sZT0idGFicGFuZWwiPgogICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19tZWRpYSI+CiAgICAgICAgICA8dmlkZW8gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19zdGFydC12aWRlbyIgbXV0ZWQgbG9vcCBwbGF5c2lubGluZSBwcmVsb2FkPSJtZXRhZGF0YSIgYXJpYS1sYWJlbD0iU3RhcnQgZnJvbSBTY3JhdGNoIGluIENBUkwiPgogICAgICAgICAgICA8c291cmNlIHNyYz0iaHR0cHM6Ly9oaWNhcmwuYWkvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvc3RhcnQtcGxhbm5pbmctZnJvbS1zY3JhdGNoLm1wNCIgdHlwZT0idmlkZW8vbXA0Ij4KICAgICAgICAgIDwvdmlkZW8+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2NhcHRpb24iPgogIENob29zZSB5b3VyIHN0YXJ0aW5nIHBvaW50LCB0aGVuIHNoYXBlIHRoZSBsZXNzb24gaW4gQ0FSTOKAmXMgZ3VpZGVkIHBsYW5uaW5nIGZsb3cuCiAgPGEgaHJlZj0iaHR0cHM6Ly9oaWNhcmwuYWkvYnVpbGQteW91ci1wbGFuLWluLTUtc3RlcHMvIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciI+CiAgICBMZWFybiB0aGUgcGxhbm5pbmcgd29ya2Zsb3cKICAgIDxzdmcgd2lkdGg9IjEzIiBoZWlnaHQ9IjEzIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNNSAxMmgxNCI+PC9wYXRoPjxwYXRoIGQ9Ik0xMiA1bDcgNy03IDciPjwvcGF0aD48L3N2Zz4KICA8L2E+CjwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19wYW5lbCIgaWQ9ImNhLWhvbWUtcGFuZWwtdXBsb2FkIiBkYXRhLWhvbWUtcGFuZWw9InVwbG9hZCIgcm9sZT0idGFicGFuZWwiPgogICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19tZWRpYSI+CiAgICAgICAgICA8dmlkZW8gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19zdGFydC12aWRlbyIgbXV0ZWQgbG9vcCBwbGF5c2lubGluZSBwcmVsb2FkPSJtZXRhZGF0YSIgYXJpYS1sYWJlbD0iVXBsb2FkIGFuZCBFbmhhbmNlIGluIENBUkwiPgogICAgICAgICAgICA8c291cmNlIHNyYz0iaHR0cHM6Ly9oaWNhcmwuYWkvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvc3RhcnQtcGxhbm5pbmctdXBsb2FkLm1wNCIgdHlwZT0idmlkZW8vbXA0Ij4KICAgICAgICAgIDwvdmlkZW8+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2NhcHRpb24iPgogICAgICAgICAgVXBsb2FkIGEgUERGLCBXb3JkIGRvYywgb3IgeW91ciBvd24gbm90ZXMuIENBUkwgc3RydWN0dXJlcyBhbmQgZW5oYW5jZXMgd2hhdCB5b3UgYWxyZWFkeSBoYXZlLgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19wYW5lbCIgaWQ9ImNhLWhvbWUtcGFuZWwtcmVtaXgiIGRhdGEtaG9tZS1wYW5lbD0icmVtaXgiIHJvbGU9InRhYnBhbmVsIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fbWVkaWEiPgogICAgICAgICAgPHZpZGVvIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fc3RhcnQtdmlkZW8iIG11dGVkIGxvb3AgcGxheXNpbmxpbmUgcHJlbG9hZD0ibWV0YWRhdGEiIGFyaWEtbGFiZWw9IlJlbWl4IGEgTGVzc29uIGluIENBUkwiPgogICAgICAgICAgICA8c291cmNlIHNyYz0iaHR0cHM6Ly9oaWNhcmwuYWkvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDUvc3RhcnQtcGxhbm5pbmctcmVtaXgubXA0IiB0eXBlPSJ2aWRlby9tcDQiPgogICAgICAgICAgPC92aWRlbz4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fY2FwdGlvbiI+CiAgICAgICAgICBCcm93c2UgQ2FuYWRpYW4tYWxpZ25lZCBsZXNzb25zLCBoaXQgUmVtaXgsIGFuZCBhZGFwdCB0aGUgcGxhbiBmb3IgeW91ciBvd24gY2xhc3Nyb29tLgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19wYW5lbCIgaWQ9ImNhLWhvbWUtcGFuZWwtY2hhdCIgZGF0YS1ob21lLXBhbmVsPSJjaGF0IiByb2xlPSJ0YWJwYW5lbCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX21lZGlhIj4KICAgICAgICAgIDx2aWRlbyBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3N0YXJ0LXZpZGVvIiBtdXRlZCBsb29wIHBsYXlzaW5saW5lIHByZWxvYWQ9Im1ldGFkYXRhIiBhcmlhLWxhYmVsPSJDaGF0IHdpdGggQ0FSTCI+CiAgICAgICAgICAgIDxzb3VyY2Ugc3JjPSJodHRwczovL2hpY2FybC5haS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNS9zdGFydC1wbGFubmluZy1jaGF0Lm1wNCIgdHlwZT0idmlkZW8vbXA0Ij4KICAgICAgICAgIDwvdmlkZW8+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2NhcHRpb24iPgogICAgICAgICAgRGVzY3JpYmUgeW91ciBsZXNzb24gaW4gcGxhaW4gbGFuZ3VhZ2UuIENBUkwgYXNrcyB0aGUgcmlnaHQgcXVlc3Rpb25zIGFuZCBoYW5kcyBpdCB0byB0aGUgZ2VuZXJhdG9yLgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICA8L2Rpdj4KICA8L2Rpdj4KCgogIDwhLS0gQ09NUExFVEUgVEVBQ0hJTkcgUEFDS0FHRSAtLT4KICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fc2VjdGlvbiBjYS1ob21lLTI2MDUwNV9fc2VjdGlvbi1zb2Z0Ij4KICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19pbm5lciI+CgogICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fc2VjdGlvbi1oZWFkZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19leWVicm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZXllYnJvdy1kb3QiPjwvc3Bhbj4KICAgICAgICAgIE1vcmUgVGhhbiBhIExlc3NvbiBQbGFuCiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3RpdGxlLWxnIj5DcmVhdGUgdGhlIHBsYW4sIG1hdGVyaWFscywgc3VwcG9ydHMsIGFuZCBhc3Nlc3NtZW50cyB0b2dldGhlcjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19jb3B5Ij4KICAgICAgICAgIENBUkwgaGVscHMgeW91IGJ1aWxkIHRoZSBwaWVjZXMgdGhhdCB1c3VhbGx5IHRha2UgZXh0cmEgdGltZSBhZnRlciB0aGUgbGVzc29uIHBsYW4gaXMgZG9uZS4g4oCcQSBvbmUtc3RvcCBzaG9wIGZvciB5b3VyIGN1cnJpY3VsYXIgbmVlZHMu4oCdIDxzdHJvbmcgc3R5bGU9ImNvbG9yOiMwMEI4QTk7Zm9udC13ZWlnaHQ6ODAwOyI+S3Jpc3R5LCBCZXRhIFVzZXI8L3N0cm9uZz4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fcGFja2FnZS1ncmlkIj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2NhcmQgY2EtaG9tZS0yNjA1MDVfX3BhY2thZ2UtY2FyZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fcGFja2FnZS1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBzdHJva2U9IiM1OUM5RTEiPgogICAgICAgICAgICAgIDxyZWN0IHg9IjMiIHk9IjMiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgcng9IjMiPjwvcmVjdD4KICAgICAgICAgICAgICA8cGF0aCBkPSJNOCA4aDhNOCAxMmg4TTggMTZoNSI+PC9wYXRoPgogICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19wYWNrYWdlLXRpdGxlIj5QbGFuPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fcnVsZSI+PC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtbGlzdCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fY2hlY2siIGFyaWEtaGlkZGVuPSJ0cnVlIj48c3ZnIHZpZXdCb3g9IjAgMCAxMCAxMCI+PHBhdGggZD0iTTIgNWwyLjUgMi41TDggMyI+PC9wYXRoPjwvc3ZnPjwvc3Bhbj4KICAgICAgICAgICAgICA8c3Bhbj48c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtbmFtZSI+TGVzc29uICYgVW5pdCBQbGFuIFdpemFyZDwvc3Bhbj48c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtc3ViIj5UZWxsIENBUkwgeW91ciB0b3BpYywgZ29hbHMsIGFuZCBjbGFzcyBuZWVkczwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19jaGVjayIgYXJpYS1oaWRkZW49InRydWUiPjxzdmcgdmlld0JveD0iMCAwIDEwIDEwIj48cGF0aCBkPSJNMiA1bDIuNSAyLjVMOCAzIj48L3BhdGg+PC9zdmc+PC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuPjxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmVhdHVyZS1uYW1lIj5DdXJyaWN1bHVtIEFsaWdubWVudDwvc3Bhbj48c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtc3ViIj5CQywgQWxiZXJ0YSwgT250YXJpbywgYW5kIFVuaXZlcnNhbCBwbGFubmluZyBtb2Rlczwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19jaGVjayIgYXJpYS1oaWRkZW49InRydWUiPjxzdmcgdmlld0JveD0iMCAwIDEwIDEwIj48cGF0aCBkPSJNMiA1bDIuNSAyLjVMOCAzIj48L3BhdGg+PC9zdmc+PC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuPjxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmVhdHVyZS1uYW1lIj5FZGl0YWJsZSBUZWFjaGluZyBNYXRlcmlhbHM8L3NwYW4+PHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mZWF0dXJlLXN1YiI+U2xpZGVzLCByZXNvdXJjZXMsIGNvbXBhbmlvbnMsIGFuZCBzdXBwb3J0cyB5b3UgY2FuIHJldmlzZTwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19jaGVjayIgYXJpYS1oaWRkZW49InRydWUiPjxzdmcgdmlld0JveD0iMCAwIDEwIDEwIj48cGF0aCBkPSJNMiA1bDIuNSAyLjVMOCAzIj48L3BhdGg+PC9zdmc+PC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuPjxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmVhdHVyZS1uYW1lIj5UZWFjaGVyIGluIEZ1bGwgQ29udHJvbDwvc3Bhbj48c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtc3ViIj5UaGUgbGVzc29uIGlzIGFsd2F5cyB5b3VycyB0byByZXZpZXcsIGVkaXQsIGFuZCBkZWNpZGU8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fY2FyZCBjYS1ob21lLTI2MDUwNV9fcGFja2FnZS1jYXJkIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19wYWNrYWdlLWljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIj4KICAgICAgICAgICAgPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHN0cm9rZT0iI0Y2NzFFQSI+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTE3IDIxdi0yYTQgNCAwIDAgMC00LTRINWE0IDQgMCAwIDAtNCA0djIiPjwvcGF0aD4KICAgICAgICAgICAgICA8Y2lyY2xlIGN4PSI5IiBjeT0iNyIgcj0iNCI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTIzIDIxdi0yYTQgNCAwIDAgMC0zLTMuODciPjwvcGF0aD4KICAgICAgICAgICAgICA8cGF0aCBkPSJNMTYgMy4xM2E0IDQgMCAwIDEgMCA3Ljc1Ij48L3BhdGg+CiAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3BhY2thZ2UtdGl0bGUiPlRlYWNoPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fcnVsZSI+PC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtbGlzdCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fY2hlY2siIGFyaWEtaGlkZGVuPSJ0cnVlIj48c3ZnIHZpZXdCb3g9IjAgMCAxMCAxMCI+PHBhdGggZD0iTTIgNWwyLjUgMi41TDggMyI+PC9wYXRoPjwvc3ZnPjwvc3Bhbj4KICAgICAgICAgICAgICA8c3Bhbj48c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtbmFtZSI+RW5nYWdlbWVudCBIb29rczwvc3Bhbj48c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtc3ViIj5Db25uZWN0IHRvcGljcyB0byBzdHVkZW50IGV4cGVyaWVuY2UgYW5kIGN1cmlvc2l0eTwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19jaGVjayIgYXJpYS1oaWRkZW49InRydWUiPjxzdmcgdmlld0JveD0iMCAwIDEwIDEwIj48cGF0aCBkPSJNMiA1bDIuNSAyLjVMOCAzIj48L3BhdGg+PC9zdmc+PC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuPjxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmVhdHVyZS1uYW1lIj5HcmFkdWFsIFJlbGVhc2UgQnVpbHQgSW48L3NwYW4+PHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mZWF0dXJlLXN1YiI+SSBEbywgV2UgRG8sIFlvdSBEbyBzY2FmZm9sZGluZyBidWlsdCBpbnRvIHRoZSBwbGFuPC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmVhdHVyZS1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2NoZWNrIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHN2ZyB2aWV3Qm94PSIwIDAgMTAgMTAiPjxwYXRoIGQ9Ik0yIDVsMi41IDIuNUw4IDMiPjwvcGF0aD48L3N2Zz48L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4+PHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mZWF0dXJlLW5hbWUiPkNvbGxhYm9yYXRpdmUgQWN0aXZpdGllczwvc3Bhbj48c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtc3ViIj5UaGluay1QYWlyLVNoYXJlLCBKaWdzYXcsIGRpc2N1c3Npb24gcHJvbXB0cywgYW5kIG1vcmU8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fY2hlY2siIGFyaWEtaGlkZGVuPSJ0cnVlIj48c3ZnIHZpZXdCb3g9IjAgMCAxMCAxMCI+PHBhdGggZD0iTTIgNWwyLjUgMi41TDggMyI+PC9wYXRoPjwvc3ZnPjwvc3Bhbj4KICAgICAgICAgICAgICA8c3Bhbj48c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtbmFtZSI+SW5jbHVzaXZlIGJ5IERlc2lnbjwvc3Bhbj48c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtc3ViIj5VREwsIGVxdWl0eSwgU0VMLCBhbmQgb3B0aW9uYWwgSVZJIHN1cHBvcnRzPC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2NhcmQgY2EtaG9tZS0yNjA1MDVfX3BhY2thZ2UtY2FyZCI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fcGFja2FnZS1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgICAgICAgICAgIDxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiBzdHJva2U9IiMwMEI4QTkiPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik05IDVIN2EyIDIgMCAwIDAtMiAydjEyYTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDItMlY3YTIgMiAwIDAgMC0yLTJoLTIiPjwvcGF0aD4KICAgICAgICAgICAgICA8cGF0aCBkPSJNOSA1YTIgMiAwIDAgMCAyIDJoMmEyIDIgMCAwIDAgMi0yIj48L3BhdGg+CiAgICAgICAgICAgICAgPHBhdGggZD0iTTkgNWEyIDIgMCAwIDEgMi0yaDJhMiAyIDAgMCAxIDIgMiI+PC9wYXRoPgogICAgICAgICAgICAgIDxwYXRoIGQ9Ik05IDE0bDIgMiA0LTQiPjwvcGF0aD4KICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fcGFja2FnZS10aXRsZSI+QXNzZXNzPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fcnVsZSI+PC9kaXY+CgogICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtbGlzdCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fY2hlY2siIGFyaWEtaGlkZGVuPSJ0cnVlIj48c3ZnIHZpZXdCb3g9IjAgMCAxMCAxMCI+PHBhdGggZD0iTTIgNWwyLjUgMi41TDggMyI+PC9wYXRoPjwvc3ZnPjwvc3Bhbj4KICAgICAgICAgICAgICA8c3Bhbj48c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtbmFtZSI+Rm9ybWF0aXZlIENoZWNrczwvc3Bhbj48c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtc3ViIj5FeGl0IHNsaXBzLCBDRVIsIHRodW1icyB1cC9kb3duLCBhbmQgY2hlY2twb2ludCBpZGVhczwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtaXRlbSI+CiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19jaGVjayIgYXJpYS1oaWRkZW49InRydWUiPjxzdmcgdmlld0JveD0iMCAwIDEwIDEwIj48cGF0aCBkPSJNMiA1bDIuNSAyLjVMOCAzIj48L3BhdGg+PC9zdmc+PC9zcGFuPgogICAgICAgICAgICAgIDxzcGFuPjxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmVhdHVyZS1uYW1lIj5Xb3Jrc2hlZXRzICYgQWN0aXZpdGllczwvc3Bhbj48c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtc3ViIj5HcmFkZS1hcHByb3ByaWF0ZSBjb21wb25lbnRzIGFuZCBjbGFzc3Jvb20gcmVzb3VyY2VzPC9zcGFuPjwvc3Bhbj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmVhdHVyZS1pdGVtIj4KICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2NoZWNrIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHN2ZyB2aWV3Qm94PSIwIDAgMTAgMTAiPjxwYXRoIGQ9Ik0yIDVsMi41IDIuNUw4IDMiPjwvcGF0aD48L3N2Zz48L3NwYW4+CiAgICAgICAgICAgICAgPHNwYW4+PHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mZWF0dXJlLW5hbWUiPkRpZmZlcmVudGlhdGVkIFBhdGh3YXlzPC9zcGFuPjxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmVhdHVyZS1zdWIiPlN1cHBvcnRzIGZvciBncmFkZSBiYW5kcywgRUxMIGxldmVscywgYW5kIGxlYXJuZXIgbmVlZHM8L3NwYW4+PC9zcGFuPgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mZWF0dXJlLWl0ZW0iPgogICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fY2hlY2siIGFyaWEtaGlkZGVuPSJ0cnVlIj48c3ZnIHZpZXdCb3g9IjAgMCAxMCAxMCI+PHBhdGggZD0iTTIgNWwyLjUgMi41TDggMyI+PC9wYXRoPjwvc3ZnPjwvc3Bhbj4KICAgICAgICAgICAgICA8c3Bhbj48c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtbmFtZSI+UmVmbGVjdCAmIFJldmlzZSBUb29sczwvc3Bhbj48c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtc3ViIj5TdHVkZW50IHJlZmxlY3Rpb24sIHRlYWNoZXIgbm90ZXMsIGFuZCByZXZpc2lvbiBzdXBwb3J0czwvc3Bhbj48L3NwYW4+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyOyI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2NvcHkiIHN0eWxlPSJtYXJnaW4tYm90dG9tOjIwcHghaW1wb3J0YW50O2ZvbnQtc3R5bGU6aXRhbGljOyI+CiAgICAgICAgICBDb21wb25lbnRzIGFyZSBjdXJyaWN1bHVtLWFsaWduZWQgYW5kIHJlYWR5IHRvIHVzZSwgY3VzdG9taXplLCBvciByZW1peC4KICAgICAgICA8L2Rpdj4KICAgICAgICA8YSBocmVmPSIvZmVhdHVyZXMvIiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2J0biBjYS1ob21lLTI2MDUwNV9fYnRuLXByaW1hcnkiPgogICAgICAgICAgRXhwbG9yZSBhbGwgZmVhdHVyZXMKICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj7ihpI8L3NwYW4+CiAgICAgICAgPC9hPgogICAgICA8L2Rpdj4KCiAgICA8L2Rpdj4KICA8L2Rpdj4KCiAgPCEtLSBGUkVOQ0ggSU1NRVJTSU9OIFNQT1RMSUdIVCAtLT4KICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fc2VjdGlvbiI+CiAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9faW5uZXIiPgoKICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3NlY3Rpb24taGVhZGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZXllYnJvdyI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2V5ZWJyb3ctZG90Ij48L3NwYW4+CiAgICAgICAgICBCdWlsdCBmb3IgQ2FuYWRpYW4gQ2xhc3Nyb29tcwogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X190aXRsZS1sZyI+RnJlbmNoIEltbWVyc2lvbiwgd2l0aG91dCBzdGFydGluZyBmcm9tIHRyYW5zbGF0aW9uPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2NvcHkiPgogICAgICAgICAgQ0FSTCBzdXBwb3J0cyBFbmdsaXNoLCBGcmVuY2ggSW1tZXJzaW9uLCBTcGFuaXNoLCBhbmQgVW5pdmVyc2FsIHBsYW5uaW5nIG1vZGVzLCBzbyB0ZWFjaGVycyBjYW4gZGVjaWRlIHdoYXQgc2hvdWxkIGJlIGZ1bGx5IGltbWVyc2VkLCBiaWxpbmd1YWwsIG9yIHRlYWNoZXItZmFjaW5nIG9ubHkuCiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3Nwb3RsaWdodC1ncmlkIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fY2FyZCBjYS1ob21lLTI2MDUwNV9fc3BvdGxpZ2h0LWNhcmQiPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3RpdGxlLW1kIj5DaG9vc2UgdGhlIGxhbmd1YWdlIHNldHVwIHRoYXQgZml0cyB5b3VyIGNsYXNzPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fY29weSI+CiAgICAgICAgICAgIEdlbmVyYXRlIHRoZSBmdWxsIGxlc3NvbiBpbiBGcmVuY2gsIGtlZXAgdGVhY2hlciBub3RlcyBpbiBFbmdsaXNoIHdoaWxlIHN0dWRlbnQgbWF0ZXJpYWxzIGFyZSBpbiBGcmVuY2gsIG9yIHVzZSBwYXJ0aWFsIGxhbmd1YWdlIGludGVncmF0aW9uIGZvciBrZXkgdm9jYWJ1bGFyeSBhbmQgY2xhc3Nyb29tIHJvdXRpbmVzLgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fbW9kZS1waWxscyIgYXJpYS1sYWJlbD0iQ0FSTCBsYW5ndWFnZSBtb2RlcyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fbW9kZS1waWxsIj5GdWxsIEltbWVyc2lvbjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19tb2RlLXBpbGwiPlN0dWRlbnQtRmFjaW5nIEZyZW5jaDwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19tb2RlLXBpbGwiPlBhcnRpYWwgSW50ZWdyYXRpb248L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fbW9kZS1waWxsIj5FbmdsaXNoIE5vdGVzPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19sYW5ndWFnZS1zYW1wbGUiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19sYW5ndWFnZS1sYWJlbCI+RXhhbXBsZSBvdXRwdXQ8L3NwYW4+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fc2FtcGxlLXRpdGxlIj5HcmFkZSA0IFNjaWVuY2U6IExlcyDDqXRhdHMgZGUgbGEgbWF0acOocmU8L2Rpdj4KICAgICAgICAgIDxwIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fc2FtcGxlLWNvcHkiPjxzdHJvbmc+T2JqZWN0aWYgZOKAmWFwcHJlbnRpc3NhZ2U6PC9zdHJvbmc+IExlcyDDqWzDqHZlcyBwb3Vycm9udCBpZGVudGlmaWVyIGV0IGTDqWNyaXJlIGxlcyB0cm9pcyDDqXRhdHMgZGUgbGEgbWF0acOocmUgZXQgZXhwbGlxdWVyIGNvbW1lbnQgbGEgY2hhbGV1ciBwZXV0IHByb3ZvcXVlciB1biBjaGFuZ2VtZW50IGTigJnDqXRhdC48L3A+CiAgICAgICAgICA8cCBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3NhbXBsZS1jb3B5Ij48c3Ryb25nPlN0dWRlbnQgY29tcG9uZW50Ojwvc3Ryb25nPiBBIEZyZW5jaCBncmFwaGljIG9yZ2FuaXplciwgdm9jYWJ1bGFyeSBzdXBwb3J0LCBhbmQgZXhpdCBzbGlwIGNvbm5lY3RlZCB0byB0aGUgc2FtZSBsZXNzb24uPC9wPgogICAgICAgICAgPHAgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19zYW1wbGUtY29weSI+PHN0cm9uZz5UZWFjaGVyIGNob2ljZTo8L3N0cm9uZz4gS2VlcCB0aGUgZmFjaWxpdGF0b3Igbm90ZXMgaW4gRW5nbGlzaCwgRnJlbmNoLCBvciBhIG1peCBvZiBib3RoLjwvcD4KICAgICAgICAgIDxhIGhyZWY9Ii9mZWF0dXJlcy8iIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fYnRuIGNhLWhvbWUtMjYwNTA1X19idG4tc2Vjb25kYXJ5Ij4KICAgICAgICAgICAgU2VlIGxhbmd1YWdlIG9wdGlvbnMKICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPuKGkjwvc3Bhbj4KICAgICAgICAgIDwvYT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CgogICAgPC9kaXY+CiAgPC9kaXY+CgoKICA8IS0tIENBUkwgKyBDT01QQVNTIEVDT1NZU1RFTSAtLT4KICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fc2VjdGlvbiBjYS1ob21lLTI2MDUwNV9fc2VjdGlvbi1zb2Z0Ij4KICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19pbm5lciI+CgogICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fc2VjdGlvbi1oZWFkZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19leWVicm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZXllYnJvdy1kb3QiPjwvc3Bhbj4KICAgICAgICAgIFRoZSBDQVJMIEVjb3N5c3RlbQogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X190aXRsZS1sZyI+UGxhbiBpbiBDQVJMLiBUcmFjayBpbiBDb21wYXNzLjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19jb3B5Ij4KICAgICAgICAgIENBUkwgaGVscHMgeW91IGNyZWF0ZSB0aGUgbGVzc29uLiBDb21wYXNzIGhlbHBzIHlvdSBzZWUgd2hhdCBpcyBwbGFubmVkLCB3aGF0IGhhcyBiZWVuIHRhdWdodCwgYW5kIHdoYXQgc3RpbGwgbmVlZHMgYXR0ZW50aW9uLgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19lY29zeXN0ZW0tZ3JpZCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2NhcmQgY2EtaG9tZS0yNjA1MDVfX2Vjb3N5c3RlbS1jYXJkIj4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZWNvc3lzdGVtLWJhZGdlIj5DQVJMPC9zcGFuPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3RpdGxlLW1kIj5DcmVhdGUgY2xhc3Nyb29tLXJlYWR5IGxlc3NvbnMgYW5kIG1hdGVyaWFsczwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2NvcHkiPgogICAgICAgICAgICBCdWlsZCBjdXJyaWN1bHVtLWFsaWduZWQgbGVzc29ucywgY29tcG9uZW50cywgdGVhY2hpbmcgcmVzb3VyY2VzLCBhbmQgaW5jbHVzaXZlIHN1cHBvcnRzIGZyb20gb25lIGNvbm5lY3RlZCBwbGFubmluZyB3b3JrZmxvdy4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtbGlzdCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mZWF0dXJlLWl0ZW0iPjxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fY2hlY2siIGFyaWEtaGlkZGVuPSJ0cnVlIj48c3ZnIHZpZXdCb3g9IjAgMCAxMCAxMCI+PHBhdGggZD0iTTIgNWwyLjUgMi41TDggMyI+PC9wYXRoPjwvc3ZnPjwvc3Bhbj48c3Bhbj48c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtbmFtZSI+TGVzc29ucywgdW5pdHMsIGFuZCBjb21wb25lbnRzPC9zcGFuPjxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmVhdHVyZS1zdWIiPkNyZWF0ZSBmcm9tIHNjcmF0Y2gsIHVwbG9hZCwgcmVtaXgsIG9yIGNoYXQ8L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmVhdHVyZS1pdGVtIj48c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2NoZWNrIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHN2ZyB2aWV3Qm94PSIwIDAgMTAgMTAiPjxwYXRoIGQ9Ik0yIDVsMi41IDIuNUw4IDMiPjwvcGF0aD48L3N2Zz48L3NwYW4+PHNwYW4+PHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mZWF0dXJlLW5hbWUiPkluY2x1c2l2ZSBwbGFubmluZyBzdXBwb3J0czwvc3Bhbj48c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtc3ViIj5VREwsIEVMTCwgU0VMLCBlcXVpdHksIGFuZCBvcHRpb25hbCBJVkkgc3VwcG9ydHM8L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmVhdHVyZS1pdGVtIj48c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2NoZWNrIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHN2ZyB2aWV3Qm94PSIwIDAgMTAgMTAiPjxwYXRoIGQ9Ik0yIDVsMi41IDIuNUw4IDMiPjwvcGF0aD48L3N2Zz48L3NwYW4+PHNwYW4+PHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mZWF0dXJlLW5hbWUiPlJlbWl4YWJsZSBsaWJyYXJ5PC9zcGFuPjxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmVhdHVyZS1zdWIiPkFkYXB0IHB1YmxpYyBsZXNzb25zIHdpdGhvdXQgY2hhbmdpbmcgdGhlIG9yaWdpbmFsPC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fY2FyZCBjYS1ob21lLTI2MDUwNV9fZWNvc3lzdGVtLWNhcmQiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19lY29zeXN0ZW0tYmFkZ2UiPkNvbXBhc3M8L3NwYW4+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fdGl0bGUtbWQiPlRyYWNrIGNvdmVyYWdlIGFuZCBwbGFuIG5leHQgc3RlcHM8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19jb3B5Ij4KICAgICAgICAgICAgVXNlIENvbXBhc3MgdG8gcmV2aWV3IGN1cnJpY3VsdW0gbWF0Y2hlcywgdHJhY2sgcGxhbm5lZCBhbmQgdGF1Z2h0IGl0ZW1zLCBhbmQgZ2VuZXJhdGUgY292ZXJhZ2Ugc3VtbWFyaWVzIHdoZW4geW91IG5lZWQgdGhlbS4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtbGlzdCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mZWF0dXJlLWl0ZW0iPjxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fY2hlY2siIGFyaWEtaGlkZGVuPSJ0cnVlIj48c3ZnIHZpZXdCb3g9IjAgMCAxMCAxMCI+PHBhdGggZD0iTTIgNWwyLjUgMi41TDggMyI+PC9wYXRoPjwvc3ZnPjwvc3Bhbj48c3Bhbj48c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtbmFtZSI+UGxhbm5lZCwgdGF1Z2h0LCBhbmQgdG8tZG8gdmlzaWJpbGl0eTwvc3Bhbj48c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtc3ViIj5TZWUgd2hlcmUgeW91ciBjbGFzcyBpcyBhY3Jvc3MgdGhlIGN1cnJpY3VsdW08L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmVhdHVyZS1pdGVtIj48c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2NoZWNrIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHN2ZyB2aWV3Qm94PSIwIDAgMTAgMTAiPjxwYXRoIGQ9Ik0yIDVsMi41IDIuNUw4IDMiPjwvcGF0aD48L3N2Zz48L3NwYW4+PHNwYW4+PHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mZWF0dXJlLW5hbWUiPlBsYW4gSWRlYXM8L3NwYW4+PHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mZWF0dXJlLXN1YiI+R2V0IHN0YXJ0aW5nIHBvaW50cyBmb3IgY3VycmljdWx1bSBpdGVtcyB0aGF0IG5lZWQgYXR0ZW50aW9uPC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZlYXR1cmUtaXRlbSI+PHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19jaGVjayIgYXJpYS1oaWRkZW49InRydWUiPjxzdmcgdmlld0JveD0iMCAwIDEwIDEwIj48cGF0aCBkPSJNMiA1bDIuNSAyLjVMOCAzIj48L3BhdGg+PC9zdmc+PC9zcGFuPjxzcGFuPjxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmVhdHVyZS1uYW1lIj5Db3ZlcmFnZSByZXBvcnRzPC9zcGFuPjxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmVhdHVyZS1zdWIiPkNyZWF0ZSBzdW1tYXJpZXMgZm9yIHJlZmxlY3Rpb24sIHBsYW5uaW5nLCBvciBhZG1pbiBjb252ZXJzYXRpb25zPC9zcGFuPjwvc3Bhbj48L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPGRpdiBzdHlsZT0ibWFyZ2luLXRvcDoyNHB4IWltcG9ydGFudDsiPgogICAgICAgICAgICA8YSBocmVmPSIvY29tcGFzcy8iIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fYnRuIGNhLWhvbWUtMjYwNTA1X19idG4tc2Vjb25kYXJ5Ij4KICAgICAgICAgICAgICBTZWUgQ29tcGFzcwogICAgICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj7ihpI8L3NwYW4+CiAgICAgICAgICAgIDwvYT4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICA8L2Rpdj4KICA8L2Rpdj4KCgogIDwhLS0gV09SS1NQQUNFIFBSRVZJRVcgLS0+CiAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3NlY3Rpb24iPgogICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2lubmVyIj4KCiAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19zZWN0aW9uLWhlYWRlciI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2V5ZWJyb3ciPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19leWVicm93LWRvdCI+PC9zcGFuPgogICAgICAgICAgSW5zaWRlIENBUkwKICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fdGl0bGUtbGciPldlbGNvbWUgdG8geW91ciBDQVJMIHdvcmtzcGFjZTwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19jb3B5Ij4KICAgICAgICAgIFlvdXIgcGVyc29uYWxpemVkIGh1YiBmb3IgY3JlYXRpbmcsIG9yZ2FuaXppbmcsIGFuZCBzaGFyaW5nIGluY2x1c2l2ZSBsZXNzb25zLgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X193b3Jrc3BhY2UtZ3JpZCI+CgogICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3dvcmtzcGFjZS1jYXJkIiBkYXRhLWNhLWhvbWUtbGlnaHRib3gtc3JjPSJodHRwczovL2hpY2FybC5haS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wMi9VcGRhdGVkLWRhc2hib2FyZC5wbmciIGRhdGEtY2EtaG9tZS1saWdodGJveC1hbHQ9IkNBUkwgRGFzaGJvYXJkIj4KICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2hpY2FybC5haS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wMi9VcGRhdGVkLWRhc2hib2FyZC5wbmciIGFsdD0iQ0FSTCBEYXNoYm9hcmQiIGxvYWRpbmc9ImxhenkiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X193b3Jrc3BhY2UtZm9vdGVyIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X193b3Jrc3BhY2UtZG90Ij48L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fd29ya3NwYWNlLWxhYmVsIj5EYXNoYm9hcmQ8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fd29ya3NwYWNlLWNhcHRpb24iPllvdXIgbGVzc29uIGxpYnJhcnkgYW5kIHdvcmtzcGFjZTwvc3Bhbj4KICAgICAgICAgIDwvc3Bhbj4KICAgICAgICA8L2J1dHRvbj4KCiAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fd29ya3NwYWNlLWNhcmQiIGRhdGEtY2EtaG9tZS1saWdodGJveC1zcmM9Imh0dHBzOi8vaGljYXJsLmFpL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzAyL3VwZGF0ZWQtbGlicmFyeS1zY2FsZWQucG5nIiBkYXRhLWNhLWhvbWUtbGlnaHRib3gtYWx0PSJDQVJMIExpYnJhcnkiPgogICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vaGljYXJsLmFpL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzAyL3VwZGF0ZWQtbGlicmFyeS1zY2FsZWQucG5nIiBhbHQ9IkNBUkwgTGlicmFyeSIgbG9hZGluZz0ibGF6eSI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3dvcmtzcGFjZS1mb290ZXIiPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3dvcmtzcGFjZS1kb3QiPjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X193b3Jrc3BhY2UtbGFiZWwiPkxpYnJhcnk8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fd29ya3NwYWNlLWNhcHRpb24iPkJyb3dzZSBhbmQgcmVtaXggY29sbGFib3JhdGl2ZSBsZXNzb25zPC9zcGFuPgogICAgICAgICAgPC9zcGFuPgogICAgICAgIDwvYnV0dG9uPgoKICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X193b3Jrc3BhY2UtY2FyZCIgZGF0YS1jYS1ob21lLWxpZ2h0Ym94LXNyYz0iaHR0cHM6Ly9oaWNhcmwuYWkvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDQvbmV3LWNyZWF0ZS1wYWdlLnBuZyIgZGF0YS1jYS1ob21lLWxpZ2h0Ym94LWFsdD0iQ0FSTCBMZXNzb24gQnVpbGRlciI+CiAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9oaWNhcmwuYWkvd3AtY29udGVudC91cGxvYWRzLzIwMjYvMDQvbmV3LWNyZWF0ZS1wYWdlLnBuZyIgYWx0PSJDQVJMIExlc3NvbiBCdWlsZGVyIiBsb2FkaW5nPSJsYXp5Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fd29ya3NwYWNlLWZvb3RlciI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fd29ya3NwYWNlLWRvdCI+PC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3dvcmtzcGFjZS1sYWJlbCI+TGVzc29uIEJ1aWxkZXI8L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fd29ya3NwYWNlLWNhcHRpb24iPkFJLWFzc2lzdGVkIGNyZWF0aW9uIHdpdGggZnVsbCB0ZWFjaGVyIGNvbnRyb2w8L3NwYW4+CiAgICAgICAgICA8L3NwYW4+CiAgICAgICAgPC9idXR0b24+CgogICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3dvcmtzcGFjZS1jYXJkIiBkYXRhLWNhLWhvbWUtbGlnaHRib3gtc3JjPSJodHRwczovL2hpY2FybC5haS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC9jb21wb25lbnQtZHJhd2VyLWFnYWluLnBuZyIgZGF0YS1jYS1ob21lLWxpZ2h0Ym94LWFsdD0iQ0FSTCBDb21wb25lbnRzIj4KICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2hpY2FybC5haS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wNC9jb21wb25lbnQtZHJhd2VyLWFnYWluLnBuZyIgYWx0PSJDQVJMIENvbXBvbmVudHMiIGxvYWRpbmc9ImxhenkiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X193b3Jrc3BhY2UtZm9vdGVyIj4KICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X193b3Jrc3BhY2UtZG90Ij48L3NwYW4+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fd29ya3NwYWNlLWxhYmVsIj5Db21wb25lbnRzPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3dvcmtzcGFjZS1jYXB0aW9uIj5HZW5lcmF0ZSBkaWZmZXJlbnRpYXRlZCBhY3Rpdml0aWVzIGFuZCBhc3Nlc3NtZW50czwvc3Bhbj4KICAgICAgICAgIDwvc3Bhbj4KICAgICAgICA8L2J1dHRvbj4KCiAgICAgIDwvZGl2PgoKICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2NhbGxvdXRzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fY2FsbG91dCI+CiAgICAgICAgICA8c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2NoZWNrIj48c3ZnIHZpZXdCb3g9IjAgMCAxMCAxMCI+PHBhdGggZD0iTTIgNWwyLjUgMi41TDggMyI+PC9wYXRoPjwvc3ZnPjwvc3Bhbj4KICAgICAgICAgIDxzcGFuPkxpdmUgZWRpdCAmIGN1c3RvbWl6ZTwvc3Bhbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2NhbGxvdXQiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19jaGVjayI+PHN2ZyB2aWV3Qm94PSIwIDAgMTAgMTAiPjxwYXRoIGQ9Ik0yIDVsMi41IDIuNUw4IDMiPjwvcGF0aD48L3N2Zz48L3NwYW4+CiAgICAgICAgICA8c3Bhbj5BZGQgZGlmZmVyZW50aWF0ZWQgY29tcG9uZW50czwvc3Bhbj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2NhbGxvdXQiPgogICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19jaGVjayI+PHN2ZyB2aWV3Qm94PSIwIDAgMTAgMTAiPjxwYXRoIGQ9Ik0yIDVsMi41IDIuNUw4IDMiPjwvcGF0aD48L3N2Zz48L3NwYW4+CiAgICAgICAgICA8c3Bhbj5TaGFyZSB3aXRoIGNvbGxlYWd1ZXM8L3NwYW4+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgoKICAgIDwvZGl2PgogIDwvZGl2PgoKCiAgPCEtLSBURUFDSEVSIFFVT1RFUyAtLT4KICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fc2VjdGlvbiBjYS1ob21lLTI2MDUwNV9fc2VjdGlvbi1zb2Z0Ij4KICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19pbm5lciI+CgogICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fc2VjdGlvbi1oZWFkZXIiPgogICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19leWVicm93Ij4KICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZXllYnJvdy1kb3QiPjwvc3Bhbj4KICAgICAgICAgIEJldGEgVGVhY2hlciBGZWVkYmFjawogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X190aXRsZS1sZyI+V2hhdCB0ZWFjaGVycyBhcmUgc2F5aW5nPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2NvcHkiPgogICAgICAgICAgRWFybHkgZmVlZGJhY2sgZnJvbSBDYW5hZGlhbiBiZXRhIHRlYWNoZXJzLgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mZWF0dXJlZC1xdW90ZSI+CiAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3F1b3RlLWF2YXRhciI+SzwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mZWF0dXJlZC1xdW90ZS1ib2R5Ij4KICAgICAgICAgIDxwIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmVhdHVyZWQtdGV4dCI+QSBvbmUtc3RvcCBzaG9wIGZvciB5b3VyIGN1cnJpY3VsYXIgbmVlZHMuPC9wPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3F1b3RlLW1ldGEiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fcXVvdGUtbmFtZSI+S3Jpc3R5PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19xdW90ZS1yb2xlIj5FTEEgJiBGcmVuY2ggSW1tZXJzaW9uLCBHcmFkZXMgOS0xMiwgU2FhbmljaCwgQkM8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KCiAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19xdW90ZS1ncmlkIj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2NhcmQgY2EtaG9tZS0yNjA1MDVfX3F1b3RlLWNhcmQiPgogICAgICAgICAgPHAgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19xdW90ZS1zbWFsbCI+SGF2aW5nIGEgcmVzb3VyY2Ugb2YgZ3JlYXQgbGVzc29ucyBzYXZlcyByZWludmVudGluZyB0aGUgd2hlZWwuPC9wPgogICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3F1b3RlLWZvb3RlciI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19zbWFsbC1hdmF0YXIiPgogICAgICAgICAgICAgIDxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiPgogICAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTIiIGN5PSI4IiByPSI0IiBmaWxsPSJ3aGl0ZSI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNNCAyMGMwLTQuNCAzLjYtOCA4LThzOCAzLjYgOCA4IiBmaWxsPSJ3aGl0ZSI+PC9wYXRoPgogICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fc21hbGwtbmFtZSI+Sy0yIFRlYWNoZXI8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fc21hbGwtcm9sZSI+TG93ZXIgTWFpbmxhbmQsIEJDPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19jYXJkIGNhLWhvbWUtMjYwNTA1X19xdW90ZS1jYXJkIj4KICAgICAgICAgIDxwIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fcXVvdGUtc21hbGwiPkEgZ3JlYXQgcGxhdGZvcm0gdG8gaGVscCBjb21wbGV0ZSBzb21lIGhhbGYtYmFrZWQgaWRlYXMsIG9yIGZpbmQgd2F5cyB5b3VyIGlkZWFzIGNhbiBjb25uZWN0IHRvIHRoZSBjdXJyaWN1bHVtLjwvcD4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19xdW90ZS1mb290ZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fc21hbGwtYXZhdGFyIj5LeTwvZGl2PgogICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19zbWFsbC1uYW1lIj5LeXJhPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3NtYWxsLXJvbGUiPkstMiBUZWFjaGVyLCBTRDEwLCBCQzwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fY2FyZCBjYS1ob21lLTI2MDUwNV9fcXVvdGUtY2FyZCI+CiAgICAgICAgICA8cCBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3F1b3RlLXNtYWxsIj5UaGUgYmxvY2tzIG1ha2UgaXQgZWFzaWx5IHJlYWRhYmxlIGFuZCBxdWljayBmb3IgdGhlIDMwIHNlY29uZHMgeW91IGhhdmUgd2hpbGUgZXZlcnlvbmUgY29tZXMgdG8gdGhlIGNhcnBldCBiZWZvcmUgeW91IHRlYWNoLjwvcD4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19xdW90ZS1mb290ZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fc21hbGwtYXZhdGFyIj5SPC9kaXY+CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3NtYWxsLW5hbWUiPlJhY2hlbDwvZGl2PgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19zbWFsbC1yb2xlIj5HcmFkZSAxLzIgVGVhY2hlciwgTGFuZ2xleSwgQkM8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgIDwvZGl2PgoKICAgIDwvZGl2PgogIDwvZGl2PgoKCiAgPCEtLSBGQVEgLS0+CiAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3NlY3Rpb24iPgogICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2lubmVyIj4KICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZhcS1zaGVsbCI+CgogICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mYXEtaGVhZGVyIj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X190aXRsZS1sZyI+RnJlcXVlbnRseSBBc2tlZCBRdWVzdGlvbnM8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19jb3B5Ij5Db21tb24gcXVlc3Rpb25zIGZyb20gZWR1Y2F0b3JzIGFib3V0IHVzaW5nIENBUkw8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZhcS1ncmlkIj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmFxLW1hc2NvdCI+CiAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2hpY2FybC5haS93cC1jb250ZW50L3VwbG9hZHMvMjAyNi8wMi9Mb2dvcy1GaW5hbC0xMDAwLXgtNTAwLXB4LTgwMC14LTUwMC1weC02LnBuZyIgYWx0PSJDQVJMIG1hc2NvdCB3aXRoIHF1ZXN0aW9uIiBsb2FkaW5nPSJsYXp5Ij4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mYXEtbGlzdCI+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmFxLWl0ZW0iPgogICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZhcS1xdWVzdGlvbiIgZGF0YS1jYS1ob21lLWZhcT4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmFxLXF1ZXN0aW9uLWxlZnQiPgogICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmFxLWljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik05LjA5IDlhMyAzIDAgMCAxIDUuODMgMWMwIDItMyAzLTMgMyI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjE3IiB4Mj0iMTIuMDEiIHkyPSIxNyI+PC9saW5lPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mYXEtdGV4dCI+V2h5IG5vdCBqdXN0IHVzZSBDaGF0R1BUPzwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mYXEtYXJyb3ciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBvbHlsaW5lIHBvaW50cz0iNiA5IDEyIDE1IDE4IDkiPjwvcG9seWxpbmU+PC9zdmc+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZhcS1hbnN3ZXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZhcS1hbnN3ZXItaW5uZXIiPgogICAgICAgICAgICAgICAgICBDaGF0R1BUIGNhbiBiZSBoZWxwZnVsIGZvciBxdWljayBicmFpbnN0b3JtaW5nLCBidXQgQ0FSTCBpcyBidWlsdCBhcyBhIGNsYXNzcm9vbSBwbGFubmluZyB3b3JrZmxvdy4gQ0FSTCB1c2VzIHlvdXIgdGVhY2hlci1zZXQgcGxhbm5pbmcgcHJlZmVyZW5jZXMsIHN1cHBvcnRzIENhbmFkaWFuIGN1cnJpY3VsdW0gbW9kZXMsIGZpbGxzIGNvbXBvbmVudHMgZnJvbSB5b3VyIGxlc3NvbiwgaW5jbHVkZXMgRnJlbmNoIEltbWVyc2lvbiBvcHRpb25zLCBhbmQgY29ubmVjdHMgcGxhbm5pbmcgdG8gcmVtaXhpbmcgYW5kIGN1cnJpY3VsdW0gY292ZXJhZ2UgdGhyb3VnaCBDb21wYXNzLgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mYXEtaXRlbSI+CiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmFxLXF1ZXN0aW9uIiBkYXRhLWNhLWhvbWUtZmFxPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mYXEtcXVlc3Rpb24tbGVmdCI+CiAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mYXEtaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTkuMDkgOWEzIDMgMCAwIDEgNS44MyAxYzAgMi0zIDMtMyAzIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iMTciIHgyPSIxMi4wMSIgeTI9IjE3Ij48L2xpbmU+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZhcS10ZXh0Ij5Ib3cgZG8gSSBnZXQgc3RhcnRlZCB3aXRoIENBUkw/PC9zcGFuPgogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZhcS1hcnJvdyIgdmlld0JveD0iMCAwIDI0IDI0Ij48cG9seWxpbmUgcG9pbnRzPSI2IDkgMTIgMTUgMTggOSI+PC9wb2x5bGluZT48L3N2Zz4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmFxLWFuc3dlciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmFxLWFuc3dlci1pbm5lciI+CiAgICAgICAgICAgICAgICAgIFN0YXJ0IGJ5IHNldHRpbmcgdXAgeW91ciBkZWZhdWx0IGN1cnJpY3VsdW0gaW4gU2V0dGluZ3Mgc28gZXZlcnkgbGVzc29uIGF1dG8tYWxpZ25zIHRvIHlvdXIgcHJvdmluY2UuIFRoZW4gcmVhZCB0aGUgPGEgaHJlZj0iaHR0cHM6Ly9oaWNhcmwuYWkvY2FybC1pbi01LW1pbnV0ZXMtdGhlLWVzc2VudGlhbC10b3VyLyI+RXNzZW50aWFsIFRvdXI8L2E+LCBpdCB3YWxrcyB5b3UgdGhyb3VnaCB0aGUgZWRpdG9yIGFuZCBrZXkgZmVhdHVyZXMgaW4gNSBtaW51dGVzLgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZhcS1pdGVtIj4KICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mYXEtcXVlc3Rpb24iIGRhdGEtY2EtaG9tZS1mYXE+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZhcS1xdWVzdGlvbi1sZWZ0Ij4KICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZhcS1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiPgogICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIj48L2NpcmNsZT4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNOS4wOSA5YTMgMyAwIDAgMSA1LjgzIDFjMCAyLTMgMy0zIDMiPjwvcGF0aD4KICAgICAgICAgICAgICAgICAgICA8bGluZSB4MT0iMTIiIHkxPSIxNyIgeDI9IjEyLjAxIiB5Mj0iMTciPjwvbGluZT4KICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmFxLXRleHQiPkNhbiBJIGVkaXQgYW5kIGN1c3RvbWl6ZSBteSBsZXNzb25zPzwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mYXEtYXJyb3ciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBvbHlsaW5lIHBvaW50cz0iNiA5IDEyIDE1IDE4IDkiPjwvcG9seWxpbmU+PC9zdmc+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZhcS1hbnN3ZXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZhcS1hbnN3ZXItaW5uZXIiPgogICAgICAgICAgICAgICAgICBZZXMuIEV2ZXJ5dGhpbmcgQ0FSTCBnZW5lcmF0ZXMgaXMgYSBzdGFydGluZyBwb2ludCwgbm90IGEgZmluYWwgcHJvZHVjdC4gWW91IGNhbiBlZGl0IHRleHQsIGFkanVzdCB0aW1pbmcsIHJldmlzZSBzZWN0aW9ucywgYWRkIG9yIHJlbW92ZSBtYXRlcmlhbHMsIGFuZCBrZWVwIGZ1bGwgY29udHJvbCBvdmVyIHdoYXQgaXMgdXNlZC4gU2VlIDxhIGhyZWY9Imh0dHBzOi8vaGljYXJsLmFpL2xlc3Nvbi1lZGl0aW5nLW1hZGUtZWFzeS8iPkxlc3NvbiBFZGl0aW5nIE1hZGUgRWFzeTwvYT4uCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmFxLWl0ZW0iPgogICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZhcS1xdWVzdGlvbiIgZGF0YS1jYS1ob21lLWZhcT4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmFxLXF1ZXN0aW9uLWxlZnQiPgogICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmFxLWljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik05LjA5IDlhMyAzIDAgMCAxIDUuODMgMWMwIDItMyAzLTMgMyI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjE3IiB4Mj0iMTIuMDEiIHkyPSIxNyI+PC9saW5lPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mYXEtdGV4dCI+RG9lcyBDQVJMIHN1cHBvcnQgRnJlbmNoIEltbWVyc2lvbj88L3NwYW4+CiAgICAgICAgICAgICAgICA8L3NwYW4+CiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmFxLWFycm93IiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwb2x5bGluZSBwb2ludHM9IjYgOSAxMiAxNSAxOCA5Ij48L3BvbHlsaW5lPjwvc3ZnPgogICAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mYXEtYW5zd2VyIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mYXEtYW5zd2VyLWlubmVyIj4KICAgICAgICAgICAgICAgICAgWWVzLiBDQVJMIHN1cHBvcnRzIEZyZW5jaCBhbmQgU3BhbmlzaCBnZW5lcmF0aW9uIGFjcm9zcyBpbW1lcnNpb24gbW9kZXMsIGluY2x1ZGluZyBmdWxsIGltbWVyc2lvbiwgc3R1ZGVudC1mYWNpbmcgbWF0ZXJpYWxzIG9ubHksIG9yIHBhcnRpYWwgbGFuZ3VhZ2UgaW50ZWdyYXRpb24uIFRoaXMgaXMgYnVpbHQgaW50byB0aGUgcGxhbm5pbmcgd29ya2Zsb3csIG5vdCB0cmVhdGVkIGFzIGEgbGFzdC1zdGVwIHRyYW5zbGF0aW9uIHRhc2suIExlYXJuIG1vcmUgaW4gPGEgaHJlZj0iaHR0cHM6Ly9oaWNhcmwuYWkvbGVhcm4tc3VwcG9ydC8iPkxlYXJuICYgU3VwcG9ydDwvYT4uCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmFxLWl0ZW0iPgogICAgICAgICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZhcS1xdWVzdGlvbiIgZGF0YS1jYS1ob21lLWZhcT4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmFxLXF1ZXN0aW9uLWxlZnQiPgogICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmFxLWljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCI+CiAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiPjwvY2lyY2xlPgogICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik05LjA5IDlhMyAzIDAgMCAxIDUuODMgMWMwIDItMyAzLTMgMyI+PC9wYXRoPgogICAgICAgICAgICAgICAgICAgIDxsaW5lIHgxPSIxMiIgeTE9IjE3IiB4Mj0iMTIuMDEiIHkyPSIxNyI+PC9saW5lPgogICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mYXEtdGV4dCI+SG93IGRvIEkgYWRkIHdvcmtzaGVldHMgYW5kIGFjdGl2aXRpZXMgdG8gbXkgbGVzc29uPzwvc3Bhbj4KICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mYXEtYXJyb3ciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBvbHlsaW5lIHBvaW50cz0iNiA5IDEyIDE1IDE4IDkiPjwvcG9seWxpbmU+PC9zdmc+CiAgICAgICAgICAgICAgPC9idXR0b24+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZhcS1hbnN3ZXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZhcS1hbnN3ZXItaW5uZXIiPgogICAgICAgICAgICAgICAgICBPbmNlIHlvdXIgbGVzc29uIGlzIGZpbmFsaXplZCwgb3BlbiB0aGUgQ29tcG9uZW50cyAmIFJlc291cmNlcyBhcmVhLCBicm93c2UgY29tcG9uZW50cywgcHJldmlldyB0aGUgbWF0ZXJpYWwsIGFuZCBhZGQgd2hhdCBmaXRzLiBDQVJMIGZpbGxzIHN1cHBvcnRlZCBjb21wb25lbnRzIHdpdGggbGVzc29uLWFsaWduZWQgY29udGVudC4gU2VlIDxhIGhyZWY9Imh0dHBzOi8vaGljYXJsLmFpL2FkZGluZy1jb21wb25lbnRzLWZhY2lsaXRhdG9yLWd1aWRlcy8iPkFkZGluZyBDb21wb25lbnRzICYgRmFjaWxpdGF0b3IgR3VpZGVzPC9hPi4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mYXEtaXRlbSI+CiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmFxLXF1ZXN0aW9uIiBkYXRhLWNhLWhvbWUtZmFxPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mYXEtcXVlc3Rpb24tbGVmdCI+CiAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19mYXEtaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCI+PC9jaXJjbGU+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTkuMDkgOWEzIDMgMCAwIDEgNS44MyAxYzAgMi0zIDMtMyAzIj48L3BhdGg+CiAgICAgICAgICAgICAgICAgICAgPGxpbmUgeDE9IjEyIiB5MT0iMTciIHgyPSIxMi4wMSIgeTI9IjE3Ij48L2xpbmU+CiAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZhcS10ZXh0Ij5DYW4gSSBzaGFyZSBteSBsZXNzb25zIHdpdGggb3RoZXIgdGVhY2hlcnM/PC9zcGFuPgogICAgICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2ZhcS1hcnJvdyIgdmlld0JveD0iMCAwIDI0IDI0Ij48cG9seWxpbmUgcG9pbnRzPSI2IDkgMTIgMTUgMTggOSI+PC9wb2x5bGluZT48L3N2Zz4KICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmFxLWFuc3dlciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmFxLWFuc3dlci1pbm5lciI+CiAgICAgICAgICAgICAgICAgIFllcy4gUHVibGljIGxlc3NvbnMgY2FuIGJlIGZvdW5kIGJ5IG90aGVyIHRlYWNoZXJzLCBhbmQgdGhleSBjYW4gcmVtaXggbGVzc29ucyBmb3IgdGhlaXIgb3duIGNsYXNzcm9vbSB3aXRob3V0IGNoYW5naW5nIHlvdXIgb3JpZ2luYWwuIFRlYWNoZXJzIGNhbiBhbHNvIGNvbnRyaWJ1dGUgYWN0aXZpdGllcywgYXNzZXNzbWVudHMsIGFuZCByZXNvdXJjZXMgd2hlcmUgc3VwcG9ydGVkLiBWaXNpdCA8YSBocmVmPSJodHRwczovL2hpY2FybC5haS9sZWFybi1zdXBwb3J0LyI+TGVhcm4gJiBTdXBwb3J0PC9hPiBmb3IgcHVibGlzaGluZyBhbmQgcmVtaXhpbmcgZ3VpZGVzLgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgoKICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fZmFxLWxpbmstcm93Ij4KICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vaGljYXJsLmFpL2xlYXJuLXN1cHBvcnQvIiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX3RleHQtbGluay1saWdodCI+CiAgICAgICAgICAgIEJyb3dzZSBhbGwgdHV0b3JpYWxzIG9uIHRoZSBMZWFybiAmIFN1cHBvcnQgcGFnZQogICAgICAgICAgICA8c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik01IDEyaDE0Ij48L3BhdGg+PHBhdGggZD0ibTEyIDUgNyA3LTcgNyI+PC9wYXRoPjwvc3ZnPgogICAgICAgICAgPC9hPgogICAgICAgIDwvZGl2PgoKICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCgogIDwhLS0gRklOQUwgQ1RBIC0tPgogIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19maW5hbC1jdGEiPgogICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2N0YS1jYXJkIj4KICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2N0YS1sYXlvdXQiPgoKICAgICAgICA8ZGl2PgogICAgICAgICAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2N0YS10aXRsZSI+QnVpbGQgbGVzc29ucyB0aGF0IHJlYWNoIGV2ZXJ5IGxlYXJuZXIuPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fY3RhLWNvcHkiPgogICAgICAgICAgICBJbmNsdXNpdmUgYnkgZGVzaWduLiBDdXJyaWN1bHVtLWFsaWduZWQuIEZ1bGx5IHlvdXJzIHRvIGVkaXQuCiAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICA8ZGl2IGNsYXNzPSJjYS1ob21lLTI2MDUwNV9fYnRuLXJvdyI+CiAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vaGljYXJsLmFpL2JldGEtYmFzZWxpbmUtc3VydmV5LyIgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19idG4gY2EtaG9tZS0yNjA1MDVfX2J0bi13aGl0ZSI+CiAgICAgICAgICAgICAgSm9pbiBCZXRhCiAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPuKGkjwvc3Bhbj4KICAgICAgICAgICAgPC9hPgoKICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9oaWNhcmwuYWkvY2FybC1pbi01LW1pbnV0ZXMtdGhlLWVzc2VudGlhbC10b3VyLyIgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19idG4gY2EtaG9tZS0yNjA1MDVfX2J0bi1kYXJrIj4KICAgICAgICAgICAgICBUYWtlIHRoZSA1LU1pbnV0ZSBUb3VyCiAgICAgICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPuKGkjwvc3Bhbj4KICAgICAgICAgICAgPC9hPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxkaXYgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19jdGEtaW1hZ2UiPgogICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vaGljYXJsLmFpL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDI2LzAyL2RvdWJsZS1jYXJscy0yLXNjYWxlZC5wbmciIGFsdD0iQ0FSTCBtYXNjb3RzIGNvbGxhYm9yYXRpbmciIGxvYWRpbmc9ImxhenkiPgogICAgICAgIDwvZGl2PgoKICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KCgogIDwhLS0gTElHSFRCT1ggLS0+CiAgPGRpdiBjbGFzcz0iY2EtaG9tZS0yNjA1MDVfX2xpZ2h0Ym94IiBkYXRhLWNhLWhvbWUtbGlnaHRib3g+CiAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImNhLWhvbWUtMjYwNTA1X19saWdodGJveC1jbG9zZSIgZGF0YS1jYS1ob21lLWxpZ2h0Ym94LWNsb3NlIGFyaWEtbGFiZWw9IkNsb3NlIGltYWdlIHByZXZpZXciPgogICAgICA8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCI+PGxpbmUgeDE9IjE4IiB5MT0iNiIgeDI9IjYiIHkyPSIxOCI+PC9saW5lPjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiPjwvbGluZT48L3N2Zz4KICAgIDwvYnV0dG9uPgogICAgPGltZyBzcmM9IiIgYWx0PSIiIGRhdGEtY2EtaG9tZS1saWdodGJveC1pbWc+CiAgPC9kaXY+Cgo8L2Rpdj4KCgo8c2NyaXB0PgooZnVuY3Rpb24gKCkgewogIHZhciByb290ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmNhLWhvbWUtMjYwNTA1Jyk7CiAgaWYgKCFyb290KSByZXR1cm47CgogIHZhciB2aWRlbyA9IHJvb3QucXVlcnlTZWxlY3RvcignW2RhdGEtY2EtaG9tZS1oZXJvLXZpZGVvXScpOwogIHZhciBvdmVybGF5ID0gcm9vdC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1jYS1ob21lLWhlcm8tb3ZlcmxheV0nKTsKCiAgaWYgKHZpZGVvKSB7CiAgICB2aWRlby5hZGRFdmVudExpc3RlbmVyKCdsb2FkZWRkYXRhJywgZnVuY3Rpb24gKCkgewogICAgICBpZiAob3ZlcmxheSkgb3ZlcmxheS5zdHlsZS5vcGFjaXR5ID0gJzEnOwogICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICB2YXIgcGxheVByb21pc2UgPSB2aWRlby5wbGF5KCk7CiAgICAgICAgaWYgKHBsYXlQcm9taXNlICYmIHR5cGVvZiBwbGF5UHJvbWlzZS5jYXRjaCA9PT0gJ2Z1bmN0aW9uJykgewogICAgICAgICAgcGxheVByb21pc2UuY2F0Y2goZnVuY3Rpb24gKCkge30pOwogICAgICAgIH0KICAgICAgfSwgOTAwKTsKICAgIH0pOwogIH0KCiAgdmFyIHRhYnMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChyb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLWhvbWUtdGFiXScpKTsKICB2YXIgcGFuZWxzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwocm9vdC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1ob21lLXBhbmVsXScpKTsKCiAgZnVuY3Rpb24gYWN0aXZhdGVIb21lVGFiKG5hbWUpIHsKICAgIHRhYnMuZm9yRWFjaChmdW5jdGlvbiAodGFiKSB7CiAgICAgIHZhciBpc0FjdGl2ZSA9IHRhYi5nZXRBdHRyaWJ1dGUoJ2RhdGEtaG9tZS10YWInKSA9PT0gbmFtZTsKICAgICAgdGFiLmNsYXNzTGlzdC50b2dnbGUoJ2lzLWFjdGl2ZScsIGlzQWN0aXZlKTsKICAgICAgdGFiLnNldEF0dHJpYnV0ZSgnYXJpYS1zZWxlY3RlZCcsIGlzQWN0aXZlID8gJ3RydWUnIDogJ2ZhbHNlJyk7CiAgICB9KTsKCiAgICBwYW5lbHMuZm9yRWFjaChmdW5jdGlvbiAocGFuZWwpIHsKICAgICAgdmFyIGlzQWN0aXZlID0gcGFuZWwuZ2V0QXR0cmlidXRlKCdkYXRhLWhvbWUtcGFuZWwnKSA9PT0gbmFtZTsKICAgICAgdmFyIHBhbmVsVmlkZW8gPSBwYW5lbC5xdWVyeVNlbGVjdG9yKCcuY2EtaG9tZS0yNjA1MDVfX3N0YXJ0LXZpZGVvJyk7CgogICAgICBwYW5lbC5jbGFzc0xpc3QudG9nZ2xlKCdpcy1hY3RpdmUnLCBpc0FjdGl2ZSk7CgogICAgICBpZiAocGFuZWxWaWRlbykgewogICAgICAgIGlmIChpc0FjdGl2ZSkgewogICAgICAgICAgdHJ5IHsgcGFuZWxWaWRlby5jdXJyZW50VGltZSA9IDA7IH0gY2F0Y2ggKGVycm9yKSB7fQogICAgICAgICAgdmFyIHBsYXlQcm9taXNlID0gcGFuZWxWaWRlby5wbGF5KCk7CiAgICAgICAgICBpZiAocGxheVByb21pc2UgJiYgdHlwZW9mIHBsYXlQcm9taXNlLmNhdGNoID09PSAnZnVuY3Rpb24nKSB7CiAgICAgICAgICAgIHBsYXlQcm9taXNlLmNhdGNoKGZ1bmN0aW9uICgpIHt9KTsKICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgcGFuZWxWaWRlby5wYXVzZSgpOwogICAgICAgIH0KICAgICAgfQogICAgfSk7CiAgfQoKICB0YWJzLmZvckVhY2goZnVuY3Rpb24gKHRhYikgewogICAgdGFiLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKCkgewogICAgICBhY3RpdmF0ZUhvbWVUYWIodGFiLmdldEF0dHJpYnV0ZSgnZGF0YS1ob21lLXRhYicpKTsKICAgIH0pOwogIH0pOwoKICB2YXIgYWN0aXZlSG9tZVRhYiA9IHRhYnMuZmluZChmdW5jdGlvbiAodGFiKSB7IHJldHVybiB0YWIuY2xhc3NMaXN0LmNvbnRhaW5zKCdpcy1hY3RpdmUnKTsgfSkgfHwgdGFic1swXTsKICBpZiAoYWN0aXZlSG9tZVRhYikgYWN0aXZhdGVIb21lVGFiKGFjdGl2ZUhvbWVUYWIuZ2V0QXR0cmlidXRlKCdkYXRhLWhvbWUtdGFiJykpOwoKICB2YXIgbGlnaHRib3ggPSByb290LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWNhLWhvbWUtbGlnaHRib3hdJyk7CiAgdmFyIGxpZ2h0Ym94SW1nID0gcm9vdC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1jYS1ob21lLWxpZ2h0Ym94LWltZ10nKTsKICB2YXIgY2xvc2VMaWdodGJveCA9IHJvb3QucXVlcnlTZWxlY3RvcignW2RhdGEtY2EtaG9tZS1saWdodGJveC1jbG9zZV0nKTsKICB2YXIgd29ya3NwYWNlQ2FyZHMgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChyb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLWNhLWhvbWUtbGlnaHRib3gtc3JjXScpKTsKCiAgZnVuY3Rpb24gb3BlbkxpZ2h0Ym94KHNyYywgYWx0KSB7CiAgICBpZiAoIWxpZ2h0Ym94IHx8ICFsaWdodGJveEltZykgcmV0dXJuOwoKICAgIGlmIChsaWdodGJveC5wYXJlbnROb2RlICE9PSBkb2N1bWVudC5ib2R5KSB7CiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGlnaHRib3gpOwogICAgfQoKICAgIGxpZ2h0Ym94SW1nLnNyYyA9IHNyYzsKICAgIGxpZ2h0Ym94SW1nLmFsdCA9IGFsdCB8fCAnJzsKICAgIGxpZ2h0Ym94LmNsYXNzTGlzdC5hZGQoJ2lzLWFjdGl2ZScpOwogICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nOwoKICAgIHZhciBoZWFkZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuZnVzaW9uLWhlYWRlci13cmFwcGVyJyk7CiAgICBpZiAoaGVhZGVyKSBoZWFkZXIuc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nOwogIH0KCiAgZnVuY3Rpb24gY2xvc2VIb21lTGlnaHRib3goKSB7CiAgICBpZiAoIWxpZ2h0Ym94KSByZXR1cm47CgogICAgbGlnaHRib3guY2xhc3NMaXN0LnJlbW92ZSgnaXMtYWN0aXZlJyk7CiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJyc7CgogICAgdmFyIGhlYWRlciA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5mdXNpb24taGVhZGVyLXdyYXBwZXInKTsKICAgIGlmIChoZWFkZXIpIGhlYWRlci5zdHlsZS52aXNpYmlsaXR5ID0gJyc7CiAgfQoKICB3b3Jrc3BhY2VDYXJkcy5mb3JFYWNoKGZ1bmN0aW9uIChjYXJkKSB7CiAgICBjYXJkLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKCkgewogICAgICBvcGVuTGlnaHRib3goY2FyZC5nZXRBdHRyaWJ1dGUoJ2RhdGEtY2EtaG9tZS1saWdodGJveC1zcmMnKSwgY2FyZC5nZXRBdHRyaWJ1dGUoJ2RhdGEtY2EtaG9tZS1saWdodGJveC1hbHQnKSk7CiAgICB9KTsKICB9KTsKCiAgaWYgKGNsb3NlTGlnaHRib3gpIHsKICAgIGNsb3NlTGlnaHRib3guYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZXZlbnQpIHsKICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7CiAgICAgIGNsb3NlSG9tZUxpZ2h0Ym94KCk7CiAgICB9KTsKICB9CgogIGlmIChsaWdodGJveCkgewogICAgbGlnaHRib3guYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoKSB7CiAgICAgIGNsb3NlSG9tZUxpZ2h0Ym94KCk7CiAgICB9KTsKCiAgICB2YXIgaW5uZXJJbWcgPSBsaWdodGJveC5xdWVyeVNlbGVjdG9yKCdpbWcnKTsKICAgIGlmIChpbm5lckltZykgewogICAgICBpbm5lckltZy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChldmVudCkgewogICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwogICAgICB9KTsKICAgIH0KICB9CgogIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBmdW5jdGlvbiAoZXZlbnQpIHsKICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSBjbG9zZUhvbWVMaWdodGJveCgpOwogIH0pOwoKICB2YXIgZmFxQnV0dG9ucyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHJvb3QucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtY2EtaG9tZS1mYXFdJykpOwoKICBmYXFCdXR0b25zLmZvckVhY2goZnVuY3Rpb24gKGJ1dHRvbikgewogICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKCkgewogICAgICB2YXIgaXRlbSA9IGJ1dHRvbi5jbG9zZXN0KCcuY2EtaG9tZS0yNjA1MDVfX2ZhcS1pdGVtJyk7CiAgICAgIHZhciBhbnN3ZXIgPSBpdGVtID8gaXRlbS5xdWVyeVNlbGVjdG9yKCcuY2EtaG9tZS0yNjA1MDVfX2ZhcS1hbnN3ZXInKSA6IG51bGw7CiAgICAgIGlmICghaXRlbSB8fCAhYW5zd2VyKSByZXR1cm47CgogICAgICB2YXIgaXNPcGVuID0gaXRlbS5jbGFzc0xpc3QuY29udGFpbnMoJ2lzLW9wZW4nKTsKCiAgICAgIGlmIChpc09wZW4pIHsKICAgICAgICBhbnN3ZXIuc3R5bGUuc2V0UHJvcGVydHkoJ21heC1oZWlnaHQnLCAnMHB4JywgJ2ltcG9ydGFudCcpOwogICAgICAgIGl0ZW0uY2xhc3NMaXN0LnJlbW92ZSgnaXMtb3BlbicpOwogICAgICB9IGVsc2UgewogICAgICAgIGl0ZW0uY2xhc3NMaXN0LmFkZCgnaXMtb3BlbicpOwogICAgICAgIGFuc3dlci5zdHlsZS5zZXRQcm9wZXJ0eSgnbWF4LWhlaWdodCcsIGFuc3dlci5zY3JvbGxIZWlnaHQgKyAncHgnLCAnaW1wb3J0YW50Jyk7CiAgICAgIH0KICAgIH0pOwogIH0pOwoKICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgZnVuY3Rpb24gKCkgewogICAgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwocm9vdC5xdWVyeVNlbGVjdG9yQWxsKCcuY2EtaG9tZS0yNjA1MDVfX2ZhcS1pdGVtLmlzLW9wZW4gLmNhLWhvbWUtMjYwNTA1X19mYXEtYW5zd2VyJykpLmZvckVhY2goZnVuY3Rpb24gKGFuc3dlcikgewogICAgICBhbnN3ZXIuc3R5bGUuc2V0UHJvcGVydHkoJ21heC1oZWlnaHQnLCBhbnN3ZXIuc2Nyb2xsSGVpZ2h0ICsgJ3B4JywgJ2ltcG9ydGFudCcpOwogICAgfSk7CiAgfSk7CgogIHZhciBvbGRTdHlsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYUhvbWUyNjA1MDVTb2Z0SG92ZXJGaXgnKTsKICBpZiAob2xkU3R5bGUpIG9sZFN0eWxlLnJlbW92ZSgpOwoKICB2YXIgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpOwogIHN0eWxlLmlkID0gJ2NhSG9tZTI2MDUwNVNvZnRIb3ZlckZpeCc7CgogIHN0eWxlLnRleHRDb250ZW50ID0gYAogICAgLmNhLWhvbWUtMjYwNTA1LAogICAgLmNhLWhvbWUtMjYwNTA1ICosCiAgICAuY2EtaG9tZS0yNjA1MDUgKjo6YmVmb3JlLAogICAgLmNhLWhvbWUtMjYwNTA1ICo6OmFmdGVyIHsKICAgICAgZm9udC1mYW1pbHk6ICdQb3BwaW5zJywgLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAiU2Vnb2UgVUkiLCBSb2JvdG8sIEFyaWFsLCBzYW5zLXNlcmlmICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1IC5jYS1ob21lLTI2MDUwNV9fYnRuLAogICAgLmNhLWhvbWUtMjYwNTA1IC5jYS1ob21lLTI2MDUwNV9fYnRuIHNwYW4sCiAgICAuY2EtaG9tZS0yNjA1MDUgLmNhLWhvbWUtMjYwNTA1X19jYXJkLAogICAgLmNhLWhvbWUtMjYwNTA1IC5jYS1ob21lLTI2MDUwNV9fdGFiLAogICAgLmNhLWhvbWUtMjYwNTA1IC5jYS1ob21lLTI2MDUwNV9fd29ya3NwYWNlLWNhcmQsCiAgICAuY2EtaG9tZS0yNjA1MDUgLmNhLWhvbWUtMjYwNTA1X19mYXEtaXRlbSwKICAgIC5jYS1ob21lLTI2MDUwNSAuY2EtaG9tZS0yNjA1MDVfX2ZhcS1hbnN3ZXIsCiAgICAuY2EtaG9tZS0yNjA1MDUgLmNhLWhvbWUtMjYwNTA1X19mYXEtYXJyb3csCiAgICAuY2EtaG9tZS0yNjA1MDUgLmNhLWhvbWUtMjYwNTA1X19saWdodGJveC1jbG9zZSwKICAgIC5jYS1ob21lLTI2MDUwNSAuY2EtaG9tZS0yNjA1MDVfX3RleHQtbGluay1saWdodCB7CiAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDY1MG1zICFpbXBvcnRhbnQ7CiAgICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNSAuY2EtaG9tZS0yNjA1MDVfX2J0biB7CiAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybSwgYm94LXNoYWRvdywgYmFja2dyb3VuZC1jb2xvciwgY29sb3IsIGJvcmRlci1jb2xvciwgb3BhY2l0eSwgZmlsdGVyICFpbXBvcnRhbnQ7CiAgICB9CgogICAgLmNhLWhvbWUtMjYwNTA1IC5jYS1ob21lLTI2MDUwNV9fYnRuOmhvdmVyIHsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpICFpbXBvcnRhbnQ7CiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNSAuY2EtaG9tZS0yNjA1MDVfX2J0bjpob3ZlciBzcGFuIHsKICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDJweCkgIWltcG9ydGFudDsKICAgIH0KCiAgICAuY2EtaG9tZS0yNjA1MDUgLmNhLWhvbWUtMjYwNTA1X19jYXJkLAogICAgLmNhLWhvbWUtMjYwNTA1IC5jYS1ob21lLTI2MDUwNV9fd29ya3NwYWNlLWNhcmQsCiAgICAuY2EtaG9tZS0yNjA1MDUgLmNhLWhvbWUtMjYwNTA1X190YWIgewogICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm0sIGJveC1zaGFkb3csIGJvcmRlci1jb2xvciwgYmFja2dyb3VuZC1jb2xvciwgb3BhY2l0eSAhaW1wb3J0YW50OwogICAgfQoKICAgIC5jYS1ob21lLTI2MDUwNSAuY2EtaG9tZS0yNjA1MDVfX2NhcmQ6aG92ZXIsCiAgICAuY2EtaG9tZS0yNjA1MDUgLmNhLWhvbWUtMjYwNTA1X193b3Jrc3BhY2UtY2FyZDpob3ZlciwKICAgIC5jYS1ob21lLTI2MDUwNSAuY2EtaG9tZS0yNjA1MDVfX3RhYjpob3ZlciB7CiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KSAhaW1wb3J0YW50OwogICAgfQoKICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7CiAgICAgIC5jYS1ob21lLTI2MDUwNSAqLAogICAgICAuY2EtaG9tZS0yNjA1MDUgKjpob3ZlciB7CiAgICAgICAgdHJhbnNpdGlvbjogbm9uZSAhaW1wb3J0YW50OwogICAgICAgIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50OwogICAgICAgIGFuaW1hdGlvbjogbm9uZSAhaW1wb3J0YW50OwogICAgICB9CiAgICB9CiAgYDsKCiAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdHlsZSk7Cn0pKCk7Cjwvc2NyaXB0Pg==[/fusion_code][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]