/**
 * @package     WordPress
 * @subpackage  Bambini
 * @version     1.0.4
 * 
 * Design CSS Rules
 * Created by CMSMasters
 * 
 */
/*-------------------------------------------------------------------------

	1.	Globally Applied Styles / body
		1.1. Instagram / #sbi_load
		1.2. Icons
			1.2.1. Global
			1.2.2. Arrows
			1.2.3. Widget Add Info
			1.2.4. Twitter stripe
		1.3. Elements
			1.3.1. Icon Arrow Global Styles
			1.3.2. Pixel Arrow Global Styles
			1.3.3. Post Password Form / .post-password-form
			1.3.4. Prelodaer / .preloader
			1.3.5. Resizable Block / .resizable_block
			1.3.6. Img Wrapper / .cmsmasters_img_wrap
			1.3.7. Img Rollover / .cmsmasters_img_rollover_wrap
			1.3.8. Placeholder Small / .img_placeholder_small
			1.3.9. Video Wrapper / .mejs-container
			1.3.10. Search Bar / .search_bar_wrap
			1.3.10. Social Icons / .social_wrap
			1.3.11. Core Owl Carousel CSS v1.3.2 / .owl-carousel
			1.3.12. Slide Top Button / #slide_top
			1.3.13. Opened Article / .opened-article
			1.3.14. Likes and Comments
				1.3.14.1. Likes / .cmsmasters_likes
				1.3.14.2. Comments / .cmsmasters_comments
			1.3.15. Button
			1.3.16. Items Filter / .cmsmasters_items_filter_wrap
			1.3.17. More Items Loader and Pagination
				1.3.17.1. More Items Loader / .cmsmasters_wrap_more_items
				1.3.17.2. Subpage Pagination / .subpage_nav
				1.3.17.2. Pagination / .cmsmasters_wrap_pagination
			1.3.18. Post Navigation / .post_nav
			1.3.19. Share Posts / .share_posts
			1.3.20. About Author / .about_author
			1.3.21. Single Post Slider / .cmsmasters_single_slider
			1.3.22. Single Pings List / .cmsmasters_pings_list
			1.3.23. Post Comments / .post_comments
			1.3.24. Comment Respond / .comment-respond
	2.	Header / #header
		2.1. Header Top / .header_top
			2.1.1. Header Top Navigation / .top_line_nav
		2.2. Header Mid / .header_mid
			2.1.1. Header Mid Navigation / .mid_nav
		2.3. Header Bot / .header_bot
			2.1.1. Header Bot Navigation / .bot_nav
		2.4. Header Search Form
	3.	Headline Styles
	4.	Bottom + Footer Styles
		4.1. Bottom / #bottom
		4.2. Footer / #footer
			4.2.1. Footer Default / .cmsmasters_footer_default
			4.2.2. Footer Small / .cmsmasters_footer_small
	5.	Blog / .blog
		5.1. Blog Default / .cmsmasters_post_default
		5.2. Blog Masonry / .cmsmasters_post_masonry
		5.3. Blog Timeline / .cmsmasters_post_timeline
		5.4. Blog Post / .cmsmasters_open_post
	6.	Portfolio / .portfolio
		6.1. Portfolio Grid / .cmsmasters_project_grid
		6.2. Portfolio Puzzle / .cmsmasters_project_puzzle
		6.3. Portfolio Open Project / .cmsmasters_open_project
	7.	Posts Slider Styles / .cmsmasters_posts_slider
		7.1. Posts Slider Blog / .cmsmasters_slider_post
		7.2. Posts Slider Portfolio / .cmsmasters_slider_project
	8.	Profiles + Profile Styles / .cmsmasters_profile
		8.1. Profiles Horizontal / .cmsmasters_profile_horizontal
		8.2. Profiles Vertical / .cmsmasters_profile_vertical
		8.3. Profiles Open Profile / .cmsmasters_open_profile
	9.	Shortcodes Styles
		9.1. Divider / .cmsmasters_divider
		9.2. Special Heading / .cmsmasters_heading_wrap
		9.3. Featured Block / .cmsmasters_featured_block
		9.4. Table / .cmsmasters_table
		9.5. Notice / .cmsmasters_notice
		9.6. Icon / .cmsmasters_icon_wrap
		9.7. Icon List / .cmsmasters_icon_list_items
		9.8. Icon Box / .cmsmasters_icon_box
		9.9. Toggles / .cmsmasters_toggles
		9.10. Tabs / .cmsmasters_tabs
		9.11. Stats / .cmsmasters_stats
		9.12. Counters / .cmsmasters_counters
		9.13. CMSMASTERS Button / .cmsmasters_button
		9.14. Contact Form 7 / .wpcf7-form
		9.15. Hover slider / .cmsmasters_hover_slider
		9.16. Content slider / .cmsmasters_content_slider
		9.17. Gallery / .cmsmasters_gallery
		9.18. Quotes / .cmsmasters_quotes_slider
		9.19. Pricing tables / .cmsmasters_pricing_table
		9.20. Google Maps / .google_map
		9.21. Caption / .cmsmasters_img
		9.22. WP Gallery / .gallery
		9.23. Sidebar / .cmsmasters_sidebar
		9.24. Share / .share_wrap
		9.25. Twitter Stripe / .cmsmasters_twitter_wrap
		9.26. Dropcap / .cmsmasters_dropcap
		9.27. Clients / .cmsmasters_clients_slider
	10.	Widgets Styles / .widget
		10.1. Widget Advertisement / .widget_custom_advertisement_entries
		10.2. Widget Lists
			10.2.1. Widget Pages / .widget_pages
			10.2.2. Widget Categories / .widget_categories
			10.2.3. Widget Archive / .widget_archive
			10.2.4. Widget Meta / .widget_meta
			10.2.5. Widget Recent Comments / .widget_recent_comments
			10.2.6. Widget Recent Entries / .widget_recent_entries
		10.3. Widget Calendar / #wp-calendar
		10.4. Widget Contact Form / .widget_custom_contact_form_entries
		10.5. Widget Contact Info / .widget_custom_contact_info_entries
		10.6. Widget Custom Menu / .widget_nav_menu
		10.7. Widget Facebook / .widget_custom_facebook_entries
		10.8. Widget Flickr / .widget_custom_flickr_entries
		10.9. Widget Latest and Popular Projects
			10.9.1. Widget Latest Projects / .widget_custom_popular_projects_entries
			10.9.2. Widget Popular Projects / .widget_custom_latest_projects_entries
		10.10. Widget Posts Tabs / .widget_custom_posts_tabs_entries
		10.11. Widget RSS / .widget_rss
		10.12. Widget Tag Cloud / .widget_tag_cloud
		10.13. Widget Twitter / .widget_custom_twitter_entries
	11. Search + Archives + Sitemap + Error + Other Styles
		11.1. Archives + Search
			11.1.1. Archives / .cmsmasters_archive
			11.1.2. Search / .cmsmasters_search
		11.2. Sitemap / .cmsmasters_sitemap_wrap
		11.3. Error / .error
		11.4. Attachment Page / .cmsmasters_attach_img
		11.5. Other
	12.	Contact Forms Styles
		12.1. Form Builder / .cmsmasters-form-builder
		12.2. Contact Form 7 / .wpcf7
	13.	CSS3 Animations / .csstransitions
		13.1. Custom Animations
		13.2. Global Animations

-------------------------------------------------------------------------*/
.header_element_split {
  margin-left: 30px;
}
.header_element_split::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: -11px;
  width: 1px;
  height: 19px;
  opacity: 0.5;
  margin: auto;
  display: block;
  border-right-width: 1px;
  border-right-style: solid;
}
html {
  height: auto;
}
#page .formError .formErrorContent {
  margin: 0 0 0px;
  right: -27px;
}
.pdr-3 {
  padding-right: 3em;
}
.image-smooth {
  -moz-image-rendering: auto;
  image-rendering: auto;
  -ms-interpolation-mode: nearest-neighbor;
}
.cmsmasters-icon-custom-cost::before {
  width: auto !important;
}
img {
  image-rendering: auto;
}
.cmsmasters_comments + .cmsmasters_comments,
.cmsmasters_likes + .cmsmasters_comments,
.cmsmasters_comments + .cmsmasters_likes,
.cmsmasters_likes + .cmsmasters_likes {
  margin-left: 7px;
}
.z-index-0 {
  z-index: 0 !important;
}
.z-index-1 {
  z-index: 1 !important;
}
.z-index-2 {
  z-index: 2 !important;
}
.z-index-3 {
  z-index: 3 !important;
}
.z-index-4 {
  z-index: 4 !important;
}
/*-------------------------------------------------------------------------*/
/* Globally Applied Styles
/*-------------------------------------------------------------------------*/
body {
  text-align: left;
}
body.error404 #page:not(.enable_header_bottom) #footer {
  position: fixed;
  left: 0;
  bottom: 0;
  z-index: 100;
}
div {
  text-align: left;
}
p {
  padding: 0 0 20px;
  margin: 0;
}
table {
  margin: 0 0 20px;
}
pre {
  margin: 0 0 20px;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  padding: 0;
  margin: 0 0 20px;
}
h1 {
  letter-spacing: -1.1px;
}
h2 {
  letter-spacing: -0.9px;
}
h3 {
  letter-spacing: -0.75px;
}
h4 {
  letter-spacing: -0.6px;
}
h5 {
  letter-spacing: -0.45px;
}
h6 {
  letter-spacing: 0px;
}
blockquote {
  padding: 0;
  margin: 0 0 20px;
  /* don't touch */
  position: relative;
  quotes: none;
  border-width: 0;
  border-style: solid;
}
blockquote p:last-of-type {
  margin: 0;
  padding: 0;
}
blockquote cite {
  display: block;
  margin-top: 10px;
}
blockquote::before {
  content: "“";
  padding-right: 10px;
  font-family: "Quicksand", Arial, Helvetica, "Nimbus Sans L", sans-serif;
  font-weight: bold;
  font-size: 83px;
  height: 22px;
  line-height: 53px;
  float: left;
  display: inline-block;
}
dl dt {
  margin-bottom: 5px;
}
dl dd {
  margin-bottom: 20px;
}
h1 a,
h2 a,
h3 a,
h4 a,
h5 a,
h6 a {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  font-style: inherit;
  line-height: inherit;
}
ul,
ol {
  list-style-position: inside;
  margin-bottom: 20px;
}
ol + h2,
ul + h2 {
  padding-top: 25px;
}
ul {
  list-style-type: none;
}
ul > li {
  position: relative;
  display: block;
}
ul > li::before {
  content: '';
  display: inline-block;
  width: 6px;
  height: 6px;
  margin: 0 10px 0 0;
  vertical-align: middle;
  position: relative;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
ol {
  list-style-type: decimal-leading-zero;
}
ul li,
ol li {
  padding: 10px 0 0;
}
ul li:first-child,
ol li:first-child {
  padding-top: 0;
}
ul ul,
ol ul,
ul ol,
ol ol {
  margin: 0 0 0 20px;
  padding: 10px 0 0;
}
.esg-grid ul {
  padding: 0;
  margin: 0;
}
.esg-grid ul li:before {
  display: none;
}
iframe {
  margin-bottom: 20px;
}
address {
  margin: 0 0 20px;
}
pre {
  margin: 0 0 20px;
}
dd {
  margin: 0 0 20px;
}
table:not(.shop_table):not(.variations):not(.tribe-events-calendar):not(.shop_attributes):not(.tribe-mini-calendar):not(.tt_timetable):not(.table-condensed) {
  border-spacing: 0;
  border-collapse: collapse;
  width: 100%;
  margin-bottom: 20px;
  /* don't touch */
  /* for gutenberg start */
  /* for gutenberg end */
}
table:not(.shop_table):not(.variations):not(.tribe-events-calendar):not(.shop_attributes):not(.tribe-mini-calendar):not(.tt_timetable):not(.table-condensed) th,
table:not(.shop_table):not(.variations):not(.tribe-events-calendar):not(.shop_attributes):not(.tribe-mini-calendar):not(.tt_timetable):not(.table-condensed) td {
  border-width: 0;
  /* for gutenberg */
  padding: 10px;
  border-width: 1px;
  border-style: solid;
}
table:not(.shop_table):not(.variations):not(.tribe-events-calendar):not(.shop_attributes):not(.tribe-mini-calendar):not(.tt_timetable):not(.table-condensed).is-style-stripes {
  border-width: 0;
  border-style: solid;
  border-collapse: collapse;
}
table:not(.shop_table):not(.variations):not(.tribe-events-calendar):not(.shop_attributes):not(.tribe-mini-calendar):not(.tt_timetable):not(.table-condensed).is-style-stripes tr:nth-child(odd) {
  background-color: transparent !important;
}
table:not(.shop_table):not(.variations):not(.tribe-events-calendar):not(.shop_attributes):not(.tribe-mini-calendar):not(.tt_timetable):not(.table-condensed) caption {
  text-align: center;
  padding: 20px;
}
.pls-container,
.pls-container table,
.cmsmasters_table,
.tribe-mini-calendar,
.tribe-events-calendar,
.shop_table,
.group_table,
.variations,
.shop_attributes {
  border-collapse: collapse;
  border-spacing: 0;
  vertical-align: middle;
}
input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range]),
textarea,
select,
option {
  padding: 11px 22px 8px;
  max-width: 100%;
  line-height: normal;
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 0;
  border-radius: 0;
}
input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range])[type=number],
textarea[type=number],
select[type=number],
option[type=number] {
  padding-right: 5px;
}
textarea {
  overflow: auto;
  padding: 22px;
}
select {
  line-height: 1em;
  text-indent: 0.01px;
  text-overflow: '';
  padding: 3px 60px 0 18px;
  -webkit-appearance: none;
  -moz-appearance: none;
  -ms-appearance: none;
  appearance: none !important;
  background-position: 100% center;
  background-repeat: no-repeat;
  cursor: pointer;
  -webkit-border-radius: 0;
  border-radius: 0;
  height: 46px;
  background-image: url('../../../img/select.png');
}
select option {
  cursor: pointer;
}
select::-ms-expand {
  display: none;
}
select[multiple] {
  height: auto;
  background-image: none;
}
select[multiple] option {
  padding-left: 0;
  padding-right: 0;
  background: none !important;
}
input[type=text],
input[type=search],
input[type=password],
input[type=email],
input[type=tel],
input[type=url],
input[type=number],
input[type=date],
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
input[type="date"]::-webkit-clear-button {
  display: none;
}
input[type="date"]::-webkit-inner-spin-button {
  display: none;
}
input[type=checkbox] {
  -webkit-border-radius: 0;
  border-radius: 0;
}
input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range]) {
  height: 46px;
}
input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range]):focus,
textarea:focus {
  outline: none;
}
input:-webkit-autofill {
  -webkit-animation-name: autofill;
  -webkit-animation-fill-mode: both;
}
input[type=submit],
input[type=button],
button {
  max-width: 100%;
  cursor: pointer;
}
option {
  outline: none;
}
.image-rendering,
.widget > .product_list_widget img,
.widget_shopping_cart .cart_list img,
.ilightbox-thumbnails img,
.cmsmasters_dynamic_cart img,
.cmsmasters_hover_slider_thumbs > li img {
  image-rendering: auto;
}
.jetpack_subscription_widget #subscribe-email input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range]),
.widget_wysija input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range]) {
  width: 100% !important;
  padding: 22px !important;
}
.widget_wysija_cont .wysija-submit {
  display: inline-block !important;
  margin: 0 !important;
}
.single.single-wysijap .cmsmasters_open_post > * {
  display: none;
}
.single.single-wysijap .cmsmasters_open_post .cmsmasters_post_content {
  display: block;
}
.gform_wrapper input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range]),
.gform_wrapper textarea {
  padding: 22px !important;
}
.gform_wrapper select {
  padding: 22px !important;
  margin: 0 !important;
}
nav {
  display: block;
  height: 100%;
  position: relative;
}
nav ul {
  /* clear ul styles */
  margin: 0;
  padding: 0;
}
nav ul:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
nav ul li {
  margin: 0;
  padding: 0;
}
#page nav ul li.menu-item-icon > a .nav_item_wrap {
  padding-left: 0px !important;
}
#page nav ul li.menu-item-icon.current-menu-ancestor > a .nav_item_wrap,
#page nav ul li.menu-item-icon.current-menu-item > a .nav_item_wrap {
  padding-left: 15px !important;
}
nav ul li:before {
  display: none;
}
nav ul li ul li.menu-item-icon > a .nav_title:before {
  margin-left: 0;
}
nav > div {
  height: 100%;
}
nav > div:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
nav li.menu-item-has-children {
  cursor: pointer;
}
nav > div > ul {
  list-style: none;
  display: inline-block;
  width: 100%;
  height: 100%;
  vertical-align: middle;
  position: relative;
  z-index: 202;
  zoom: 1;
}
nav > div > ul ul {
  list-style: none;
  width: 207px;
  margin: 20px 0 0;
  padding: 15px 0 15px;
  visibility: hidden;
  position: absolute;
  left: 0;
  top: 100%;
  z-index: 203;
  opacity: 0;
}
.header_top nav > div > ul ul {
  width: 200px;
  margin: 20px 0 0;
  padding: 10px 0 10px;
}
.header_bot nav > div > ul ul {
  width: 184px;
  margin: 20px 0 0;
  padding: 20px 0 20px;
}
nav > div > ul ul ul {
  margin: 0 0 0 20px;
  left: 100%;
  top: -10px;
}
.header_top nav > div > ul ul ul {
  margin: 0 0 0 20px;
  top: -11px;
}
.header_bot nav > div > ul ul ul {
  margin: 0 0 0 20px;
  top: -11px;
}
nav > div > ul li.menu-item-dropdown-right {
  text-align: right;
}
nav > div > ul li.menu-item-dropdown-right * {
  text-align: left;
}
nav > div > ul li.menu-item-dropdown-right > ul {
  left: auto;
  right: 0;
}
nav > div > ul li.menu-item-dropdown-right > ul ul {
  margin: 0 20px 0 0;
  left: auto;
  right: 100%;
}
.header_bot nav > div > ul li.menu-item-dropdown-right > ul ul {
  margin: 0 20px 0 0;
}
nav > div > ul li.menu-item-dropdown-right > div.menu-item-mega-container {
  left: auto;
  right: 0;
}
nav > div > ul li.menu-item-dropdown-right > div.menu-item-mega-container ul {
  right: auto;
}
nav > div > ul li:hover > ul {
  margin: 0 1px 0;
  visibility: visible;
  opacity: 1;
}
.header_top nav > div > ul li:hover > ul {
  margin: 0px 0 0;
}
.header_bot nav > div > ul li:hover > ul {
  margin: 0px 0 0;
}
nav > div > ul li:hover > ul:before {
  content: '';
  width: 100%;
  height: 10px;
  position: absolute;
  left: 0;
  top: -11px;
}
.header_top nav > div > ul li:hover > ul:before {
  width: 100%;
  height: 0px;
  top: -1px;
}
.header_bot nav > div > ul li:hover > ul:before {
  width: 100%;
  height: 0px;
  top: -1px;
}
nav > div > ul li:hover > div.menu-item-mega-container {
  margin: 0 0 0;
  visibility: visible;
  opacity: 1;
}
.header_bot nav > div > ul li:hover > div.menu-item-mega-container {
  margin: 0px 0 0;
}
nav > div > ul li:hover > div.menu-item-mega-container:before {
  content: '';
  width: 100%;
  height: 10px;
  position: absolute;
  left: 0;
  top: -11px;
}
.header_bot nav > div > ul li:hover > div.menu-item-mega-container:before {
  width: 100%;
  height: 0px;
  top: -1px;
}
nav > div > ul li:hover > div.menu-item-mega-container ul {
  visibility: visible;
  opacity: 1;
}
.header_top nav > div > ul li li:hover > ul {
  margin: 0 0 0 2px;
}
.header_bot nav > div > ul li li:hover > ul {
  margin: 1px 0 0 2px;
}
nav > div > ul li li:hover > ul:before {
  width: 2px;
  height: 100%;
  top: 0;
  left: -3px;
}
.header_top nav > div > ul li li:hover > ul:before {
  width: 2px;
  height: 100%;
  left: -3px;
}
.header_bot nav > div > ul li li:hover > ul:before {
  width: 2px;
  height: 100%;
  left: -3px;
}
nav > div > ul li.menu-item-dropdown-right li:hover > ul {
  margin: 0 2px 0 0;
}
.header_bot nav > div > ul li.menu-item-dropdown-right li:hover > ul {
  margin: 0 2px 0 0;
}
nav > div > ul li.menu-item-dropdown-right li:hover > ul:before {
  left: auto;
  right: -3px;
}
.header_bot nav > div > ul li.menu-item-dropdown-right li:hover > ul:before {
  right: -3px;
}
nav > div > ul > li {
  display: block;
  margin: 0;
  padding: 0;
  position: relative;
  z-index: 203;
  height: 100%;
}
nav > div > ul > li:hover {
  z-index: 204;
}
nav > div > ul > li.current-menu-item > a .nav_item_wrap,
nav > div > ul > li.current-menu-ancestor > a .nav_item_wrap {
  padding: 5px 15px 5px;
}
#page nav > div > ul > li.current-menu-item.menu-item-icon .nav_item_wrap {
  padding-left: 40px;
}
nav > div > ul > li .sub-menu li a {
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
nav > div > ul > li .sub-menu li a.current-menu-item,
nav > div > ul > li .sub-menu li a.current-menu-ancestor {
  margin-top: -1px;
}
nav > div > ul > li .sub-menu li:last-child > a {
  border-bottom-width: 0;
  border-bottom-style: solid;
}
nav > div > ul a {
  display: block;
  position: relative;
  z-index: 204;
  letter-spacing: -0.14px;
  padding: 10px 10px 8px;
  height: 100%;
}
nav > div > ul a::before {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
nav > div > ul a > span.nav_item_wrap {
  position: relative;
  display: inline-block;
  vertical-align: middle;
}
nav > div > ul a > span.nav_item_wrap .nav_tag {
  display: inline-block;
  position: relative;
  top: -1em;
  letter-spacing: 0.1px;
}
.header_bot nav > div > ul a > span.nav_item_wrap .nav_tag {
  opacity: 0.4;
}
nav > div > ul a > span.nav_item_wrap .nav_subtitle {
  display: block;
  letter-spacing: 0.12px;
  line-height: 1;
  margin-top: -0.5em;
}
.header_bot nav > div > ul a > span.nav_item_wrap .nav_subtitle {
  opacity: 0.4;
}
nav > div > ul ul a {
  padding: 10px 20px 10px;
}
nav > div > ul .menu-item-mega-description-container {
  display: block;
  padding: 10px 15px;
  overflow: hidden;
}
nav > div > ul .nav_title[class^="cmsmasters-icon-"]:before,
nav > div > ul .nav_title[class*=" cmsmasters-icon-"]:before {
  position: relative;
  width: 1em;
  height: 1em;
  top: -0.1em;
  margin: 0px 2px 0 0;
}
nav > div > ul .menu-item-hide-text > a .nav_title[class^="cmsmasters-icon-"]:before,
nav > div > ul .menu-item-hide-text > a .nav_title[class*=" cmsmasters-icon-"]:before {
  margin: 0 0.3em;
}
nav > div > ul .menu-item-hide-text:not(.menu-item-icon) > a {
  display: none;
}
nav > div > ul > li {
  float: left;
}
.header_bot nav > div > ul > li {
  border-left-width: 1px;
  border-left-style: solid;
}
.header_bot nav > div > ul > li:last-child {
  border-right-width: 1px;
  border-right-style: solid;
}
nav > div > ul > li.menu-item-icon > a .nav_item_wrap {
  padding-left: 35px;
}
#page .header_bot nav > div > ul > li > a {
  padding: 0 20px;
}
#page .header_bot nav > div > ul > li > a .nav_item_wrap {
  padding: 0;
}
nav > div > ul li.menu-item-mega ul {
  background-color: transparent;
  border: 0;
  width: auto;
  margin: 0;
  padding: 0;
  position: relative;
  left: auto;
  right: auto;
  top: auto;
  bottom: auto;
  z-index: 203;
}
nav > div > ul div.menu-item-mega-container {
  display: block;
  width: auto;
  min-width: 350px;
  margin: 20px 0 0;
  padding: 20px 0px 20px 3px;
  visibility: hidden;
  position: absolute;
  left: 0;
  top: 100%;
  z-index: 203;
  opacity: 0;
}
.header_bot nav > div > ul div.menu-item-mega-container {
  margin: 20px 0 0;
}
nav > div > ul div.menu-item-mega-container ul > li ~ li.menu-item-has-children {
  margin-top: 25px;
}
nav > div > ul div.menu-item-mega-container ul > li.menu-item-has-children > a {
  padding: 10px 15px 8px;
  margin-bottom: 8px;
  border-bottom-width: 0;
  border-bottom-style: solid;
}
nav > div > ul div.menu-item-mega-container ul.menu-item-has-children.current-menu-ancestor > a {
  background-color: transparent;
  border-width: 0;
  border-style: solid;
}
nav > div > ul div.menu-item-mega-container > ul {
  display: table;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}
nav > div > ul div.menu-item-mega-container > ul > li {
  position: relative;
  display: table-cell;
  padding: 0 22px 0 20px;
}
nav > div > ul div.menu-item-mega-container > ul > li a {
  padding: 10px 15px 8px;
}
nav > div > ul div.menu-item-mega-container > ul > li a::before {
  content: "";
}
nav > div > ul div.menu-item-mega-container > ul > li:not(.menu-item-has-children) > a {
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
nav > div > ul div.menu-item-mega-container > ul > li > ul {
  width: 207px;
  padding: 0;
}
.header_bot nav > div > ul div.menu-item-mega-container > ul > li > ul {
  width: 184px;
}
nav > div > ul div.menu-item-mega-container > ul > li:hover > ul {
  padding: 0;
}
.header_bot nav > div > ul div.menu-item-mega-container > ul > li:hover > ul {
  margin: 0;
  padding: 0;
}
nav > div > ul div.menu-item-mega-container > ul > li a:empty {
  padding: 0;
  margin: 0;
}
nav > div > ul li.menu-item-mega-fullwidth > div.menu-item-mega-container > ul > li a,
nav > div > ul li.menu-item-mega-fullwidth > div.menu-item-mega-container > ul > li ul {
  width: auto;
}
nav > div > ul li.menu-item-mega-fullwidth.menu-item-mega-cols-two > div.menu-item-mega-container > ul > li {
  width: 50%;
}
nav > div > ul li.menu-item-mega-fullwidth.menu-item-mega-cols-three > div.menu-item-mega-container > ul > li {
  width: 33.33%;
}
nav > div > ul li.menu-item-mega-fullwidth.menu-item-mega-cols-four > div.menu-item-mega-container > ul > li {
  width: 25%;
}
nav > div > ul li.menu-item-mega-fullwidth.menu-item-mega-cols-five > div.menu-item-mega-container > ul > li {
  width: 20%;
}
audio.full-width {
  width: 100%;
}
.alignleft,
.fl {
  float: left;
}
.alignright,
.fr {
  float: right;
}
.aligncenter {
  text-align: center;
}
.aligncenter,
.alignnone {
  clear: both;
}
img.alignleft,
img.fl {
  margin-right: 15px;
  margin-bottom: 20px;
}
img.alignright,
img.fr {
  margin-left: 15px;
  margin-bottom: 20px;
}
img.aligncenter {
  margin: 0 auto 20px;
  display: block;
}
img.alignnone {
  margin-bottom: 20px;
}
.dn {
  display: none;
}
.tal,
.ta_left {
  text-align: left;
}
.tac,
.ta_center {
  text-align: center;
}
.tar,
.ta_right {
  text-align: right;
}
.cl,
.clear {
  display: block;
  clear: both;
}
.ovh {
  overflow: hidden;
}
.low_case {
  text-transform: lowercase;
}
.up_case {
  text-transform: uppercase;
}
.cmsmasters_responsive_width {
  display: block;
  width: auto;
  visibility: hidden;
}
.cmsmasters_column {
  position: relative;
  min-height: 1px;
}
.cmsmasters_column_sticky {
  position: relative;
  top: 0;
}
.cmsmasters_column_inner {
  width: 100%;
  position: relative;
  min-height: 1px;
}
.one_first,
.one_half,
.one_third,
.two_third,
.one_fourth,
.three_fourth,
.one_fifth,
.one_sixth {
  margin: 0 1%;
  position: relative;
  float: left;
}
.one_sixth {
  width: 14.67%;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .one_sixth {
  width: 16.67%;
}
.one_fifth {
  width: 18%;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .one_fifth {
  width: 20%;
}
.one_fourth {
  width: 23%;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .one_fourth {
  width: 25%;
}
.one_third {
  width: 31.33%;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .one_third {
  width: 33.33%;
}
.one_half {
  width: 48%;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .one_half {
  width: 50%;
}
.two_third {
  width: 64.67%;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .two_third {
  width: 66.67%;
}
.three_fourth {
  width: 73%;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .three_fourth {
  width: 75%;
}
.one_first {
  width: 98%;
  float: none;
  position: relative;
  display: block;
  clear: both;
}
.cmsmasters_row_no_margin > .cmsmasters_row_margin > .one_first {
  width: 100%;
}
.cmsmasters_row_margin.cmsmasters_row_columns_behavior {
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  -moz-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}
.cmsmasters_row_margin.cmsmasters_row_columns_behavior:after {
  content: none;
}
.cmsmasters_row_margin.cmsmasters_row_columns_behavior.cmsmasters_131313 {
  width: 99.99%;
}
.cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column .cmsmasters_column_inner {
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: flex;
  -webkit-flex-direction: column;
  -moz-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
  -webkit-align-content: flex-start;
  -moz-align-content: flex-start;
  -ms-align-content: flex-start;
  align-content: flex-start;
}
.cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column .cmsmasters_column_inner:after {
  content: none;
}
.cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column .cmsmasters_column_inner > div {
  width: 100%;
}
.cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column .cmsmasters_column_inner > .cmsmasters_featured_block {
  height: 100%;
}
.safari_only .cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column,
.safari_mobile_only .cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column {
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: flex;
}
.safari_only .cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column .cmsmasters_column_inner,
.safari_mobile_only .cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column .cmsmasters_column_inner {
  min-width: 100%;
  height: auto;
  -webkit-flex-direction: row;
  -moz-flex-direction: row;
  -ms-flex-direction: row;
  flex-direction: row;
  -webkit-flex-wrap: wrap;
  -moz-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-align-content: flex-start;
  -moz-align-content: flex-start;
  -ms-align-content: flex-start;
  align-content: flex-start;
}
.safari_only .cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column .cmsmasters_column_inner > .cmsmasters_featured_block,
.safari_mobile_only .cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column .cmsmasters_column_inner > .cmsmasters_featured_block {
  height: auto;
}
[data-animation] {
  opacity: 0;
}
[data-animation].animated {
  opacity: 1;
}
#page.cmsmasters_boxed {
  width: 995px;
  margin: 0 auto;
}
#page.cmsmasters_boxed #header,
#page.cmsmasters_boxed #footer {
  width: 995px;
}
#page,
#main,
#middle,
.middle_content,
#bottom,
#footer,
.headline,
.headline_outer,
.middle_inner,
.cmsmasters_row,
.cmsmasters_row_outer,
.cmsmasters_row_outer_parent {
  width: 100%;
  position: relative;
}
.post-password-form,
.header_top_inner,
.header_mid_inner,
.header_bot_inner,
.content_wrap,
.headline_inner,
.bottom_outer,
.footer_inner,
.cmsmasters_row_inner {
  position: relative;
  width: 980px;
  padding: 0 15px;
  margin: 0 auto;
}
.content_wrap .post-password-form {
  width: auto;
  padding: 0;
}
.cmsmasters_row.cmsmasters_row_top_default.cmsmasters_row_bot_default {
  z-index: 0;
}
.cmsmasters_row.cmsmasters_row_top_left_diagonal:before,
.cmsmasters_row.cmsmasters_row_bot_left_diagonal:after {
  content: '';
  background-color: inherit;
  width: 150%;
  height: 150px;
  position: absolute;
  left: auto;
  right: 0;
  top: 0;
  bottom: auto;
  z-index: 1;
  -webkit-transform: rotate(2deg);
  -moz-transform: rotate(2deg);
  -ms-transform: rotate(2deg);
  transform: rotate(2deg);
  -webkit-transform-origin: 100% 0;
  -moz-transform-origin: 100% 0;
  -ms-transform-origin: 100% 0;
  transform-origin: 100% 0;
}
.cmsmasters_row.cmsmasters_row_bot_left_diagonal:after {
  top: auto;
  bottom: 0;
  -webkit-transform: rotate(-2deg);
  -moz-transform: rotate(-2deg);
  -ms-transform: rotate(-2deg);
  transform: rotate(-2deg);
}
.cmsmasters_row.cmsmasters_row_top_right_diagonal:before,
.cmsmasters_row.cmsmasters_row_bot_right_diagonal:after {
  content: '';
  background-color: inherit;
  width: 150%;
  height: 150px;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: auto;
  z-index: 1;
  -webkit-transform: rotate(-2deg);
  -moz-transform: rotate(-2deg);
  -ms-transform: rotate(-2deg);
  transform: rotate(-2deg);
  -webkit-transform-origin: 0 0;
  -moz-transform-origin: 0 0;
  -ms-transform-origin: 0 0;
  transform-origin: 0 0;
}
.cmsmasters_row.cmsmasters_row_bot_right_diagonal:after {
  top: auto;
  bottom: 0;
  -webkit-transform: rotate(2deg);
  -moz-transform: rotate(2deg);
  -ms-transform: rotate(2deg);
  transform: rotate(2deg);
}
.cmsmasters_row.cmsmasters_row_top_zigzag:before,
.cmsmasters_row.cmsmasters_row_bot_zigzag:after {
  content: '';
  background-size: 10px 5px;
  height: 5px;
  width: 100%;
  position: absolute;
  left: 0;
  right: 0;
  top: auto;
  bottom: 100%;
  z-index: 1;
}
.cmsmasters_row.cmsmasters_row_bot_zigzag:after {
  top: 100%;
  bottom: auto;
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  transform: rotate(180deg);
}
.cmsmasters_row.cmsmasters_row_top_triangle:before,
.cmsmasters_row.cmsmasters_row_bot_triangle:after {
  content: '';
  background-color: inherit;
  z-index: 1;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
  width: 30px;
  height: 30px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: -15px;
  bottom: auto;
}
.cmsmasters_row.cmsmasters_row_bot_triangle:after {
  top: auto;
  bottom: -15px;
}
.cmsmasters_row .cmsmasters_row_outer_parent {
  padding: 0.1px 0;
  z-index: 2;
}
.cmsmasters_row .cmsmasters_row_inner.cmsmasters_row_fullwidth {
  width: 100%;
  padding: 0 30px;
}
.cmsmasters_row .cmsmasters_row_inner.cmsmasters_row_no_margin > .cmsmasters_row_margin {
  margin: 0;
}
.cmsmasters_row .cmsmasters_row_inner.cmsmasters_row_no_margin > .cmsmasters_row_margin > .cmsmasters_column {
  margin: 0;
}
.cmsmasters_row .cmsmasters_row_overlay {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
.cmsmasters_row_margin {
  margin: 0 -1.07%;
  position: relative;
}
.content_wrap.r_sidebar .cmsmasters_row,
.content_wrap.l_sidebar .cmsmasters_row,
.content_wrap .opened-article .cmsmasters_row,
.content_wrap .cmsmasters_tabs .cmsmasters_row {
  -webkit-box-sizing: content-box;
  -moz-box-sizing: content-box;
  box-sizing: content-box;
}
.content_wrap.r_sidebar .cmsmasters_row .cmsmasters_row_inner,
.content_wrap.l_sidebar .cmsmasters_row .cmsmasters_row_inner,
.content_wrap .opened-article .cmsmasters_row .cmsmasters_row_inner,
.content_wrap .cmsmasters_tabs .cmsmasters_row .cmsmasters_row_inner {
  width: 100%;
  padding: 0;
}
.content_wrap.cmsmasters_set_fullwidth {
  width: 100%;
  padding: 0;
}
#page:after,
#middle:after,
.middle_inner:after,
.middle_content:after,
#bottom:after,
.bottom_bg:after,
.content_wrap:after,
.cmsmasters_row_inner:after,
.cmsmasters_row_margin:after,
.cmsmasters_column_inner:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
#middle {
  z-index: 1;
}
.middle_content {
  padding: 5% 0;
}
.middle_content:empty {
  display: none;
}
.content {
  width: 74%;
  padding: 5% 0;
  position: relative;
  float: left;
}
.content.fr {
  float: right;
}
.sidebar {
  width: 26%;
  padding: 5% 0 5% 40px;
  position: relative;
  float: right;
}
.sidebar.fl {
  padding: 5% 40px 5% 0;
  float: left;
}
.bottom_bg {
  padding-top: 120px;
  padding-bottom: 80px;
}
.bottom_inner {
  margin: 0 -1%;
}
.bottom_inner:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.bottom_inner aside {
  position: relative;
  float: left;
  margin: 0 1%;
}
/* Instagram */
#sbi_load {
  padding-top: 0 !important;
}
/***************** Icons ******************/
/* Global */
.cmsmasters_theme_icon_comment:before {
  content: '\e87c';
}
.cmsmasters_theme_icon_like:before {
  content: '\e889';
}
.cmsmasters_theme_icon_search:before {
  content: '\eaac';
}
.cmsmasters_theme_icon_cancel:before {
  content: '\e83f';
}
#page .cmsmasters_theme_icon_cancel:before {
  font-family: "fontello-custom";
}
.cmsmasters_theme_icon_resp_nav:before {
  content: '\e925';
}
.cmsmasters_theme_icon_person:before {
  content: '\e813';
}
.cmsmasters_theme_icon_image:before {
  content: '\e831';
}
.cmsmasters_theme_icon_check:before {
  content: '\eabb';
}
.cmsmasters_theme_icon_spinner:before {
  content: '\e9fd';
}
/* Arrows */
.cmsmasters_theme_icon_slide_prev:before,
.cmsmasters_theme_icon_pagination_prev:before,
.cmsmasters_theme_icon_comments_nav_prev:before,
.cmsmasters_prev_arrow span:before {
  content: '\e89d';
  font-family: "fontello-custom" !important;
}
.cmsmasters_theme_icon_slide_next:before,
.cmsmasters_theme_icon_pagination_next:before,
.cmsmasters_theme_icon_comments_nav_next:before,
.cmsmasters_next_arrow span:before {
  content: '\e89c';
  font-family: "fontello-custom" !important;
}
.cmsmasters_theme_icon_slide_top:before {
  content: '\eb23';
}
.cmsmasters_theme_icon_slide_bottom:before {
  content: '\eb20';
}
.cmsmasters_theme_icon_resp_nav_slide_up:before {
  content: '\eb23';
}
.cmsmasters_theme_icon_resp_nav_slide_down:before {
  content: '\eb20';
}
/* Widget Add Info */
.cmsmasters_theme_icon_user_mail:before {
  content: '\e885';
}
.cmsmasters_theme_icon_user_website:before {
  content: '\e836';
}
.cmsmasters_theme_icon_user_phone:before {
  content: '\e805';
}
.cmsmasters_theme_icon_user_address:before {
  content: '\e895';
}
/* Twitter stripe */
.cmsmasters_theme_icon_user_twitter:before {
  content: '\ea97';
}
/***************** Elements ******************/
/* Icon Arrow Global Styles */
.cmsmasters_prev_arrow,
.cmsmasters_next_arrow {
  display: inline-block;
  position: relative;
  text-align: center;
}
.cmsmasters_prev_arrow:after,
.cmsmasters_next_arrow:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.cmsmasters_prev_arrow span,
.cmsmasters_next_arrow span {
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 15px;
}
.cmsmasters_prev_arrow span:before,
.cmsmasters_next_arrow span:before {
  font-family: 'fontello-custom';
  font-size: 15px;
  line-height: 15px;
  text-align: center;
  display: block;
  speak: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.cmsmasters_prev_arrow span {
  text-indent: -1px;
}
.cmsmasters_next_arrow span {
  text-indent: 2px;
}
/* Pixel Arrow Global Styles */
.cmsmasters_prev_arrow_pixel,
.cmsmasters_next_arrow_pixel {
  background: #000000;
  width: 1px;
  height: 1px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: 0;
}
.cmsmasters_prev_arrow_pixel:before,
.cmsmasters_next_arrow_pixel:before,
.cmsmasters_prev_arrow_pixel:after,
.cmsmasters_next_arrow_pixel:after,
.cmsmasters_prev_arrow_pixel span:before,
.cmsmasters_next_arrow_pixel span:before,
.cmsmasters_prev_arrow_pixel span:after,
.cmsmasters_next_arrow_pixel span:after {
  content: '';
  background: transparent;
  position: absolute;
  width: 1px;
  border-top-width: 1px;
  border-top-style: solid;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_prev_arrow_pixel:before,
.cmsmasters_next_arrow_pixel:before {
  height: 3px;
  left: 1px;
  top: -1px;
}
.cmsmasters_prev_arrow_pixel:after,
.cmsmasters_next_arrow_pixel:after {
  height: 5px;
  left: 2px;
  top: -2px;
}
.cmsmasters_prev_arrow_pixel span:before,
.cmsmasters_next_arrow_pixel span:before {
  height: 7px;
  left: 3px;
  top: -3px;
}
.cmsmasters_prev_arrow_pixel span:after,
.cmsmasters_next_arrow_pixel span:after {
  height: 9px;
  left: 4px;
  top: -4px;
}
.cmsmasters_next_arrow_pixel {
  right: 0;
  left: auto;
}
.cmsmasters_next_arrow_pixel:before {
  left: auto;
  right: 1px;
}
.cmsmasters_next_arrow_pixel:after {
  left: auto;
  right: 2px;
}
.cmsmasters_next_arrow_pixel span:before {
  left: auto;
  right: 3px;
}
.cmsmasters_next_arrow_pixel span:after {
  left: auto;
  right: 4px;
}
.cmsmasters_top_arrow_pixel,
.cmsmasters_bot_arrow_pixel {
  background: #000000;
  width: 1px;
  height: 1px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: -4px;
  bottom: 0;
}
.cmsmasters_top_arrow_pixel:before,
.cmsmasters_bot_arrow_pixel:before,
.cmsmasters_top_arrow_pixel:after,
.cmsmasters_bot_arrow_pixel:after,
.cmsmasters_top_arrow_pixel span:before,
.cmsmasters_bot_arrow_pixel span:before,
.cmsmasters_top_arrow_pixel span:after,
.cmsmasters_bot_arrow_pixel span:after {
  content: '';
  background: transparent;
  position: absolute;
  height: 1px;
  border-left-width: 1px;
  border-left-style: solid;
  border-right-width: 1px;
  border-right-style: solid;
}
.cmsmasters_top_arrow_pixel:before,
.cmsmasters_bot_arrow_pixel:before {
  width: 3px;
  top: 1px;
  left: -1px;
}
.cmsmasters_top_arrow_pixel:after,
.cmsmasters_bot_arrow_pixel:after {
  width: 5px;
  top: 2px;
  left: -2px;
}
.cmsmasters_top_arrow_pixel span:before,
.cmsmasters_bot_arrow_pixel span:before {
  width: 7px;
  top: 3px;
  left: -3px;
}
.cmsmasters_top_arrow_pixel span:after,
.cmsmasters_bot_arrow_pixel span:after {
  width: 9px;
  top: 4px;
  left: -4px;
}
.cmsmasters_bot_arrow_pixel {
  top: 4px;
}
.cmsmasters_bot_arrow_pixel:before {
  top: auto;
  bottom: 1px;
}
.cmsmasters_bot_arrow_pixel:after {
  top: auto;
  bottom: 2px;
}
.cmsmasters_bot_arrow_pixel span:before {
  top: auto;
  bottom: 3px;
}
.cmsmasters_bot_arrow_pixel span:after {
  top: auto;
  bottom: 4px;
}
/* Post Password Form */
.post-password-form {
  padding-top: 40px;
}
.post-password-form p:first-child {
  font-weight: bold;
}
.post-password-form label {
  display: inline-block;
  vertical-align: bottom;
}
.post-password-form input[type="password"] {
  display: block;
}
.post-password-form input[type=submit] {
  line-height: 46px;
  display: inline-block;
  margin: 0 0 0 5px;
  vertical-align: bottom;
}
/* Prelodaer */
.preloader {
  display: block;
  width: 100%;
  height: 0;
  padding-bottom: 55.8%;
  position: relative;
  text-align: center;
}
.preloader .full-width {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
.preloader.highImg {
  height: auto;
  padding: 0;
}
.preloader.highImg .full-width {
  height: auto;
  position: relative;
  top: auto;
  left: auto;
}
/* Resizable Block */
.resizable_block {
  display: block;
  width: 100%;
  height: 0;
  padding-bottom: 55.8%;
  position: relative;
  overflow: hidden;
}
.resizable_block .full-width {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
/* Img Wrapper */
.cmsmasters_img_wrap {
  display: block;
  position: relative;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_img_wrap .img_placeholder {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_img_wrap .img_placeholder:before {
  font-size: 40px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_img_wrap .highImg .img_placeholder {
  display: block;
  padding-bottom: 55.8%;
  position: relative;
}
/* Img Rollover */
.cmsmasters_img_rollover_wrap {
  display: block;
  position: relative;
  overflow: hidden;
}
.cmsmasters_img_rollover_wrap .img_placeholder {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_img_rollover_wrap .img_placeholder:before {
  font-size: 40px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_img_rollover_wrap.highImg .img_placeholder {
  display: block;
  padding-bottom: 55.8%;
  position: relative;
}
.cmsmasters_img_rollover_wrap .cmsmasters_img_rollover {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  text-align: center;
  opacity: 0;
}
.cmsmasters_img_rollover_wrap .cmsmasters_img_rollover:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.cmsmasters_img_rollover_wrap .cmsmasters_img_rollover .cmsmasters_open_post_link {
  display: inline-block;
}
.cmsmasters_img_rollover_wrap .cmsmasters_img_rollover .cmsmasters_open_link,
.cmsmasters_img_rollover_wrap .cmsmasters_img_rollover .cmsmasters_image_link {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_img_rollover_wrap:hover .cmsmasters_img_rollover {
  opacity: 0.3;
}
/* Placeholder Small */
.img_placeholder_small {
  height: 60px;
  width: 60px;
  display: block;
  position: relative;
}
.img_placeholder_small:before {
  font-size: 18px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
/* Video Wrapper */
.wp-video-shortcode,
.mejs-layer {
  max-width: 100%;
}
.mejs-container.wp-video-shortcode,
.mejs-container.wp-audio-shortcode {
  margin-bottom: 20px;
  max-width: 100%;
}
.cmsmasters_video_wrap {
  width: 100%;
  max-width: 100%;
  height: 0;
  padding-bottom: 55.8%;
  margin-bottom: 20px;
  overflow: hidden;
  position: relative;
}
.cmsmasters_video_wrap > div {
  width: 100% !important;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_video_wrap iframe {
  width: 100%;
  max-width: auto;
  height: 100%;
  margin-bottom: 0;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_video_wrap .wp-video-shortcode,
.cmsmasters_video_wrap .mejs-layer {
  width: 100% !important;
  height: 100% !important;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_video_wrap .wp-video-shortcode .mejs-overlay-button,
.cmsmasters_video_wrap .mejs-layer .mejs-overlay-button {
  margin-top: -50px !important;
}
/* Search Bar */
.search_bar_wrap {
  display: inline-block;
  width: 100%;
  position: relative;
}
.search_bar_wrap .search_field {
  padding: 0;
  margin: 0;
  overflow: hidden;
}
.search_bar_wrap .search_field input {
  width: 100%;
}
#middle .search_bar_wrap .search_field input,
#bottom .search_bar_wrap .search_field input {
  padding-left: 22px;
  padding-right: 55px;
}
.search_bar_wrap .search_button {
  padding: 1px;
  margin: 0;
  width: 60px;
  height: 100%;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: 0;
  top: 0;
  bottom: 0;
  overflow: hidden;
}
.search_bar_wrap .search_button button {
  background: none;
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  margin: 0;
  cursor: pointer;
  position: relative;
  border-width: 0;
  border-style: solid;
  -webkit-box-shadow: none;
  box-shadow: none;
}
.search_bar_wrap .search_button button:before {
  font-size: 14px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
/* Social Icons */
.social_wrap {
  display: block;
  height: 100%;
  position: relative;
  overflow: hidden;
}
.social_wrap .social_wrap_inner {
  height: 100%;
}
.social_wrap .social_wrap_inner:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.social_wrap ul {
  list-style: none;
  display: inline-block;
  margin: 0;
  padding: 0;
  vertical-align: middle;
}
.social_wrap li {
  display: inline-block;
  margin: 0 2px 0 0;
  padding: 0;
  position: relative;
  vertical-align: middle;
}
.social_wrap li:last-child {
  margin: 0;
}
.social_wrap li:before {
  display: none;
}
.social_wrap a {
  display: block;
  width: 30px;
  height: 30px;
  position: relative;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.social_wrap a:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
/* Core Owl Carousel CSS v1.3.2 */
.cmsmasters_owl_slider:not(.owl-carousel) > div {
  width: 0;
  height: 0;
  visibility: hidden;
}
.owl-carousel {
  width: 100%;
  position: relative;
  -ms-touch-action: pan-y;
  display: none;
}
.owl-carousel .owl-wrapper-outer {
  width: 100%;
  position: relative;
  overflow: hidden;
}
.owl-carousel .owl-wrapper-outer.autoHeight {
  -webkit-transition: height 0.5s ease-in-out;
  -moz-transition: height 0.5s ease-in-out;
  -ms-transition: height 0.5s ease-in-out;
  -o-transition: height 0.5s ease-in-out;
  transition: height 0.5s ease-in-out;
}
.owl-carousel .owl-wrapper-outer .owl-wrapper {
  position: relative;
  display: none;
}
.owl-carousel .owl-wrapper-outer .owl-wrapper:after {
  content: '.';
  line-height: 0;
  height: 0;
  visibility: hidden;
  display: block;
  clear: both;
}
.owl-carousel .owl-wrapper-outer .owl-wrapper .owl-item {
  float: left;
}
.owl-carousel .owl-wrapper-outer .owl-wrapper,
.owl-carousel .owl-wrapper-outer .owl-item {
  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -ms-backface-visibility: hidden;
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
}
.ie_only .owl-carousel .owl-wrapper-outer .owl-wrapper,
.ie_only .owl-carousel .owl-wrapper-outer .owl-item {
  -ms-backface-visibility: visible;
}
.owl-carousel .owl-controls {
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.owl-pagination {
  display: block;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  pointer-events: none;
  text-align: center;
}
.owl-pagination .owl-page {
  display: inline-block;
  pointer-events: auto;
  width: 10px;
  height: 10px;
  margin: 0 7px 1px;
  text-indent: -9999px;
  cursor: pointer;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  overflow: hidden;
}
.owl-pagination .owl-page:hover,
.owl-pagination .owl-page.active {
  outline: none;
}
.owl-pagination .owl-page.active {
  cursor: default;
}
.owl-buttons {
  display: block;
  width: 100%;
  position: absolute;
  left: 0;
  top: 0;
  text-align: center;
}
.owl-buttons > div {
  display: inline-block;
  margin: 0 3px;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
/* Slide Top Button */
#slide_top {
  text-align: center;
  width: 50px;
  height: 50px;
  position: fixed;
  bottom: 50px;
  right: 20px;
  z-index: 99999;
  animation: slide_top 0.5s ease;
  display: none;
}
#slide_top:before {
  font-size: 25px;
  line-height: 50px;
}
#slide_top > span {
  display: inline-block;
  text-indent: -9999px;
}
/* Opened Article */
.opened-article {
  outline: none;
}
.middle_content .opened-article {
  padding: 0 10% 50px;
}
.middle_content .opened-article.cmsmasters_tt_single_event {
  padding-bottom: 0;
}
.middle_content .opened-article.portfolio,
.middle_content .opened-article.profiles {
  padding-top: 3%;
}
/* Likes and Comments */
.cmsmasters_likes a,
.cmsmasters_comments a {
  display: inline-block;
  font-size: 14px;
  line-height: 16px;
  padding: 0 0 0 1px;
  cursor: pointer;
}
.cmsmasters_likes a.active,
.cmsmasters_comments a.active {
  cursor: default;
}
.cmsmasters_likes a::before,
.cmsmasters_comments a::before {
  font-size: 14px;
}
.cmsmasters_likes a span,
.cmsmasters_comments a span {
  margin: 0 0 0 3px;
}
/* Button */
.button,
input[type=submit],
input[type=button],
button {
  display: inline-block;
  padding: 0 27px;
  letter-spacing: -0.15px;
  position: relative;
  white-space: nowrap;
  -webkit-border-radius: 25px;
  border-radius: 25px;
  text-align: center;
  border-width: 0;
  border-style: solid;
  -webkit-transition: color .4s ease, background-color .4s ease, opacity .4s ease;
  -moz-transition: color .4s ease, background-color .4s ease, opacity .4s ease;
  -ms-transition: color .4s ease, background-color .4s ease, opacity .4s ease;
  -o-transition: color .4s ease, background-color .4s ease, opacity .4s ease;
  transition: color .4s ease, background-color .4s ease, opacity .4s ease;
}
.button[disabled],
input[type=submit][disabled],
input[type=button][disabled],
button[disabled] {
  pointer-events: none;
  opacity: 0.3;
}
/* Items Filter */
.cmsmasters_items_filter_wrap {
  padding: 0 0 40px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter {
  position: relative;
  overflow: hidden;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter .button {
  background-color: transparent;
  padding: 0;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter .button:hover {
  background-color: transparent;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_block {
  display: block;
  position: relative;
  float: right;
  overflow: hidden;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_but {
  display: block;
  margin: 0 0 0 5px;
  float: left;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_but span {
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_but[name="project_date"] {
  margin-left: 30px;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_but:before {
  content: '\eb20';
  font-family: "fontello";
  display: inline-block;
  vertical-align: middle;
  font-size: 23px;
  transition: transform 0.3s ease, opacity 0.3s ease;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_but.reversed {
  position: relative;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_but.reversed:before {
  transform: rotate(180deg);
  -webkit-transform: rotate(180deg);
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_block {
  position: relative;
  overflow: hidden;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_but {
  cursor: pointer;
  float: left;
  display: none;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_but:before {
  content: none;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_but.current {
  position: relative;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_list {
  margin: 0;
  padding: 0 20px 0 0;
  text-align: left;
  display: block !important;
  overflow: hidden;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_list li {
  display: inline-block;
  margin: 0 0 -5px;
  padding: 0 50px 0 0;
  overflow: hidden;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_list li:before {
  content: none;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_list li:last-child {
  padding-right: 0;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_list li a {
  background-color: transparent;
  display: inline-block;
  padding: 0;
  cursor: pointer;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_list li.current a {
  cursor: default;
}
/* More Items Loader and Pagination */
.cmsmasters_wrap_more_items {
  width: 100%;
  position: relative;
  overflow: hidden;
}
.cmsmasters_wrap_more_items.cmsmasters_loading {
  min-height: 60px;
}
.cmsmasters_wrap_more_items.cmsmasters_loading:before {
  font-size: 30px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: auto;
  bottom: 0;
}
.cmsmasters_wrap_items_loader {
  padding: 40px 0 0;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_wrap_items_loader .cmsmasters_items_loader {
  display: inline-block;
}
div.subpage_nav {
  position: relative;
}
div.subpage_nav > strong {
  font-weight: bold;
  display: inline-block;
  padding: 0 5px 0 0;
  vertical-align: middle;
}
div.subpage_nav > span,
div.subpage_nav > a {
  display: inline-block;
  padding: 0 5px;
  vertical-align: middle;
}
.cmsmasters_wrap_pagination {
  padding: 40px 0 0;
  overflow: hidden;
  text-align: center;
}
.cmsmasters_wrap_pagination ul {
  display: inline-block;
  padding: 0;
  margin: 0;
}
.cmsmasters_wrap_pagination ul li {
  display: block;
  margin: 0;
  padding: 1px 3px;
  float: left;
}
.cmsmasters_wrap_pagination ul li:before {
  content: none;
}
.cmsmasters_wrap_pagination ul li .page-numbers {
  line-height: 32px !important;
  display: block;
  min-width: 34px;
  height: 34px;
  position: relative;
}
.cmsmasters_wrap_pagination:empty {
  display: none;
}
/* Post Navigation */
.post_nav {
  padding: 70px 0;
  position: relative;
  overflow: hidden;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.post_nav > span {
  width: 50%;
  display: block;
  position: relative;
  overflow: hidden;
}
.post_nav > span a {
  display: inline-block;
  padding: 3px 0;
  position: relative;
  z-index: 2;
  padding-top: 20px;
}
.post_nav > span > span {
  margin: auto !important;
  position: absolute;
  top: 0;
  width: 46px;
  height: 46px;
  overflow: hidden;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.post_nav > span .cmsmasters_pag_post_info {
  position: absolute;
  top: 5px;
  white-space: nowrap;
}
.post_nav > span.cmsmasters_prev_post {
  float: left;
}
.post_nav > span.cmsmasters_prev_post .cmsmasters_pag_post_info {
  padding-left: 67px;
  padding-right: 0;
}
.post_nav > span.cmsmasters_prev_post a {
  padding-left: 67px;
  padding-right: 20px;
}
.post_nav > span.cmsmasters_prev_post > span {
  left: 1px;
  right: auto;
  text-indent: 1px;
}
.post_nav > span.cmsmasters_next_post {
  text-align: right;
  float: right;
}
.post_nav > span.cmsmasters_next_post .cmsmasters_pag_post_info {
  padding-left: 0px;
  padding-right: 0px;
  right: 67px;
}
.post_nav > span.cmsmasters_next_post a {
  padding-left: 20px;
  padding-right: 67px;
}
.post_nav > span.cmsmasters_next_post > span {
  left: auto;
  right: 1px;
  text-indent: 3px;
}
aside:last-child {
  border-bottom-width: 0;
  border-bottom-style: solid;
  padding-bottom: 0;
}
/* Share Posts */
.share_posts {
  padding: 40px 0 0;
  position: relative;
  overflow: hidden;
}
.share_posts .share_posts_title {
  position: relative;
  margin-bottom: 10px;
}
.share_posts .share_posts_inner {
  position: relative;
  overflow: hidden;
}
.share_posts .share_posts_inner a {
  font-size: 0;
  display: inline-block;
}
.share_posts .share_posts_inner a::before {
  font-family: "fontello";
  display: inline-block;
}
.share_posts .share_posts_inner a:nth-child(1)::before {
  content: '\eb9c';
}
.share_posts .share_posts_inner a:nth-child(2)::before {
  font-family: "fontello-custom";
  content: '\f0d5';
}
.share_posts .share_posts_inner a:nth-child(3)::before {
  content: '\ea97';
}
.share_posts .share_posts_inner a:nth-child(4)::before {
  content: '\ea7c';
}
.share_posts a {
  margin: 0 18px 0 0;
  position: relative;
}
.share_posts a:last-child {
  margin-left: 0;
  margin-right: 0;
}
/* About Author */
.about_author {
  padding: 50px 0 0;
  position: relative;
}
.about_author .about_author_inner {
  padding: 30px 00px;
  overflow: hidden;
}
.about_author .about_author_avatar {
  margin: 0 25px 0 0;
  width: 175px;
  float: left;
  overflow: hidden;
}
.about_author .about_author_avatar img {
  outline: none;
}
.about_author .about_author_cont {
  position: relative;
  overflow: hidden;
}
.about_author .about_author_cont p {
  padding: 0 0 20px;
}
.about_author .about_author_cont_title {
  margin: 0 0 10px;
}
/* Single Post Slider */
.cmsmasters_single_slider {
  padding: 10% 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_single_slider .preloader {
  padding-bottom: 67.2%;
}
.cmsmasters_single_slider .preloader.highImg {
  height: auto;
  padding: 0;
}
.cmsmasters_single_slider .cmsmasters_owl_slider {
  padding: 35px 0 0;
  outline: none;
}
#page .cmsmasters_single_slider .cmsmasters_owl_slider .owl-buttons {
  bottom: 100%;
  margin-bottom: -15px;
  transform: none;
  top: auto;
  text-align: right;
}
#page .cmsmasters_single_slider .cmsmasters_owl_slider .owl-buttons > div {
  position: static;
  margin-bottom: 0em;
  float: none;
}
#page .cmsmasters_single_slider .cmsmasters_owl_slider .owl-buttons > div:first-child {
  margin-left: 0;
  margin-right: 0.5em;
}
#page .cmsmasters_single_slider .cmsmasters_owl_slider .owl-buttons > div:last-child {
  margin-left: 0;
  margin-right: 0;
}
.cmsmasters_single_slider .cmsmasters_single_slider_title {
  outline: none;
  padding: 0 115px 0 0;
  margin: 0 0 0px;
}
.cmsmasters_single_slider .cmsmasters_single_slider_inner {
  margin: 0 -10px;
}
.cmsmasters_single_slider .cmsmasters_single_slider_inner .owl-buttons {
  padding: 0 10px;
}
.cmsmasters_single_slider .cmsmasters_single_slider_item {
  min-width: 200px;
  padding: 0 10px;
  position: relative;
}
.cmsmasters_single_slider .cmsmasters_single_slider_item_outer {
  position: relative;
  overflow: hidden;
}
.cmsmasters_single_slider .cmsmasters_single_slider_item_inner {
  padding: 15px 0px 0px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_single_slider .cmsmasters_single_slider_item_title {
  margin: 0;
  padding: 0;
}
/* Single Pings List */
.cmsmasters_pings_list {
  padding: 50px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_pings_list .pingslist .pingback {
  position: relative;
  padding: 8px 50px 8px 0;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_pings_list .pingslist .pingback:last-child {
  border-bottom-width: 0;
  border-bottom-style: solid;
}
.cmsmasters_pings_list .pingslist .pingback .comment-body {
  display: inline;
}
.cmsmasters_pings_list .pingslist .pingback .comment-body .edit-link {
  width: auto;
  height: auto;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_pings_list .pingslist .pingback .comment-body .edit-link:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.cmsmasters_pings_list .pingslist .pingback .comment-body .edit-link .comment-edit-link {
  display: inline-block;
  vertical-align: middle;
}
/* Post Comments */
.post_comments {
  padding: 45px 0 0;
  position: relative;
}
.post_comments:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.post_comments .post_comments_title {
  margin: 0 0 0px;
}
.post_comments .cmsmasters_comment_item_content > ul,
.post_comments .cmsmasters_comment_item_content > ol {
  margin-bottom: 20px;
}
.cmsmasters_comments_closed {
  padding: 25px 0;
  margin: 0;
}
.comments_nav {
  padding: 80px 0 0;
  overflow: hidden;
}
.comments_nav .comment_pag_font {
  display: inline-block;
  margin-bottom: 0;
}
.comments_nav > span {
  position: relative;
}
.comments_nav > span a {
  display: inline-block;
  position: relative;
  height: 46px;
}
#page .comments_nav > span a {
  line-height: 46px;
}
.comments_nav > span::before {
  position: absolute;
  z-index: 0;
  width: 46px;
  height: 46px;
  line-height: 46px;
  vertical-align: middle;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  overflow: hidden;
  text-align: center;
}
.comments_nav .comments_nav_prev {
  float: left;
}
.comments_nav .comments_nav_prev a {
  padding-left: 70px;
}
.comments_nav .comments_nav_prev::before {
  left: 0;
  text-indent: -2px;
}
.comments_nav .comments_nav_next {
  float: right;
}
.comments_nav .comments_nav_next a {
  padding-right: 70px;
}
.comments_nav .comments_nav_next::before {
  float: right;
  right: 0;
  text-indent: 2px;
}
.commentlist {
  list-style: none;
  margin: 0;
}
.commentlist > li {
  padding-bottom: 55px;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.commentlist:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.commentlist .children {
  list-style: none;
  margin: 0;
  padding: 0 0 0 20px;
}
.commentlist .comment {
  margin: 0;
  padding-top: 55px;
}
.commentlist .comment:before {
  content: none;
}
.commentlist .comment:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.commentlist + .comments_nav {
  padding: 90px 0 70px;
}
.cmsmasters_comment_item {
  position: relative;
}
.cmsmasters_comment_item:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_comment_item .cmsmasters_comment_item_date {
  outline: none;
  padding-bottom: 10px;
}
.cmsmasters_comment_item .cmsmasters_comment_item_avatar {
  display: block;
  margin-right: 30px;
  float: left;
  overflow: hidden;
}
.cmsmasters_comment_item .cmsmasters_comment_item_avatar img {
  outline: none;
}
.cmsmasters_comment_item .cmsmasters_comment_item_cont {
  position: relative;
  overflow: hidden;
}
.cmsmasters_comment_item .cmsmasters_comment_item_cont_info {
  position: relative;
  padding-bottom: 15px;
  overflow: hidden;
}
.cmsmasters_comment_item .cmsmasters_comment_item_cont_info > a {
  display: inline-block;
}
.cmsmasters_comment_item .cmsmasters_comment_item_title {
  margin: -5px 0 2px;
  padding: 0;
}
.product .cmsmasters_comment_item .cmsmasters_comment_item_title {
  float: left;
}
.cmsmasters_comment_item .cmsmasters_comment_interface {
  float: right;
}
.cmsmasters_comment_item .cmsmasters_comment_item_content {
  padding-bottom: 20px;
}
.cmsmasters_comment_item .cmsmasters_comment_item_content > *:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}
.cmsmasters_comment_item .cmsmasters_comment_item_interface > * {
  display: inline-block;
  margin-bottom: 0;
  padding-bottom: 0;
  float: left;
}
.cmsmasters_comment_item .cmsmasters_comment_item_interface .comment-reply-link {
  margin-right: 10px;
}
/* Comment Respond */
.comment-respond {
  padding: 5% 0;
  position: relative;
}
.comment-respond:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.comment-respond textarea {
  min-height: 260px;
}
.comment-respond p {
  padding-bottom: 7px;
}
.comment-respond p:empty {
  display: block;
}
.comment-respond textarea[name=comment] {
  width: 100%;
}
.comment-respond .comment-reply-title {
  position: relative;
  margin-bottom: 20px;
}
.comment-respond .comment-reply-title small {
  float: right;
}
.comment-respond .comment-form-name {
  margin-bottom: 10px;
  clear: both;
}
.comment-respond .comment-form {
  position: relative;
}
.comment-respond .comment-form:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.comment-respond .comment-notes,
.comment-respond .logged-in-as {
  padding-bottom: 20px;
  display: block;
  clear: both;
}
.comment-respond .comment-form-comment {
  padding-right: 0px;
}
.comment-respond .comment-form-author,
.comment-respond .comment-form-email {
  margin: 0;
}
.comment-respond .comment-form-cookies-consent {
  float: none;
  display: block;
  clear: both;
}
.comment-respond .comment-form-cookies-consent input,
.comment-respond .comment-form-cookies-consent label {
  display: inline-block;
  vertical-align: middle;
}
.comment-respond .comment-form-cookies-consent label {
  margin-left: 5px;
}
.comment-respond .form-submit {
  padding-top: 10px;
  display: block;
  clear: both;
}
.nocomments {
  margin: 50px 0 0;
  position: relative;
  overflow: hidden;
}
/*-------------------------------------------------------------------------*/
/* Header + Centered + Right + Fixed Versions
/*-------------------------------------------------------------------------*/
/***************** Header ******************/
#header {
  width: 100%;
  position: absolute;
  z-index: 9999;
}
/***************** Header Top ******************/
.header_top {
  outline: none;
}
.header_top .header_top_but {
  width: 100%;
  height: 32px;
  position: relative;
  cursor: pointer;
  display: none;
}
.header_top .header_top_but.closed {
  border-color: transparent;
}
.header_top .header_top_but.closed .responsive_top_nav::before {
  opacity: 0;
}
.header_top .header_top_but.closed .responsive_top_nav::after {
  opacity: 1;
}
.header_top .header_top_but > span {
  font-size: 24px;
  line-height: 24px;
  -webkit-transform: scale(1.15, 0.9);
  transform: scale(1.15, 0.9);
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.header_top .header_top_outer {
  height: 100%;
  position: relative;
}
.header_top .header_top_inner {
  height: 100%;
}
.header_top .header_top_inner:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.header_top .social_wrap {
  height: 100%;
  float: right;
}
.header_top .social_wrap li {
  margin-left: 0;
  margin-right: 1px;
}
.header_top .social_wrap li:last-child {
  margin-left: 0;
  margin-right: 0;
}
.header_top .social_wrap a {
  font-size: 13px;
  line-height: 13px;
  width: 22px;
  height: 22px;
}
.header_top .top_nav_wrap {
  display: block;
  height: 100%;
  float: right;
}
.header_top .top_nav_wrap li.current-menu-item .nav_item_wrap {
  padding: 0 0px;
}
.header_top .top_nav_wrap li .nav_item_wrap {
  padding: 0 0px;
}
.header_top .top_nav_wrap li a {
  padding: 0px 18px;
  letter-spacing: 0;
}
.header_top .top_nav_wrap li .sub-menu a {
  padding: 5px 16px;
}
.header_top .responsive_top_nav {
  font-size: 16px;
  width: 30px;
  height: 30px;
  position: relative;
  display: none;
  margin: 0 auto;
}
.header_top .responsive_top_nav.active:before {
  opacity: 0;
}
.header_top .responsive_top_nav.active:after {
  opacity: 1;
}
.header_top .responsive_top_nav:after {
  content: '\e83f';
  font-family: 'fontello-custom';
  font-size: 0.8em;
  opacity: 0;
  line-height: 1;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  -webkit-transition: opacity .4s ease, color .3s ease;
  -moz-transition: opacity .4s ease, color .3s ease;
  -ms-transition: opacity .4s ease, color .3s ease;
  -o-transition: opacity .4s ease, color .3s ease;
  transition: opacity .4s ease, color .3s ease;
}
.header_top .responsive_top_nav:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  -webkit-transition: opacity .4s ease;
  -moz-transition: opacity .4s ease;
  -ms-transition: opacity .4s ease;
  -o-transition: opacity .4s ease;
  transition: opacity .4s ease;
}
.header_top .header_top_meta {
  height: 100%;
  padding: 0 20px 0 0;
  overflow: hidden;
}
.header_top .header_top_meta:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.header_top .meta_wrap {
  display: inline-block;
  vertical-align: middle;
  position: relative;
}
.header_top .meta_wrap > * {
  margin: 0 25px 0 0;
  display: inline-block;
}
.header_top .meta_wrap > *:last-child {
  margin: 0;
}
.header_top .meta_wrap > *[class^="cmsmasters-icon-"]:before,
.header_top .meta_wrap > *[class*=" cmsmasters-icon-"]:before,
.header_top .meta_wrap > *[class^="cmsmasters_theme_icon_"]:before,
.header_top .meta_wrap > *[class*=" cmsmasters_theme_icon_"]:before {
  margin-left: 0;
  margin-right: 0.5em;
  vertical-align: middle;
}
.header_top .meta_wrap > p {
  padding: 0;
}
.header_top .meta_wrap .adr {
  white-space: nowrap;
}
/***************** Header Top Navigation ******************/
.top_line_nav {
  z-index: 205;
}
.top_line_nav > li {
  border-left-width: 1px;
  border-left-style: solid;
}
.top_line_nav > li:last-child {
  border-right-width: 1px;
  border-right-style: solid;
}
/***************** Header Mid ******************/
.header_mid {
  display: block;
  clear: both;
}
.header_mid .header_mid_outer {
  height: 100%;
  position: relative;
  border-color: transparent;
}
#page:not(.enable_header_bottom) .header_mid .header_mid_outer {
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.header_mid .header_mid_inner {
  height: 100%;
}
.header_mid .header_mid_inner:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.header_mid .logo_wrap {
  height: 100%;
  position: relative;
  float: left;
}
.enable_header_centered .header_mid .logo_wrap {
  float: none;
  margin: 0 auto;
  text-align: center;
}
.header_mid .logo_wrap:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.header_mid .logo_wrap .logo_text_wrap {
  display: inline-block;
  vertical-align: middle;
}
.header_mid .logo_wrap .title {
  display: block;
  line-height: 1em;
}
.header_mid .logo_wrap .title_text {
  padding: 0 0 0 3px;
}
.header_mid .logo_wrap .logo {
  display: inline-block;
  width: auto;
  vertical-align: middle;
}
.header_mid .logo_wrap .logo img {
  max-height: 100%;
  width: auto;
  height: auto;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: 0;
}
.enable_header_centered .header_mid .logo_wrap .logo img {
  left: 0;
  right: 0;
}
.header_mid .logo_wrap .logo .logo_retina {
  display: none;
}
.header_mid .header_interface_outer {
  height: 100%;
  float: right;
}
.header_mid .header_interface_outer + .slogan_wrap,
.header_mid .header_interface_outer + .social_wrap {
  margin-right: 30px;
}
.header_mid .header_interface_outer + .mid_nav_wrap {
  margin-right: 10px;
}
.header_mid .header_interface_wrap {
  display: inline-block;
  height: 100%;
}
#page .header_mid .header_interface_wrap > *:last-child {
  margin-left: 0;
}
.header_mid .resp_mid_nav_wrap {
  height: 100%;
  margin: 0 0 0 0px;
  position: relative;
  display: none;
  float: right;
  overflow: hidden;
}
.header_mid .resp_mid_nav_wrap .resp_mid_nav_outer {
  height: 100%;
}
.header_mid .resp_mid_nav_wrap .resp_mid_nav_outer:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.header_mid .resp_mid_nav_wrap .resp_mid_nav {
  font-size: 14px;
  line-height: 14px;
  display: inline-block;
  vertical-align: middle;
  width: 28px;
  position: relative;
}
.header_mid .resp_mid_nav_wrap .resp_mid_nav:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  -webkit-transition: opacity .3s ease;
  -moz-transition: opacity .3s ease;
  -ms-transition: opacity .3s ease;
  -o-transition: opacity .3s ease;
  transition: opacity .3s ease;
}
.header_mid .resp_mid_nav_wrap .resp_mid_nav::after {
  content: '\e83f';
  font-family: 'fontello-custom';
  font-size: 0.8em;
  opacity: 0;
  line-height: 1;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  -webkit-transition: opacity .3s ease;
  -moz-transition: opacity .3s ease;
  -ms-transition: opacity .3s ease;
  -o-transition: opacity .3s ease;
  transition: opacity .3s ease;
}
.header_mid .resp_mid_nav_wrap .resp_mid_nav:hover,
.header_mid .resp_mid_nav_wrap .resp_mid_nav.active {
  outline: none;
}
.header_mid .resp_mid_nav_wrap .resp_mid_nav.active::after {
  opacity: 1;
}
.header_mid .resp_mid_nav_wrap .resp_mid_nav.active::before {
  opacity: 0 !important;
}
.header_mid .mid_search_but_wrap {
  height: 100%;
  margin: 0 0 0 0px;
  position: relative;
  float: right;
}
.header_mid .mid_search_but_wrap::before {
  display: none !important;
}
.header_mid .mid_search_but_wrap + .cmsmasters_dynamic_cart_wrap {
  margin-right: 20px;
  margin-left: 30px;
}
.header_mid .mid_search_but_wrap + .cmsmasters_dynamic_cart_wrap::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: -11px;
  width: 1px;
  height: 19px;
  opacity: 0.5;
  margin: auto;
  display: block;
  border-right-width: 1px;
  border-right-style: solid;
}
.header_mid .mid_search_but_wrap:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.header_mid .mid_search_but_wrap .mid_search_but {
  font-size: 14px;
  line-height: 14px;
  width: 20px;
  height: 20px;
  margin: 0;
  cursor: pointer;
  display: inline-block;
  position: relative;
  vertical-align: middle;
  border-width: 0;
  border-style: solid;
}
.header_mid .mid_search_but_wrap .mid_search_but::after {
  display: none;
}
.header_mid .mid_search_but_wrap .mid_search_but:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.header_mid .social_wrap {
  outline: none;
  display: inline-block;
}
.header_mid .social_wrap + .header_interface_wrap {
  margin-left: 5px;
}
.header_mid .social_wrap .social_wrap_inner {
  text-align: right;
}
.header_mid .social_wrap li {
  margin-left: 0;
  margin-right: 7px;
}
.header_mid .social_wrap li:last-child {
  margin-left: 0;
  margin-right: 0;
}
.header_mid .social_wrap a {
  font-size: 18px;
  line-height: 18px;
  width: 26px;
  height: 26px;
}
.header_mid .slogan_wrap {
  height: 100%;
  display: block;
  position: relative;
  float: right;
  overflow: hidden;
}
.header_mid .slogan_wrap .slogan_wrap_inner {
  height: 100%;
  padding: 0 0 0 20px;
  text-align: right;
}
.header_mid .slogan_wrap .slogan_wrap_inner:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.header_mid .slogan_wrap .slogan_wrap_text {
  display: inline-block;
  vertical-align: middle;
}
.header_mid .slogan_wrap .slogan_wrap_text > * {
  margin: 0 10px 0 0;
  display: inline-block;
}
.header_mid .slogan_wrap .slogan_wrap_text > *:last-child {
  margin: 0;
}
.header_mid .slogan_wrap .slogan_wrap_text > *[class^="cmsmasters-icon-"]:before,
.header_mid .slogan_wrap .slogan_wrap_text > *[class*=" cmsmasters-icon-"]:before,
.header_mid .slogan_wrap .slogan_wrap_text > *[class^="cmsmasters_theme_icon_"]:before,
.header_mid .slogan_wrap .slogan_wrap_text > *[class*=" cmsmasters_theme_icon_"]:before {
  margin-left: 0;
  margin-right: 0.5em;
  vertical-align: middle;
}
.header_mid .slogan_wrap .slogan_wrap_text > p {
  padding: 0;
}
.header_mid .slogan_wrap .slogan_wrap_text .adr {
  white-space: nowrap;
}
.header_mid .mid_nav_wrap {
  height: 100%;
  position: relative;
  float: right;
}
/***************** Header Mid Navigation ******************/
.mid_nav {
  outline: none;
}
/***************** Header Bot ******************/
.header_bot .header_bot_outer {
  height: 100%;
  position: relative;
}
.header_bot .header_bot_inner {
  height: 100%;
}
.header_bot .header_bot_inner:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.enable_header_centered .header_bot .header_bot_inner {
  text-align: center;
}
.header_bot .resp_bot_nav_wrap {
  height: 100%;
  position: relative;
  display: none;
  overflow: hidden;
}
.header_bot .resp_bot_nav_wrap .resp_bot_nav_outer {
  height: 100%;
}
.header_bot .resp_bot_nav_wrap .resp_bot_nav_outer:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.header_bot .resp_bot_nav_wrap .resp_bot_nav {
  font-size: 14px;
  line-height: 14px;
  display: inline-block;
  vertical-align: middle;
  width: 28px;
  height: 28px;
  position: relative;
}
.header_bot .resp_bot_nav_wrap .resp_bot_nav:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.header_bot .resp_bot_nav_wrap .resp_bot_nav:hover,
.header_bot .resp_bot_nav_wrap .resp_bot_nav.active {
  outline: none;
}
.header_bot .bot_nav_wrap {
  height: 100%;
  position: relative;
  float: left;
}
.enable_header_right .header_bot .bot_nav_wrap {
  float: right;
}
.enable_header_centered .header_bot .bot_nav_wrap {
  display: inline-block;
  float: none;
}
/***************** Header Bot Navigation ******************/
.bot_nav {
  outline: none;
}
/***************** Header Search Form ******************/
.cmsmasters_header_search_form {
  width: 100%;
  height: 100%;
  visibility: hidden;
  position: fixed;
  z-index: 99999;
  opacity: 0;
}
.cmsmasters_header_search_form.cmsmasters_show {
  visibility: visible;
  opacity: 1;
}
.cmsmasters_header_search_form .cmsmasters_header_search_form_close {
  font-size: 18px;
  line-height: 18px;
  display: block;
  cursor: pointer;
  width: 32px;
  height: 32px;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: 50px;
  top: 50px;
  bottom: auto;
}
.cmsmasters_header_search_form .cmsmasters_header_search_form_close:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_header_search_form .cmsmasters_header_search_form_field {
  max-width: 90%;
  width: 800px;
  height: 100px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_header_search_form input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range]) {
  background-color: transparent;
  padding: 0 30px 0 30px;
  width: 100%;
  height: 100%;
  line-height: 75px !important;
  border-width: 0;
  border-style: solid;
  text-align: center;
}
.cmsmasters_header_search_form input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range])::-ms-clear {
  display: none;
}
.cmsmasters_header_search_form input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range])::-webkit-input-placeholder,
.cmsmasters_header_search_form input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range])::placeholder,
.cmsmasters_header_search_form input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range]):-ms-input-placeholder,
.cmsmasters_header_search_form input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range]):-moz-placeholder,
.cmsmasters_header_search_form input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range])::-moz-placeholder {
  text-align: center;
  opacity: 1;
}
.cmsmasters_header_search_form button {
  background-color: transparent;
  font-size: 32px;
  line-height: 32px;
  padding: 0;
  border-width: 0;
  border-style: solid;
  width: 90px;
  height: 100%;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: 0;
  top: 0;
  bottom: 0;
  display: none;
}
.cmsmasters_header_search_form button:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
/*-------------------------------------------------------------------------*/
/* Headline Styles
/*-------------------------------------------------------------------------*/
body .headline {
  background-color: transparent;
}
.cmsmasters_breadcrumbs {
  position: relative;
  overflow: hidden;
}
.cmsmasters_breadcrumbs .cmsmasters_breadcrumbs_aligner {
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_breadcrumbs .cmsmasters_breadcrumbs_inner {
  display: inline-block;
  padding-top: 10px;
  padding-bottom: 10px;
  vertical-align: middle;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_breadcrumbs .cmsmasters_breadcrumbs_inner .breadcrumbs_sep {
  padding: 0 2px;
  font-size: 1.3em;
  vertical-align: middle;
}
.headline_outer {
  background-position: top center;
  position: relative;
  z-index: 1;
}
.headline_outer.cmsmasters_headline_disabled {
  outline: none;
}
.headline_outer .headline_color {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.headline_outer .headline_inner {
  padding: 0 15px;
  position: relative;
  z-index: 1;
  overflow: hidden;
}
.headline_outer .headline_inner.aligncenter {
  display: table;
}
.headline_outer .headline_inner .headline_aligner {
  display: inline-block;
  vertical-align: middle;
}
.headline_outer .headline_inner .headline_text {
  position: relative;
}
.headline_outer .headline_inner .headline_text:before {
  line-height: 1em;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  top: 3px;
  bottom: auto;
}
.headline_outer .headline_inner .headline_text .entry-title {
  word-wrap: break-word;
  margin: 0;
}
.headline_outer .headline_inner .headline_text .entry-subtitle {
  margin: 8px 3px 0 0px;
}
.headline_outer .headline_inner .headline_text_wrap {
  vertical-align: middle;
  position: relative;
}
.headline_outer .headline_inner.align_left {
  text-align: left;
}
.headline_outer .headline_inner.align_left .headline_text_wrap {
  width: 100%;
  text-align: left;
}
.headline_outer .headline_inner.align_left .headline_text {
  display: inline-block;
  vertical-align: middle;
  width: 50%;
  text-align: left;
}
.headline_outer .headline_inner.align_left .headline_text:before {
  right: auto;
}
.headline_outer .headline_inner.align_left .cmsmasters_breadcrumbs {
  width: 50%;
  float: right;
  text-align: right;
}
.headline_outer .headline_inner.align_right {
  text-align: right;
}
.headline_outer .headline_inner.align_right .headline_text_wrap {
  width: 100%;
  text-align: right;
}
.headline_outer .headline_inner.align_right .headline_text_wrap::before {
  display: block;
}
.headline_outer .headline_inner.align_right .headline_text {
  display: inline-block;
  vertical-align: middle;
  width: 50%;
  text-align: right;
}
.headline_outer .headline_inner.align_right .headline_text:before {
  left: auto;
}
.headline_outer .headline_inner.align_right .cmsmasters_breadcrumbs {
  width: 50%;
  float: left;
  text-align: left;
}
.headline_outer .headline_inner.align_center {
  display: table;
  text-align: center;
}
.headline_outer .headline_inner.align_center .headline_text_wrap {
  display: table-cell;
}
.headline_outer .headline_inner.align_center .headline_text {
  text-align: center;
}
.headline_outer .headline_inner.align_center .headline_text:before {
  bottom: auto;
}
.headline_outer .headline_inner.align_center .headline_text.headline_icon > *:first-child {
  padding-top: 15px;
}
.headline_outer .headline_inner.align_center .cmsmasters_breadcrumbs {
  text-align: center;
}
.headline_outer .headline_inner.align_center .cmsmasters_breadcrumbs .cmsmasters_breadcrumbs_aligner {
  display: none;
}
.headline_outer .headline_inner.align_center .cmsmasters_breadcrumbs .cmsmasters_breadcrumbs_inner {
  padding: 18px 0 0;
}
@keyframes animz {
  from {
    vertical-align: none;
  }
  to {
    display: inline-block;
  }
}
.content_wrap {
  display: block;
  min-width: inherit;
}
/*-------------------------------------------------------------------------*/
/* Bottom + Footer Styles
/*-------------------------------------------------------------------------*/
/***************** Bottom ******************/
.bottom_inner .widgettitle {
  margin-bottom: 35px;
  position: relative;
}
/***************** Footer ******************/
#footer {
  overflow: hidden;
}
.footer_inner {
  position: relative;
  overflow: hidden;
}
.footer_inner .footer_logo_wrap {
  position: relative;
  overflow: hidden;
}
.footer_inner .footer_logo_wrap + .footer_copyright {
  padding-top: 15px;
}
.footer_inner .footer_logo_wrap .footer_logo {
  display: inline-block;
}
.footer_inner .footer_logo_wrap .footer_logo > .footer_logo_retina {
  display: none;
}
/***************** Footer Default ******************/
.cmsmasters_footer_default .footer_inner {
  padding-top: 25px;
  padding-bottom: 25px;
}
.cmsmasters_footer_default .footer_inner > div:first-child {
  padding-top: 0;
}
.cmsmasters_footer_default .footer_inner > *:nth-last-child(2) {
  padding-top: 3.2%;
  margin-top: 3.2%;
  border-top-width: 1px;
  border-top-style: solid;
}
.cmsmasters_footer_default .footer_inner > *:nth-last-child(2).footer_logo_wrap {
  border-top-width: 0;
  border-top-style: solid;
  padding-top: 0%;
  margin-top: 0%;
}
.cmsmasters_footer_default .footer_inner > *:nth-last-child(2).footer_logo_wrap + * {
  padding-top: 3.2%;
  margin-top: 3.2%;
  border-top-width: 1px;
  border-top-style: solid;
}
.cmsmasters_footer_default .footer_logo_wrap {
  text-align: center;
}
.cmsmasters_footer_default .footer_custom_html_wrap {
  padding: 20px 0 0;
  position: relative;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_footer_default .footer_custom_html {
  display: inline-block;
  overflow: hidden;
  text-align: center;
}
.cmsmasters_footer_default .footer_nav_wrap {
  padding: 3.5% 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_footer_default .footer_nav_wrap div {
  text-align: center;
}
.cmsmasters_footer_default .footer_nav {
  display: inline-block;
  width: auto;
}
.cmsmasters_footer_default .footer_nav > li {
  margin: 0 15px 0;
  border-width: 0;
  border-style: solid;
}
.cmsmasters_footer_default .footer_nav > li a {
  padding-right: 0;
  padding-left: 0;
}
.cmsmasters_footer_default .footer_nav > li ul {
  display: none !important;
}
.cmsmasters_footer_default .social_wrap {
  padding: 40px 0 0;
}
.cmsmasters_footer_default .social_wrap .social_wrap_inner {
  text-align: center;
}
.cmsmasters_footer_default .social_wrap li {
  margin-left: 0;
  margin-right: 5px;
}
.cmsmasters_footer_default .social_wrap li:last-child {
  margin-left: 0;
  margin-right: 0;
}
.cmsmasters_footer_default .social_wrap a {
  font-size: 15px;
  line-height: 15px;
  width: 30px;
  height: 30px;
}
.cmsmasters_footer_default .footer_copyright {
  display: block;
  padding: 20px 0 0;
  text-align: center;
}
/***************** Footer Small ******************/
.cmsmasters_footer_small .footer_inner {
  padding-top: 25px;
  padding-bottom: 25px;
  border-top-width: 1px;
  border-top-style: solid;
}
.cmsmasters_footer_small .footer_inner > div {
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_footer_small .footer_inner .footer_left {
  width: 40%;
  text-align: left;
}
.cmsmasters_footer_small .footer_inner .footer_right {
  width: 60%;
  text-align: right;
}
.cmsmasters_footer_small .footer_nav_wrap {
  position: relative;
  display: inline-block;
  vertical-align: middle;
  overflow: hidden;
}
.cmsmasters_footer_small .footer_nav > li {
  margin: 0 20px 0 0;
  border-width: 0;
  border-style: solid;
}
.cmsmasters_footer_small .footer_nav > li:last-child {
  margin: 0;
}
.cmsmasters_footer_small .footer_nav > li ul {
  display: none !important;
}
.cmsmasters_footer_small .footer_nav > li a {
  padding: 0;
}
.cmsmasters_footer_small .social_wrap {
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_footer_small .social_wrap li {
  margin-left: 0;
  margin-right: 10px;
}
.cmsmasters_footer_small .social_wrap li:last-child {
  margin-left: 0;
  margin-right: 0;
}
.cmsmasters_footer_small .social_wrap a {
  font-size: 16px;
  line-height: 16px;
  width: 22px;
  height: 22px;
}
.cmsmasters_footer_small .footer_custom_html_wrap {
  position: relative;
  float: right;
  overflow: hidden;
}
.cmsmasters_footer_small .footer_copyright {
  display: block;
  padding: 1px 20px 1px 0;
  position: relative;
  overflow: hidden;
}
/*-------------------------------------------------------------------------*/
/* Blog (Default, Masonry, Timeline) + Post Styles
/*-------------------------------------------------------------------------*/
/***************** Blog ******************/
.blog {
  position: relative;
}
.blog:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.blog .post {
  width: 100%;
  max-width: 100%;
}
.blog .post .preloader {
  padding-bottom: 55.8%;
}
.blog .post .preloader.highImg {
  height: auto;
  padding-bottom: 0;
}
.blog .post .cmsmasters_video_wrap,
.blog .post .resizable_block {
  padding-bottom: 55.8%;
}
.blog.columns {
  margin: -40px -10px 0;
}
.blog.columns .post {
  min-width: 280px;
  padding: 40px 10px 0;
  float: left;
  opacity: 0;
}
.cmsmasters_4.blog.columns .post {
  width: 25%;
}
.cmsmasters_3.blog.columns .post {
  width: 33.33%;
}
.cmsmasters_2.blog.columns .post {
  width: 50%;
}
.blog.columns .post.shortcode_animated {
  opacity: 1;
}
.blog.columns .post .preloader {
  padding-bottom: 64.6%;
}
.blog.columns .post .preloader.highImg {
  height: auto;
  padding-bottom: 0;
}
.blog.columns .post .cmsmasters_video_wrap,
.blog.columns .post .resizable_block {
  padding-bottom: 64.6%;
}
.blog.timeline {
  position: relative;
}
.blog.timeline:after {
  content: '';
  width: 1px;
  height: 100%;
  margin: auto !important;
  position: absolute;
  left: -1px;
  right: 0;
  top: 0;
  bottom: 0;
  z-index: 100;
  display: block;
  visibility: visible;
  overflow: visible;
  border-left-width: 1px;
  border-left-style: solid;
}
.blog.timeline .post {
  width: 50%;
  opacity: 0;
}
.blog.timeline .post:before {
  content: '';
  display: none;
}
.blog.timeline .post.cmsmasters_timeline_left .cmsmasters_timeline_margin {
  margin-right: 32%;
}
.blog.timeline .post.cmsmasters_timeline_right .cmsmasters_timeline_margin {
  margin-left: 32%;
}
.blog.timeline .post.shortcode_animated {
  opacity: 1;
}
.blog.timeline .post .preloader {
  padding-bottom: 55.8%;
}
.blog.timeline .post .preloader.highImg {
  height: auto;
  padding-bottom: 0;
}
.blog.timeline .post .cmsmasters_video_wrap,
.blog.timeline .post .resizable_block {
  padding-bottom: 55.8%;
}
.blog .owl-pagination {
  width: auto;
  left: auto;
  right: 10px;
  top: 10px;
  bottom: auto;
}
.cmsmasters_post_default .cmsmasters_owl_slider .owl-pagination,
.cmsmasters_post_timeline .cmsmasters_owl_slider .owl-pagination,
.cmsmasters_open_post .cmsmasters_owl_slider .owl-pagination,
.cmsmasters_open_project .cmsmasters_owl_slider .owl-pagination,
.cmsmasters_single_slider .cmsmasters_owl_slider .owl-pagination,
.cmsmasters_clients_slider_wrap .cmsmasters_owl_slider .owl-pagination,
.cmsmasters_content_slider_wrap .cmsmasters_owl_slider .owl-pagination {
  display: none;
}
.cmsmasters_post_default .cmsmasters_owl_slider .owl-buttons,
.cmsmasters_post_timeline .cmsmasters_owl_slider .owl-buttons,
.cmsmasters_open_post .cmsmasters_owl_slider .owl-buttons,
.cmsmasters_open_project .cmsmasters_owl_slider .owl-buttons,
.cmsmasters_single_slider .cmsmasters_owl_slider .owl-buttons,
.cmsmasters_clients_slider_wrap .cmsmasters_owl_slider .owl-buttons,
.cmsmasters_content_slider_wrap .cmsmasters_owl_slider .owl-buttons {
  top: 50%;
  transform: translate(0, -50%);
  pointer-events: none;
}
.cmsmasters_post_default .cmsmasters_owl_slider .owl-buttons > div,
.cmsmasters_post_timeline .cmsmasters_owl_slider .owl-buttons > div,
.cmsmasters_open_post .cmsmasters_owl_slider .owl-buttons > div,
.cmsmasters_open_project .cmsmasters_owl_slider .owl-buttons > div,
.cmsmasters_single_slider .cmsmasters_owl_slider .owl-buttons > div,
.cmsmasters_clients_slider_wrap .cmsmasters_owl_slider .owl-buttons > div,
.cmsmasters_content_slider_wrap .cmsmasters_owl_slider .owl-buttons > div {
  pointer-events: auto;
  width: 46px;
  height: 46px;
  line-height: 48px;
  margin-left: 4%;
  margin-right: 4%;
  text-align: center;
  -webkit-transition: color .3s ease-in-out, background-color .3s ease-in-out, opacity .3s ease-in-out;
  -moz-transition: color .3s ease-in-out, background-color .3s ease-in-out, opacity .3s ease-in-out;
  -ms-transition: color .3s ease-in-out, background-color .3s ease-in-out, opacity .3s ease-in-out;
  -o-transition: color .3s ease-in-out, background-color .3s ease-in-out, opacity .3s ease-in-out;
  transition: color .3s ease-in-out, background-color .3s ease-in-out, opacity .3s ease-in-out;
}
.cmsmasters_post_default .cmsmasters_owl_slider .owl-buttons > div.disabled,
.cmsmasters_post_timeline .cmsmasters_owl_slider .owl-buttons > div.disabled,
.cmsmasters_open_post .cmsmasters_owl_slider .owl-buttons > div.disabled,
.cmsmasters_open_project .cmsmasters_owl_slider .owl-buttons > div.disabled,
.cmsmasters_single_slider .cmsmasters_owl_slider .owl-buttons > div.disabled,
.cmsmasters_clients_slider_wrap .cmsmasters_owl_slider .owl-buttons > div.disabled,
.cmsmasters_content_slider_wrap .cmsmasters_owl_slider .owl-buttons > div.disabled {
  opacity: 0.2;
  pointer-events: none;
}
.cmsmasters_post_default .cmsmasters_owl_slider .owl-buttons .owl-prev,
.cmsmasters_post_timeline .cmsmasters_owl_slider .owl-buttons .owl-prev,
.cmsmasters_open_post .cmsmasters_owl_slider .owl-buttons .owl-prev,
.cmsmasters_open_project .cmsmasters_owl_slider .owl-buttons .owl-prev,
.cmsmasters_single_slider .cmsmasters_owl_slider .owl-buttons .owl-prev,
.cmsmasters_clients_slider_wrap .cmsmasters_owl_slider .owl-buttons .owl-prev,
.cmsmasters_content_slider_wrap .cmsmasters_owl_slider .owl-buttons .owl-prev {
  float: left;
  text-indent: -1px;
}
.cmsmasters_post_default .cmsmasters_owl_slider .owl-buttons .owl-next,
.cmsmasters_post_timeline .cmsmasters_owl_slider .owl-buttons .owl-next,
.cmsmasters_open_post .cmsmasters_owl_slider .owl-buttons .owl-next,
.cmsmasters_open_project .cmsmasters_owl_slider .owl-buttons .owl-next,
.cmsmasters_single_slider .cmsmasters_owl_slider .owl-buttons .owl-next,
.cmsmasters_clients_slider_wrap .cmsmasters_owl_slider .owl-buttons .owl-next,
.cmsmasters_content_slider_wrap .cmsmasters_owl_slider .owl-buttons .owl-next {
  float: right;
  text-indent: 1px;
}
/***************** Blog Default ******************/
.cmsmasters_post_default {
  padding: 2% 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_post_default + .cmsmasters_post_default {
  margin-top: 3%;
  padding-top: 6%;
}
.cmsmasters_post_default + .cmsmasters_post_default::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  opacity: 0.35;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_post_default.sticky .cmsmasters_post_cont::before {
  content: '\e8a0';
  font-family: "fontello-custom";
  position: absolute;
  font-size: 19px;
  top: 30px;
  right: 30px;
  z-index: 10;
  width: 55px;
  height: 55px;
  line-height: 55px;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_post_default:first-child {
  padding-top: 0;
}
.cmsmasters_post_default:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}
.cmsmasters_post_default .cmsmasters_post_info {
  outline: none;
}
.cmsmasters_post_default a .cmsmasters_post_date {
  padding-right: 10px;
}
.cmsmasters_post_default .cmsmasters_post_date {
  outline: none;
}
.cmsmasters_post_default .cmsmasters_post_date + .cmsmasters_post_author {
  padding-left: 10px;
}
.cmsmasters_post_default .cmsmasters_post_date .published {
  outline: none;
}
.cmsmasters_post_default .cmsmasters_post_date .cmsmasters_day_mon {
  outline: none;
}
.cmsmasters_post_default .cmsmasters_post_date .cmsmasters_year {
  outline: none;
}
.cmsmasters_post_default .cmsmasters_post_likes {
  outline: none;
}
.cmsmasters_post_default .cmsmasters_post_comments {
  outline: none;
}
.cmsmasters_post_default .cmsmasters_post_comments + .cmsmasters_post_likes {
  margin-left: 10px;
}
.cmsmasters_post_default .cmsmasters_post_cont {
  position: relative;
  overflow: hidden;
}
.cmsmasters_post_default .cmsmasters_img_wrap {
  margin-bottom: 20px;
  overflow: hidden;
}
.cmsmasters_post_default .cmsmasters_img_wrap a {
  width: auto;
}
.cmsmasters_post_default .cmsmasters_img_wrap a img {
  width: auto;
}
.cmsmasters_post_default .cmsmasters_owl_slider {
  outline: none;
  margin-bottom: 20px;
}
.cmsmasters_post_default .cmsmasters_owl_slider figure {
  overflow: hidden;
}
.cmsmasters_post_default .cmsmasters_audio {
  outline: none;
}
.cmsmasters_post_default .cmsmasters_video_wrap {
  outline: none;
}
.cmsmasters_post_default .cmsmasters_post_header {
  padding: 11px 0 0;
}
.cmsmasters_post_default .cmsmasters_post_header .cmsmasters_post_title {
  word-wrap: break-word;
  margin: 0;
}
.cmsmasters_post_default .cmsmasters_post_cont_info {
  overflow: hidden;
  padding-bottom: 10px;
}
.cmsmasters_post_default .cmsmasters_post_cont_info > span {
  display: inline-block;
}
.cmsmasters_post_default .cmsmasters_post_cont_info > span.cmsmasters_post_category {
  padding-right: 13px;
}
.cmsmasters_post_default .cmsmasters_post_author {
  padding-bottom: 20px;
}
.cmsmasters_post_default .cmsmasters_post_author ~ .cmsmasters_post_category {
  margin-left: 0.25em;
}
.cmsmasters_post_default .cmsmasters_post_content {
  padding-bottom: 15px;
  overflow: hidden;
}
.cmsmasters_post_default .cmsmasters_post_content p {
  margin: 0;
  padding: 0;
}
.cmsmasters_post_default .cmsmasters_post_footer {
  overflow: hidden;
}
.cmsmasters_post_default .cmsmasters_post_read_more {
  outline: none;
  display: inline-block;
  letter-spacing: -0.15px;
  line-height: 1;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
/***************** Blog Masonry ******************/
.cmsmasters_post_masonry {
  position: relative;
}
.cmsmasters_post_masonry .cmsmasters_post_cont {
  position: relative;
}
.cmsmasters_post_masonry .cmsmasters_owl_slider {
  padding-top: 30px;
  padding-bottom: 17px;
}
.cmsmasters_post_masonry .cmsmasters_owl_slider .owl-buttons {
  display: none;
}
.cmsmasters_post_masonry .cmsmasters_owl_slider .owl-pagination {
  top: 0;
  left: 0;
  width: 100%;
  text-align: left;
}
.cmsmasters_post_masonry .cmsmasters_owl_slider .owl-pagination .owl-page:first-child {
  margin-left: 0;
}
.cmsmasters_post_masonry .cmsmasters_owl_slider .owl-pagination .owl-page:last-child {
  margin-right: 0;
}
.cmsmasters_post_masonry .cmsmasters_img_wrap {
  margin-bottom: 18px;
}
.cmsmasters_post_masonry .cmsmasters_post_date {
  display: inline-block;
  outline: none;
  margin-bottom: 13px;
}
.cmsmasters_post_masonry .cmsmasters_post_date + .cmsmasters_post_author {
  margin-left: 10px;
}
.cmsmasters_post_masonry .cmsmasters_post_author {
  display: inline-block;
  margin-bottom: 13px;
}
.cmsmasters_post_masonry .cmsmasters_date_img_wrap {
  position: relative;
}
.cmsmasters_post_masonry .cmsmasters_date_img_wrap figure {
  overflow: hidden;
}
.cmsmasters_post_masonry .cmsmasters_date_img_wrap .cmsmasters_post_date {
  outline: none;
  margin-bottom: 13px;
}
.cmsmasters_post_masonry .cmsmasters_video_wrap {
  outline: none;
}
.cmsmasters_post_masonry .cmsmasters_audio {
  outline: none;
}
.cmsmasters_post_masonry .cmsmasters_post_header {
  padding: 0;
}
.cmsmasters_post_masonry .cmsmasters_post_header .cmsmasters_post_title {
  margin: 0;
}
.cmsmasters_post_masonry .cmsmasters_post_cont_info {
  overflow: hidden;
  margin-bottom: 12px;
}
.cmsmasters_post_masonry .cmsmasters_post_cont_info > span {
  display: inline-block;
}
.cmsmasters_post_masonry .cmsmasters_post_category {
  padding-right: 10px;
}
.cmsmasters_post_masonry .cmsmasters_post_content {
  padding-bottom: 14px;
  overflow: hidden;
}
.cmsmasters_post_masonry .cmsmasters_post_content p {
  margin: 0;
  padding: 0;
}
.cmsmasters_post_masonry .cmsmasters_post_footer {
  overflow: hidden;
}
.cmsmasters_post_masonry .cmsmasters_post_footer > span {
  outline: none;
}
.cmsmasters_post_masonry .cmsmasters_post_read_more {
  outline: none;
  display: inline-block;
  letter-spacing: -0.15px;
  line-height: 1;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
/***************** Blog Timeline ******************/
.cmsmasters_post_timeline {
  position: relative;
  padding-bottom: 40px;
}
.cmsmasters_post_timeline:last-child {
  padding-bottom: 0;
}
.cmsmasters_post_timeline .cmsmasters_post_info {
  display: block;
  position: absolute;
  z-index: 101;
}
.cmsmasters_post_timeline .owl-pagination {
  display: none;
}
.cmsmasters_post_timeline.cmsmasters_timeline_left .cmsmasters_post_info {
  left: auto;
  right: 0px;
  -webkit-transform: translate(50%, 0);
  transform: translate(50%, 0);
}
.cmsmasters_post_timeline.cmsmasters_timeline_right .cmsmasters_post_info {
  left: 0px;
  right: auto;
  -webkit-transform: translate(-50%, 0);
  transform: translate(-50%, 0);
}
.cmsmasters_post_timeline .cmsmasters_post_date {
  display: block;
  width: 72px;
  height: auto;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_post_timeline .cmsmasters_post_date::before {
  display: none;
}
.cmsmasters_post_timeline .cmsmasters_post_date .published {
  outline: none;
}
.cmsmasters_post_timeline .cmsmasters_post_date .published .date-info {
  display: block;
  margin: 0;
  line-height: 1;
}
.cmsmasters_post_timeline .cmsmasters_post_date .published .date-info.day {
  margin-bottom: 7px;
}
.cmsmasters_post_timeline .cmsmasters_post_date .cmsmasters_day_mon {
  outline: none;
}
.cmsmasters_post_timeline .cmsmasters_post_date .cmsmasters_year {
  outline: none;
}
.cmsmasters_post_timeline .cmsmasters_post_cont {
  position: relative;
  overflow: hidden;
}
.cmsmasters_post_timeline .cmsmasters_owl_slider {
  margin-bottom: 17px;
}
.cmsmasters_post_timeline .cmsmasters_img_wrap {
  padding-bottom: 17px;
}
.cmsmasters_post_timeline figure {
  overflow: hidden;
}
.cmsmasters_post_timeline .cmsmasters_video_wrap {
  outline: none;
}
.cmsmasters_post_timeline .cmsmasters_audio {
  outline: none;
}
.cmsmasters_post_timeline .cmsmasters_post_author {
  display: inline-block;
  margin-bottom: 10px;
}
.cmsmasters_post_timeline .cmsmasters_post_header {
  padding: 0;
}
.cmsmasters_post_timeline .cmsmasters_post_header .cmsmasters_post_title {
  margin: 0;
}
.cmsmasters_post_timeline .cmsmasters_post_cont_info {
  overflow: hidden;
  margin-bottom: 13px;
}
.cmsmasters_post_timeline .cmsmasters_post_cont_info > span {
  display: inline-block;
}
.cmsmasters_post_timeline .cmsmasters_post_cont_info > span.cmsmasters_post_category {
  padding-right: 10px;
}
.cmsmasters_post_timeline .cmsmasters_post_cont_info > span.cmsmasters_post_comments {
  padding-right: 7px;
}
.cmsmasters_post_timeline .cmsmasters_post_content {
  overflow: hidden;
  margin-bottom: 15px;
}
.cmsmasters_post_timeline .cmsmasters_post_content p {
  margin: 0;
  padding: 0;
}
.cmsmasters_post_timeline .cmsmasters_post_footer {
  overflow: hidden;
}
.cmsmasters_post_timeline .cmsmasters_post_footer > span {
  outline: none;
}
.cmsmasters_post_timeline .cmsmasters_post_read_more {
  outline: none;
  display: inline-block;
  letter-spacing: -0.15px;
  line-height: 1;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
/***************** Blog Post ******************/
.cmsmasters_open_post {
  overflow: hidden;
}
.cmsmasters_open_post .preloader {
  padding-bottom: 55.8%;
}
.cmsmasters_open_post .preloader.highImg {
  height: auto;
  padding: 0;
}
.cmsmasters_open_post .cmsmasters_video_wrap,
.cmsmasters_open_post .resizable_block {
  padding-bottom: 55.8%;
}
.cmsmasters_open_post > div:first-child {
  margin-top: 0;
}
.cmsmasters_open_post .cmsmasters_img_wrap {
  overflow: hidden;
  margin-bottom: 20px;
}
.cmsmasters_open_post .cmsmasters_owl_slider {
  outline: none;
  margin-bottom: 20px;
}
.cmsmasters_open_post .cmsmasters_owl_slider figure {
  overflow: hidden;
}
.cmsmasters_open_post .cmsmasters_owl_slider .owl-pagination {
  display: none;
}
.cmsmasters_open_post .cmsmasters_video_wrap {
  outline: none;
}
.cmsmasters_open_post .cmsmasters_audio {
  outline: none;
}
.cmsmasters_open_post .cmsmasters_post_header {
  padding: 0;
}
.cmsmasters_open_post .cmsmasters_post_header .cmsmasters_post_title {
  margin: 0;
}
.cmsmasters_open_post .cmsmasters_post_interface {
  padding-bottom: 25px;
}
.cmsmasters_open_post .cmsmasters_post_interface .cmsmasters_post_category {
  margin-right: 10px;
}
.cmsmasters_open_post .cmsmasters_post_interface .cmsmasters_comments {
  padding-right: 5px;
}
.cmsmasters_open_post .cmsmasters_post_cont_info {
  overflow: hidden;
  padding-bottom: 10px;
}
.cmsmasters_open_post .cmsmasters_post_cont_info > span {
  display: inline-block;
}
.cmsmasters_open_post .cmsmasters_post_cont_info > span.cmsmasters_post_date + .cmsmasters_post_author {
  margin-left: 10px;
}
.cmsmasters_open_post .cmsmasters_post_date {
  display: inline-block;
}
.cmsmasters_open_post .cmsmasters_post_content {
  padding-bottom: 10px;
  overflow: hidden;
}
.cmsmasters_open_post .cmsmasters_post_content > *:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}
.cmsmasters_open_post .cmsmasters_post_footer {
  overflow: hidden;
}
.cmsmasters_open_post .cmsmasters_post_footer > span {
  display: inline-block;
}
.cmsmasters_post_tags {
  outline: none;
  padding-top: 10px;
}
/*-------------------------------------------------------------------------*/
/* Portfolio (Grid, Puzzle) + Project Styles
/*-------------------------------------------------------------------------*/
/***************** Portfolio ******************/
.portfolio {
  position: relative;
}
.portfolio:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.portfolio .cmsmasters_project_grid,
.portfolio .cmsmasters_project_puzzle {
  min-width: 200px;
  overflow: hidden;
  float: left;
}
.portfolio .cmsmasters_project_grid .preloader,
.portfolio .cmsmasters_project_puzzle .preloader {
  padding-bottom: 67.2%;
}
.portfolio .cmsmasters_project_grid .preloader.highImg,
.portfolio .cmsmasters_project_puzzle .preloader.highImg {
  height: auto;
  padding-bottom: 0;
}
.portfolio .cmsmasters_project_grid .preloader .cmsmasters_open_post_link,
.portfolio .cmsmasters_project_puzzle .preloader .cmsmasters_open_post_link {
  display: none;
}
.portfolio.zero_gap .project .project_outer {
  padding-bottom: 20px;
}
.portfolio.zero_gap .project .project_inner {
  padding-left: 10px;
  padding-right: 10px;
}
.portfolio.large_gap {
  margin: 0 -1%;
}
.portfolio.large_gap .project {
  padding-left: 1%;
  padding-right: 1%;
  padding-bottom: 2%;
}
.portfolio.small_gap {
  padding: 0px 0px 0;
}
.portfolio.small_gap .project {
  overflow: visible;
}
.portfolio.small_gap .project .project_outer {
  margin-left: 0;
  margin-right: 1px;
  margin-bottom: 1px;
  padding-bottom: 20px;
}
.portfolio.small_gap .project .project_inner {
  padding-left: 10px;
  padding-right: 10px;
}
.portfolio.grid.perfect .project figure {
  opacity: 0;
  padding-bottom: 20px;
  height: auto;
}
.portfolio.grid.perfect .project figure img {
  position: static;
}
.portfolio.grid.perfect .project.shortcode_animated figure {
  opacity: 1;
}
.portfolio.grid.masonry .project,
.portfolio.puzzle .project {
  opacity: 0;
}
.portfolio.grid.masonry .project.shortcode_animated,
.portfolio.puzzle .project.shortcode_animated {
  opacity: 1;
}
.portfolio.cmsmasters_5 .project {
  max-width: 20%;
}
.portfolio.cmsmasters_4 .project {
  max-width: 25%;
}
.portfolio.cmsmasters_3 .project {
  max-width: 33%;
}
.portfolio.cmsmasters_2 .project {
  max-width: 50%;
}
.portfolio.isotope.cmsmasters_5 .project,
.portfolio.isotope.cmsmasters_4 .project,
.portfolio.isotope.cmsmasters_3 .project,
.portfolio.isotope.cmsmasters_2 .project {
  max-width: none;
}
/***************** Portfolio Grid ******************/
.cmsmasters_project_grid {
  position: relative;
}
.cmsmasters_project_grid .project_outer {
  position: relative;
  overflow: hidden;
}
.cmsmasters_project_grid .cmsmasters_owl_slider {
  padding-top: 30px;
}
.cmsmasters_project_grid .cmsmasters_owl_slider .owl-buttons {
  display: none;
}
.cmsmasters_project_grid .cmsmasters_owl_slider .owl-pagination {
  position: absolute;
  top: 0;
  left: 0;
  bottom: auto;
  text-align: left;
}
.cmsmasters_project_grid .project_inner {
  position: relative;
  overflow: hidden;
}
.cmsmasters_project_grid .cmsmasters_project_header {
  padding: 0 0 10px;
}
.cmsmasters_project_grid .cmsmasters_project_header .cmsmasters_project_title {
  margin: 0;
}
.cmsmasters_project_grid .cmsmasters_project_cont_info {
  padding-bottom: 15px;
  overflow: hidden;
}
.cmsmasters_project_grid .cmsmasters_project_cont_info .cmsmasters_project_category {
  padding-right: 10px;
}
.cmsmasters_project_grid .cmsmasters_project_content {
  overflow: hidden;
  padding-bottom: 20px;
}
.cmsmasters_project_grid .cmsmasters_project_content p {
  margin: 0;
  padding: 0;
}
.cmsmasters_project_grid .cmsmasters_project_footer {
  overflow: hidden;
}
.cmsmasters_project_grid .cmsmasters_project_footer > span {
  outline: none;
}
.cmsmasters_project_grid .cmsmasters_project_read_more {
  outline: none;
  display: inline-block;
  letter-spacing: -0.15px;
  line-height: 1;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
/***************** Portfolio Puzzle ******************/
.cmsmasters_project_puzzle {
  position: relative;
}
.cmsmasters_project_puzzle .project_outer {
  position: relative;
  overflow: hidden;
}
.cmsmasters_project_puzzle .project_outer img {
  transition: transform 0.8s ease;
  -webkit-transition: transform 0.8s ease;
}
.cmsmasters_project_puzzle .project_outer:hover img {
  outline: none;
  transform: scale(1.15);
  -webkit-transform: scale(1.15);
}
.cmsmasters_project_puzzle .project_outer:hover .cmsmasters_img_rollover {
  opacity: 0.7;
}
.cmsmasters_project_puzzle .project_outer:hover .project_inner {
  bottom: auto !important;
  opacity: 1;
}
.cmsmasters_project_puzzle .project_inner {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  justify-content: center;
  flex-direction: column;
  bottom: auto !important;
  padding: 0 40px 25px;
  opacity: 0;
  overflow: hidden;
  text-align: center;
}
.cmsmasters_project_puzzle .cmsmasters_project_header {
  padding: 0;
}
.cmsmasters_project_puzzle .cmsmasters_project_header .cmsmasters_project_title {
  margin: 0;
  padding-top: 25px;
}
.cmsmasters_project_puzzle .cmsmasters_project_cont_info {
  text-align: center;
  overflow: hidden;
}
.cmsmasters_project_puzzle .cmsmasters_project_footer {
  overflow: hidden;
}
.cmsmasters_project_puzzle .cmsmasters_project_footer > span {
  outline: none;
}
/***************** Portfolio Open Project ******************/
.cmsmasters_open_project {
  padding: 0 0 40px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_open_project .preloader {
  padding-bottom: 55.8%;
}
.cmsmasters_open_project .preloader.highImg {
  height: auto;
  padding: 0;
}
.cmsmasters_open_project .cmsmasters_video_wrap,
.cmsmasters_open_project .resizable_block {
  padding-bottom: 55.8%;
}
.cmsmasters_open_project .owl-pagination {
  width: auto;
  position: absolute;
  left: auto;
  right: 10px;
  top: 10px;
  bottom: auto;
}
.cmsmasters_open_project .cmsmasters_project_likes,
.cmsmasters_open_project .cmsmasters_project_comments {
  outline: none;
}
.cmsmasters_open_project .cmsmasters_project_header {
  padding: 0px 0 30px;
  overflow: hidden;
  display: block;
  clear: both;
}
.cmsmasters_open_project .cmsmasters_project_header .cmsmasters_project_title {
  margin: 0;
}
.cmsmasters_open_project .project_content {
  width: 100%;
  padding: 43px 0 0;
  overflow: hidden;
}
.cmsmasters_open_project .project_content.with_sidebar {
  width: 67%;
  float: left;
}
.cmsmasters_open_project .project_content .cmsmasters_gallery_row {
  margin: 0 -1%;
  position: relative;
}
.cmsmasters_open_project .project_content .cmsmasters_gallery_row figure {
  overflow: hidden;
}
.cmsmasters_open_project .project_content .cmsmasters_gallery_row .one_third,
.cmsmasters_open_project .project_content .cmsmasters_gallery_row .one_half,
.cmsmasters_open_project .project_content .cmsmasters_gallery_row .one_first {
  margin-bottom: 2%;
}
.cmsmasters_open_project .project_content .cmsmasters_gallery_row .one_third .preloader,
.cmsmasters_open_project .project_content .cmsmasters_gallery_row .one_half .preloader {
  padding-bottom: 67.2%;
}
.cmsmasters_open_project .project_content .cmsmasters_gallery_row .one_third .preloader.highImg,
.cmsmasters_open_project .project_content .cmsmasters_gallery_row .one_half .preloader.highImg {
  height: auto;
  padding: 0;
}
.cmsmasters_open_project .project_content > .cmsmasters_img_wrap {
  overflow: hidden;
}
.cmsmasters_open_project .project_content > .cmsmasters_owl_slider {
  outline: none;
}
.cmsmasters_open_project .project_content > .cmsmasters_owl_slider figure {
  overflow: hidden;
}
.cmsmasters_open_project .project_content > .cmsmasters_video_wrap {
  outline: none;
}
.cmsmasters_open_project .cmsmasters_project_content {
  position: relative;
  overflow: hidden;
}
.cmsmasters_open_project .project_sidebar_wrap {
  padding: 30px 25px;
}
.cmsmasters_open_project .project_sidebar {
  width: 33%;
  padding: 50px 0 0 35px;
  float: right;
}
.cmsmasters_open_project .project_sidebar > div {
  outline: none;
}
.cmsmasters_open_project .project_details,
.cmsmasters_open_project .project_features {
  position: relative;
  overflow: hidden;
}
.cmsmasters_open_project .project_features {
  padding-top: 30px;
}
.cmsmasters_open_project .project_details_title,
.cmsmasters_open_project .project_features_title {
  margin: 0 0 23px;
  padding: 0;
}
.cmsmasters_open_project .project_details_item,
.cmsmasters_open_project .project_features_item {
  position: relative;
  padding-bottom: 2px;
  overflow: hidden;
}
.cmsmasters_open_project .project_details_item_title,
.cmsmasters_open_project .project_features_item_title {
  max-width: 50%;
  padding-top: 3px;
  float: left;
  overflow: hidden;
}
.cmsmasters_open_project .project_details_one_item .project_details_item_title,
.cmsmasters_open_project .project_features_one_item .project_features_item_title {
  max-width: 100%;
  float: none;
}
.cmsmasters_open_project .project_details_item_desc,
.cmsmasters_open_project .project_features_item_desc {
  padding: 0 0 0 15px;
  word-wrap: break-word;
  text-align: right;
  overflow: hidden;
}
.cmsmasters_open_project .project_details_item_desc span a,
.cmsmasters_open_project .project_features_item_desc span a {
  vertical-align: text-top;
}
.cmsmasters_open_project .project_details_one_item .project_details_item_desc,
.cmsmasters_open_project .project_features_one_item .project_features_item_desc {
  padding-left: 0;
  padding-right: 0;
}
/*-------------------------------------------------------------------------*/
/* Posts Slider Styles
/*-------------------------------------------------------------------------*/
/***************** Posts Slider ******************/
.cmsmasters_posts_slider {
  margin: 0 -10px;
  position: relative;
  padding-bottom: 30px;
  overflow: hidden;
}
.cmsmasters_posts_slider.cmsmasters_posts_slider_type_project {
  padding-top: 50px;
  padding-bottom: 0px;
}
.cmsmasters_posts_slider .owl-buttons {
  display: none;
}
.cmsmasters_posts_slider .owl-pagination {
  top: auto;
  bottom: -25px;
}
.cmsmasters_posts_slider_type_project.cmsmasters_posts_slider .owl-pagination {
  bottom: auto;
  top: -50px;
}
.cmsmasters_posts_slider .preloader {
  padding-bottom: 67.2%;
}
.cmsmasters_posts_slider .preloader.highImg {
  height: auto;
  padding: 0;
}
.cmsmasters_posts_slider .cmsmasters_owl_slider {
  padding: 0px 0 0;
}
.cmsmasters_posts_slider .cmsmasters_owl_slider_item {
  min-width: 200px;
  max-width: 100%;
}
.cmsmasters_posts_slider .cmsmasters_slider_post,
.cmsmasters_posts_slider .cmsmasters_slider_project {
  width: 100%;
  padding: 0 10px 20px;
}
/***************** Posts Slider Blog ******************/
.cmsmasters_slider_post {
  position: relative;
}
.cmsmasters_slider_post .cmsmasters_slider_post_outer {
  position: relative;
  overflow: hidden;
}
.cmsmasters_slider_post .cmsmasters_slider_post_date_img_wrap {
  position: relative;
  overflow: hidden;
}
.cmsmasters_slider_post .cmsmasters_slider_post_date_img_wrap + .cmsmasters_slider_post_inner {
  margin-top: 20px;
}
.cmsmasters_slider_post .cmsmasters_slider_post_date {
  outline: none;
}
.cmsmasters_slider_post .cmsmasters_slider_post_inner {
  position: relative;
  overflow: hidden;
}
.cmsmasters_slider_post .cmsmasters_slider_post_date {
  padding-right: 15px;
}
.cmsmasters_slider_post .cmsmasters_slider_post_header {
  padding: 10px 0 0;
}
.cmsmasters_slider_post .cmsmasters_slider_post_header .cmsmasters_slider_post_title {
  margin: 0;
}
.cmsmasters_slider_post .cmsmasters_slider_post_cont_info {
  overflow: hidden;
  padding-bottom: 15px;
}
.cmsmasters_slider_post .cmsmasters_slider_post_cont_info > span {
  display: inline-block;
}
.cmsmasters_slider_post .cmsmasters_slider_post_category {
  padding-right: 15px;
}
.cmsmasters_slider_post .cmsmasters_slider_post_content {
  padding-bottom: 15px;
  overflow: hidden;
}
.cmsmasters_slider_post .cmsmasters_slider_post_content p {
  margin: 0;
  padding: 0;
}
.cmsmasters_slider_post .cmsmasters_slider_post_footer {
  overflow: hidden;
}
.cmsmasters_slider_post .cmsmasters_slider_post_footer > span {
  outline: none;
}
.cmsmasters_slider_post .cmsmasters_slider_post_read_more {
  outline: none;
  display: inline-block;
  letter-spacing: -0.15px;
  line-height: 1;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
/***************** Posts Slider Portfolio ******************/
.cmsmasters_slider_project {
  position: relative;
}
.cmsmasters_slider_project .cmsmasters_slider_project_outer {
  position: relative;
  overflow: hidden;
}
.cmsmasters_slider_project .cmsmasters_slider_project_outer .cmsmasters_img_rollover_wrap {
  height: auto;
  padding-bottom: 20px;
}
.cmsmasters_slider_project .cmsmasters_slider_project_outer img {
  position: relative;
  height: auto;
}
.cmsmasters_slider_project .owl-pagination {
  display: none;
}
.cmsmasters_slider_project .cmsmasters_slider_project_inner {
  position: relative;
  overflow: hidden;
}
.cmsmasters_slider_project .cmsmasters_slider_project_header {
  padding: 0;
}
.cmsmasters_slider_project .cmsmasters_slider_project_header .cmsmasters_slider_project_title {
  margin: 0;
}
.cmsmasters_slider_project .cmsmasters_slider_project_cont_info {
  padding-bottom: 15px;
  overflow: hidden;
}
.cmsmasters_slider_project .cmsmasters_slider_project_category {
  padding-right: 10px;
}
.cmsmasters_slider_project .cmsmasters_slider_project_content {
  overflow: hidden;
  padding-bottom: 15px;
}
.cmsmasters_slider_project .cmsmasters_slider_project_content p {
  margin: 0;
  padding: 0;
}
.cmsmasters_slider_project .cmsmasters_slider_project_footer {
  overflow: hidden;
}
.cmsmasters_slider_project .cmsmasters_slider_project_footer > span {
  outline: none;
}
.cmsmasters_slider_project .cmsmasters_post_read_more,
.cmsmasters_slider_project .cmsmasters_slider_post_read_more {
  outline: none;
  display: inline-block;
  letter-spacing: -0.15px;
  line-height: 1;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
/*-------------------------------------------------------------------------*/
/* Profiles + Profile Styles
/*-------------------------------------------------------------------------*/
/***************** Profiles ******************/
.cmsmasters_profile {
  position: relative;
  overflow: hidden;
}
.cmsmasters_profile.horizontal {
  margin: -40px -1% 0;
}
.cmsmasters_profile.horizontal .cmsmasters_profile_horizontal {
  margin-top: 40px;
}
.cmsmasters_profile.horizontal .cmsmasters_profile_horizontal.one_half:nth-child(2n+1),
.cmsmasters_profile.horizontal .cmsmasters_profile_horizontal.one_third:nth-child(3n+1),
.cmsmasters_profile.horizontal .cmsmasters_profile_horizontal.one_fourth:nth-child(4n+1) {
  clear: left;
}
/***************** Profiles Horizontal ******************/
.cmsmasters_profile_horizontal {
  position: relative;
}
.cmsmasters_profile_horizontal .profile_outer {
  position: relative;
  overflow: hidden;
}
.cmsmasters_profile_horizontal .profile_outer:hover .cmsmasters_img_wrap + .profile_social_icons {
  opacity: 1;
}
.cmsmasters_profile_horizontal .profile_wrap_figure_soc {
  position: relative;
}
.cmsmasters_profile_horizontal .cmsmasters_img_wrap {
  text-align: center;
  overflow: hidden;
}
.cmsmasters_profile_horizontal .cmsmasters_img_wrap img {
  width: 100%;
  outline: none;
}
.cmsmasters_profile_horizontal .cmsmasters_img_wrap + .profile_social_icons {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 0.3s ease;
}
.cmsmasters_profile_horizontal .cmsmasters_img_wrap + .profile_social_icons .profile_social_icons_list {
  position: absolute;
  top: 50%;
  width: 100%;
  margin-top: -0.5em;
}
.cmsmasters_profile_horizontal .profile_inner {
  position: relative;
  padding: 16px 30px 14px;
  overflow: hidden;
  text-align: center;
}
.cmsmasters_profile_horizontal .cmsmasters_profile_header {
  padding: 0;
}
.cmsmasters_profile_horizontal .cmsmasters_profile_header .cmsmasters_profile_title {
  margin: 0;
}
.cmsmasters_profile_horizontal .cmsmasters_profile_header .cmsmasters_profile_subtitle {
  margin: 0;
}
.cmsmasters_profile_horizontal .cmsmasters_profile_subtitle + .cmsmasters_profile_category::before {
  content: " - ";
  display: inline-block;
  margin: 0 3px;
}
.cmsmasters_profile_horizontal .cmsmasters_profile_cont_info {
  padding-top: 3px;
  text-align: center;
}
.cmsmasters_profile_horizontal .cmsmasters_profile_content {
  position: relative;
  padding-top: 6px;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_profile_horizontal .cmsmasters_profile_content p {
  margin: 0;
  padding: 0;
}
.cmsmasters_profile_horizontal .profile_social_icons {
  position: relative;
  overflow: hidden;
}
.cmsmasters_profile_horizontal .profile_social_icons_list {
  list-style: none;
  display: block;
  margin: 0;
  padding: 0;
  text-align: center;
}
.cmsmasters_profile_horizontal .profile_social_icons_list li {
  display: inline-block;
  vertical-align: middle;
  margin: 0 15px 0 0;
  padding: 0;
  position: relative;
}
.cmsmasters_profile_horizontal .profile_social_icons_list li:last-child {
  margin: 0;
}
.cmsmasters_profile_horizontal .profile_social_icons_list li:before {
  display: none;
}
.cmsmasters_profile_horizontal .profile_social_icons_list a {
  font-size: 20px;
  line-height: 20px;
  display: block;
  position: relative;
}
/***************** Profiles Vertical ******************/
.cmsmasters_profile_vertical {
  margin: 0 0 30px;
  padding: 0 0% 0 0;
  position: relative;
}
.cmsmasters_profile_vertical:last-child {
  margin: 0;
}
.cmsmasters_profile_vertical .profile_outer {
  padding: 0px 0px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_profile_vertical .cmsmasters_img_wrap {
  width: 30%;
  display: inline-block;
  vertical-align: middle;
  float: left;
}
.cmsmasters_profile_vertical .cmsmasters_img_wrap img {
  outline: none;
  width: auto;
  height: auto;
  max-width: none;
}
.cmsmasters_profile_vertical .profile_inner {
  display: block;
  width: 100%;
  padding: 35px 45px 85px;
  float: left;
}
.cmsmasters_profile_vertical .cmsmasters_img_wrap + .profile_inner {
  display: inline-block;
  vertical-align: top;
  width: 70%;
}
.cmsmasters_profile_vertical .cmsmasters_profile_header {
  padding: 0 0 0px;
}
.cmsmasters_profile_vertical .cmsmasters_profile_header .cmsmasters_profile_title {
  margin: 0;
}
.cmsmasters_profile_vertical .cmsmasters_profile_cont_info {
  padding: 0 0 30px;
}
.cmsmasters_profile_vertical .cmsmasters_profile_subtitle {
  margin: 0;
}
.cmsmasters_profile_vertical .cmsmasters_profile_subtitle + .cmsmasters_profile_category::before {
  content: " - ";
  display: inline-block;
  margin: 0 3px;
}
.cmsmasters_profile_vertical .cmsmasters_profile_content {
  position: relative;
  overflow: hidden;
}
.cmsmasters_profile_vertical .cmsmasters_profile_content p {
  margin: 0;
  padding: 0;
}
.cmsmasters_profile_vertical .profile_social_icons {
  position: absolute;
  bottom: 35px;
  left: auto;
}
.cmsmasters_profile_vertical .profile_social_icons_list {
  list-style: none;
  display: block;
  margin: 0;
  padding: 0;
}
.cmsmasters_profile_vertical .profile_social_icons_list li {
  display: inline-block;
  margin: 0 15px 0 0;
  padding: 0;
  position: relative;
  vertical-align: middle;
}
.cmsmasters_profile_vertical .profile_social_icons_list li:last-child {
  margin: 0;
}
.cmsmasters_profile_vertical .profile_social_icons_list li:before {
  display: none;
}
.cmsmasters_profile_vertical .profile_social_icons_list a {
  font-size: 20px;
  line-height: 20px;
  display: block;
  position: relative;
}
.cmsmasters_profile_vertical .profile_social_icons_list a:before {
  margin: 0;
}
/***************** Profiles Open Profile ******************/
.cmsmasters_open_profile {
  padding: 0 0 0px;
  margin: 0px -10%;
  position: relative;
  overflow: hidden;
}
.cmsmasters_open_profile ~ * {
  margin: 0px -10%;
}
.cmsmasters_open_profile .cmsmasters_profile_likes,
.cmsmasters_open_profile .cmsmasters_profile_comments {
  outline: none;
}
.cmsmasters_open_profile .cmsmasters_profile_header {
  padding: 40px 0 0;
  overflow: hidden;
  display: block;
  clear: both;
}
.cmsmasters_open_profile .cmsmasters_profile_header .cmsmasters_profile_title {
  margin: 0;
}
.cmsmasters_open_profile .cmsmasters_profile_header .cmsmasters_profile_subtitle {
  margin: 0;
}
.cmsmasters_open_profile .profile_content {
  width: 100%;
  padding: 30px 0 0;
  overflow: hidden;
}
.cmsmasters_open_profile .profile_content.with_sidebar {
  width: 68%;
  float: left;
}
.cmsmasters_open_profile .cmsmasters_profile_content {
  position: relative;
  overflow: hidden;
}
.cmsmasters_open_profile .profile_sidebar {
  width: 32%;
  padding: 30px 0 0 30px;
  float: right;
}
.cmsmasters_open_profile .profile_sidebar > div {
  outline: none;
}
.cmsmasters_open_profile .profile_sidebar_wrap {
  padding: 30px 25px;
}
.cmsmasters_open_profile .profile_details,
.cmsmasters_open_profile .profile_features {
  position: relative;
  overflow: hidden;
}
.cmsmasters_open_profile .profile_details_title,
.cmsmasters_open_profile .profile_features_title {
  margin: 0 0 23px;
  padding: 0;
}
.cmsmasters_open_profile .profile_details_item,
.cmsmasters_open_profile .profile_features_item {
  position: relative;
  padding-bottom: 5px;
  margin-bottom: 6px;
  border-bottom-width: 1px;
  border-bottom-style: solid;
  overflow: hidden;
}
.cmsmasters_open_profile .profile_details_item_title,
.cmsmasters_open_profile .profile_features_item_title {
  max-width: 50%;
  padding-top: 1px;
  float: left;
  overflow: hidden;
}
.cmsmasters_open_profile .profile_details_one_item .profile_details_item_title,
.cmsmasters_open_profile .profile_features_one_item .profile_features_item_title {
  max-width: 100%;
  float: none;
}
.cmsmasters_open_profile .profile_details_item_desc,
.cmsmasters_open_profile .profile_features_item_desc {
  padding: 0 0 0 10px;
  word-wrap: break-word;
  text-align: right;
  overflow: hidden;
}
.cmsmasters_open_profile .profile_details_one_item .profile_details_item_desc,
.cmsmasters_open_profile .profile_features_one_item .profile_features_item_desc {
  padding-left: 0;
  padding-right: 0;
}
.cmsmasters_open_profile .profile_social_icons {
  position: relative;
  overflow: hidden;
}
.cmsmasters_open_profile .profile_social_icons_title {
  margin: 0 0 20px;
  padding: 18px 0 0;
}
.cmsmasters_open_profile .profile_social_icons_list {
  list-style: none;
  display: block;
  margin: 0;
  padding: 0;
}
.cmsmasters_open_profile .profile_social_icons_list li {
  display: inline-block;
  vertical-align: middle;
  margin: 0 15px 0 0;
  padding: 0;
  position: relative;
}
.cmsmasters_open_profile .profile_social_icons_list li:last-child {
  margin: 0;
}
.cmsmasters_open_profile .profile_social_icons_list li:before {
  display: none;
}
.cmsmasters_open_profile .profile_social_icons_list a {
  font-size: 15px;
  line-height: 15px;
  display: block;
  position: relative;
}
.cmsmasters_open_profile .profile_social_icons_list a:before {
  margin: 0;
}
/*-------------------------------------------------------------------------*/
/* Shortcodes Styles
/*-------------------------------------------------------------------------*/
/***************** Divider ******************/
hr {
  border: 0;
  border-bottom-style: solid;
  margin: 40px 0;
}
hr,
.cmsmasters_widget_divider,
.cmsmasters_divider {
  background-color: transparent;
  border-bottom-width: 1px;
  width: 100%;
  height: 1px;
  position: relative;
  display: block;
  clear: both;
}
.cmsmasters_widget_divider {
  margin: 0 1% 40px;
  width: 98%;
}
.cmsmasters_widget_divider.solid {
  border-bottom-style: solid;
}
.cmsmasters_widget_divider.dashed {
  border-bottom-style: dashed;
}
.cmsmasters_widget_divider.dotted {
  border-bottom-style: dotted;
}
.cmsmasters_widget_divider.transparent {
  border-bottom-width: 0;
}
.cmsmasters_divider.cmsmasters_divider_width_short {
  width: 8%;
}
.cmsmasters_divider.cmsmasters_divider_width_short.cmsmasters_divider_pos_center {
  left: 40%;
}
.cmsmasters_divider.cmsmasters_divider_width_short.cmsmasters_divider_pos_right {
  left: 80%;
}
.cmsmasters_divider.cmsmasters_divider_width_medium {
  width: 30%;
}
.cmsmasters_divider.cmsmasters_divider_width_medium.cmsmasters_divider_pos_center {
  left: 30%;
}
.cmsmasters_divider.cmsmasters_divider_width_medium.cmsmasters_divider_pos_right {
  left: 60%;
}
.cmsmasters_divider.cmsmasters_divider_width_long {
  width: 100%;
}
/***************** Special Heading ******************/
.cmsmasters_heading_wrap {
  position: relative;
}
.cmsmasters_heading_wrap .cmsmasters_heading_divider {
  display: inline-block;
  height: 2px;
  position: absolute;
  top: 50%;
}
.cmsmasters_heading_wrap .cmsmasters_heading_divider_left_wrap,
.cmsmasters_heading_wrap .cmsmasters_heading_divider_right_wrap {
  display: inline-block;
  width: 0;
}
.cmsmasters_heading_wrap.cmsmasters_heading_divider_short .cmsmasters_heading_divider {
  width: 10%;
}
.cmsmasters_heading_wrap.cmsmasters_heading_divider_short .cmsmasters_heading_divider_left {
  margin-left: -10%;
  margin-right: 0;
}
.cmsmasters_heading_wrap.cmsmasters_heading_divider_medium .cmsmasters_heading_divider {
  width: 20%;
}
.cmsmasters_heading_wrap.cmsmasters_heading_divider_medium .cmsmasters_heading_divider_left {
  margin-left: -20%;
  margin-right: 0;
}
.cmsmasters_heading_wrap.cmsmasters_heading_divider_long .cmsmasters_heading_divider {
  width: 100%;
}
.cmsmasters_heading_wrap.cmsmasters_heading_divider_long .cmsmasters_heading_divider_left {
  margin-left: -100%;
  margin-right: 0;
}
.cmsmasters_heading_wrap.cmsmasters_heading_divider_short .cmsmasters_heading,
.cmsmasters_heading_wrap.cmsmasters_heading_divider_medium .cmsmasters_heading,
.cmsmasters_heading_wrap.cmsmasters_heading_divider_long .cmsmasters_heading {
  max-width: 80%;
}
.cmsmasters_heading_wrap .cmsmasters_heading {
  display: inline-block;
  margin: 0;
}
.cmsmasters_heading_wrap .cmsmasters_heading:before,
.cmsmasters_heading_wrap .cmsmasters_heading a:before {
  margin-left: 0;
  margin-right: 0.5em;
}
/***************** Featured Block ******************/
.cmsmasters_featured_block {
  position: relative;
  overflow: hidden;
}
.cmsmasters_featured_block .featured_block_link {
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
}
.cmsmasters_featured_block .featured_block_inner {
  width: 100%;
  padding: 20px 20px 0;
  position: relative;
  overflow: hidden;
}
/***************** Table ******************/
.cmsmasters_wrap_table {
  overflow: auto;
}
.cmsmasters_table {
  width: 100%;
}
.cmsmasters_table caption {
  outline: none;
}
.cmsmasters_table tr td,
.cmsmasters_table tr th {
  padding: 15px 30px;
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_table tr td.cmsmasters_table_cell_aligncenter,
.cmsmasters_table tr th.cmsmasters_table_cell_aligncenter {
  text-align: center;
}
.cmsmasters_table tr td.cmsmasters_table_cell_alignleft,
.cmsmasters_table tr th.cmsmasters_table_cell_alignleft {
  text-align: left;
}
.cmsmasters_table tr td.cmsmasters_table_cell_alignright,
.cmsmasters_table tr th.cmsmasters_table_cell_alignright {
  text-align: right;
}
/***************** Notice ******************/
.cmsmasters_notice {
  display: block;
  width: 100%;
  padding: 0 20px;
  margin-bottom: 20px;
  position: relative;
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_notice:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_notice[class*=" cmsmasters-icon-"],
.cmsmasters_notice[class*=" cmsmasters_theme_icon_"] {
  padding-left: 80px;
}
.cmsmasters_notice:before {
  font-size: 32px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 20px;
  right: auto;
  top: 0;
  bottom: 0;
}
.cmsmasters_notice .notice_content {
  position: relative;
  padding: 20px 0 0;
}
.cmsmasters_notice .notice_close {
  font-size: 8px;
  line-height: 7px;
  display: block;
  width: 18px;
  height: 18px;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: -10px;
  top: -10px;
  bottom: auto;
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_notice .notice_close:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  text-indent: 0.5px;
}
.cmsmasters_notice.cmsmasters_notice_success {
  color: #ffffff;
  background-color: #fdfff9;
  border-color: #d0e4a8;
}
.cmsmasters_notice.cmsmasters_notice_success:before {
  color: #8bc34a;
}
.cmsmasters_notice.cmsmasters_notice_error {
  color: #ffffff;
  border-color: #f7d1d1;
  background-color: #fffdfd;
}
.cmsmasters_google_map .cmsmasters_notice.cmsmasters_notice_error {
  display: inline-block;
  width: auto;
  margin-top: 200px;
}
.cmsmasters_notice.cmsmasters_notice_error:before {
  color: #ea5151;
}
.cmsmasters_notice.cmsmasters_notice_info {
  color: #ffffff;
  background-color: #fafcff;
  border-color: #d5dde9;
}
.cmsmasters_notice.cmsmasters_notice_info:before {
  color: #6e95d1;
}
.cmsmasters_notice.cmsmasters_notice_warning {
  background-color: #fffdf9;
  border-color: #f1ceb7;
}
.cmsmasters_notice.cmsmasters_notice_warning:before {
  color: #fdb543;
}
.cmsmasters_notice.cmsmasters_notice_download {
  background-color: #f9fffa;
  border-color: #c9e0cd;
}
.cmsmasters_notice.cmsmasters_notice_download:before {
  color: #63b698;
}
/***************** Icon ******************/
.cmsmasters_icon_wrap a {
  display: inline-block;
}
.cmsmasters_icon_wrap .cmsmasters_simple_icon_title {
  display: inline-block;
  margin-left: 8px;
}
.cmsmasters_icon_wrap .cmsmasters_simple_icon {
  border-style: solid;
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_icon_wrap .cmsmasters_simple_icon:before {
  margin: 0;
}
/***************** Icon List ******************/
.cmsmasters_icon_list_items {
  list-style: none;
  padding: 0;
  margin: 0;
  position: relative;
}
.cmsmasters_icon_list_items li {
  margin-bottom: 0px;
}
.cmsmasters_icon_list_items li:before {
  position: absolute;
}
.cmsmasters_icon_list_items .cmsmasters_icon_list_item:before {
  top: 0;
  left: 50px;
  right: auto;
  width: 1.5em;
  height: 1.5em;
  line-height: 1.5em;
  margin: 0;
  background-color: rgba(0, 0, 0, 0);
}
.cmsmasters_icon_list_items .cmsmasters_icon_list_item .cmsmasters_icon_list_icon {
  width: 100px;
  height: 100px;
  margin: 1px;
  position: relative;
}
.cmsmasters_icon_list_items .cmsmasters_icon_list_item .cmsmasters_icon_list_icon:before {
  font-size: 32px;
  line-height: 80px;
}
.cmsmasters_icon_list_items .cmsmasters_icon_list_item .cmsmasters_icon_list_icon:after {
  content: '';
  border-width: 10px;
  border-style: solid;
  width: 102px;
  height: 102px;
  position: absolute;
  top: -1px;
  left: -1px;
}
.cmsmasters_icon_list_items .cmsmasters_icon_list_item .cmsmasters_icon_list_item_title {
  word-wrap: break-word;
  margin-bottom: 10px;
}
.cmsmasters_icon_list_items.cmsmasters_color_type_icon .cmsmasters_icon_list_item {
  overflow: hidden;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_pos_right .cmsmasters_icon_list_item:before {
  left: auto;
  right: 50px;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_list {
  padding-left: 30px;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_list .cmsmasters_icon_list_item:before {
  left: -32px;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_list .cmsmasters_icon_list_item > * {
  margin: 0;
  padding: 0;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block {
  padding: 0;
  margin: 0;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item {
  display: block;
  width: 100%;
  padding: 0 0 50px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item:before {
  content: '';
  display: block;
  width: 1px;
  height: 0;
  padding: 0;
  position: absolute;
  top: 40px;
  z-index: 1;
  opacity: 0;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item:last-child {
  padding-bottom: 0;
  margin-bottom: 0;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item:last-child:before {
  display: none;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item.cmsmasters_icon_type_image .cmsmasters_icon_list_icon {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item .cmsmasters_icon_list_icon {
  display: block;
  text-align: center;
  z-index: 2;
  -webkit-transform: scale(0.5);
  -moz-transform: scale(0.5);
  transform: scale(0.5);
  opacity: 0.3;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item.shortcode_animated:before {
  height: 100%;
  opacity: 1;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item.shortcode_animated .cmsmasters_icon_list_icon {
  opacity: 1;
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item_content {
  overflow: hidden;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block.cmsmasters_icon_list_pos_left .cmsmasters_icon_list_item_content {
  text-align: left;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block.cmsmasters_icon_list_pos_left .cmsmasters_icon_list_item_content .cmsmasters_icon_list_item_text {
  text-align: left;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block.cmsmasters_icon_list_pos_left .cmsmasters_icon_list_icon_wrap {
  padding-right: 30px;
  float: left;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block.cmsmasters_icon_list_pos_right .cmsmasters_icon_list_item_content {
  text-align: right;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block.cmsmasters_icon_list_pos_right .cmsmasters_icon_list_item_content .cmsmasters_icon_list_item_text {
  text-align: right;
}
.cmsmasters_icon_list_items.cmsmasters_icon_list_type_block.cmsmasters_icon_list_pos_right .cmsmasters_icon_list_icon_wrap {
  padding-left: 30px;
  float: right;
}
/***************** Icon Box ******************/
.cmsmasters_icon_box {
  border-style: solid;
  border-color: transparent;
  position: relative;
}
.cmsmasters_icon_box:before,
.cmsmasters_icon_box .icon_box_heading:before {
  border-style: solid;
  text-align: center;
}
.cmsmasters_icon_box .icon_box_inner {
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: flex;
  justify-content: center;
  flex-direction: column;
}
.cmsmasters_icon_box .heading {
  margin: 0;
}
.cmsmasters_icon_box .icon_box_heading:before {
  position: absolute;
  top: 0;
  left: 0;
}
.cmsmasters_icon_box.box_icon_type_image:before,
.cmsmasters_icon_box.box_icon_type_number:before {
  content: '';
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}
.cmsmasters_icon_box.box_icon_type_image.cmsmasters_icon_heading_left:before,
.cmsmasters_icon_box.box_icon_type_number.cmsmasters_icon_heading_left:before {
  content: none;
}
.cmsmasters_icon_box.box_icon_type_image.cmsmasters_icon_heading_left .icon_box_heading:before,
.cmsmasters_icon_box.box_icon_type_number.cmsmasters_icon_heading_left .icon_box_heading:before {
  content: '\00a0';
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  display: inline-block;
  text-align: center;
}
.cmsmasters_icon_box.cmsmasters_icon_top:before {
  font-size: 0;
  position: absolute;
  left: 50%;
  top: 30px;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  transform: scale(0);
  opacity: 0;
}
.cmsmasters_icon_box.cmsmasters_icon_top.shortcode_animated:before {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}
.cmsmasters_icon_box.cmsmasters_icon_top .icon_box_inner {
  text-align: center;
}
.cmsmasters_icon_box.cmsmasters_icon_top .icon_box_inner .icon_box_text {
  text-align: center;
}
.cmsmasters_icon_box.cmsmasters_icon_box_top {
  border-width: 1px;
  padding: 20px 20px 30px;
}
.cmsmasters_icon_box.cmsmasters_icon_box_top:before {
  font-size: 0;
  position: absolute;
  left: 50%;
  top: 35px;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  transform: scale(0);
  opacity: 0;
}
.cmsmasters_icon_box.cmsmasters_icon_box_top[class*=" cmsmasters-icon-"],
.cmsmasters_icon_box.cmsmasters_icon_box_top[class*=" cmsmasters_theme_icon_"] {
  padding-top: 120px;
}
.cmsmasters_icon_box.cmsmasters_icon_box_top.shortcode_animated:before {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}
.cmsmasters_icon_box.cmsmasters_icon_box_top .icon_box_inner {
  text-align: center;
}
.cmsmasters_icon_box.cmsmasters_icon_box_top .icon_box_inner .icon_box_text {
  text-align: center;
}
.cmsmasters_icon_box.cmsmasters_icon_box_left {
  border-width: 1px;
  padding: 20px 20px 30px;
}
.cmsmasters_icon_box.cmsmasters_icon_box_left:before {
  font-size: 24px;
  line-height: 45px;
  width: 45px;
  height: 45px;
  margin: 0;
  position: absolute;
  left: 0;
  top: 50%;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  transform: scale(0);
  text-align: center;
  opacity: 0;
}
.cmsmasters_icon_box.cmsmasters_icon_box_left.shortcode_animated:before {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}
.cmsmasters_icon_box.cmsmasters_icon_box_left_top {
  padding-left: 60px;
}
.cmsmasters_icon_box.cmsmasters_icon_box_left_top:before {
  font-size: 24px;
  line-height: 45px;
  width: 45px;
  height: 45px;
  margin: 0;
  position: absolute;
  left: 0;
  top: 0;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  transform: scale(0);
  text-align: center;
  opacity: 0;
}
.cmsmasters_icon_box.cmsmasters_icon_box_left_top.shortcode_animated:before {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}
.cmsmasters_icon_box.cmsmasters_icon_heading_left h1,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h2,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h3,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h4,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h5,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h6 {
  display: flex;
  align-items: center;
  position: relative;
}
.cmsmasters_icon_box.cmsmasters_icon_heading_left h1:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h2:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h3:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h4:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h5:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left h6:before {
  margin-left: 0;
  margin-right: 15px;
  vertical-align: inherit;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  transform: scale(0);
  opacity: 0;
  width: auto;
  height: auto;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: 0;
}
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h1,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h2,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h3,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h4,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h5,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h6 {
  display: flex;
  align-items: center;
  position: relative;
  padding-top: 0.12em;
}
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h1:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h2:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h3:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h4:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h5:before,
.cmsmasters_icon_box.cmsmasters_icon_heading_left.shortcode_animated h6:before {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
  opacity: 1;
  width: auto;
  height: auto;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: 0;
}
.cmsmasters_icon_box .icon_box_text p:last-child {
  padding-bottom: 0;
}
/***************** Toggles ******************/
.cmsmasters_toggles {
  position: relative;
}
.cmsmasters_toggles .cmsmasters_toggles_filter {
  padding: 0 0 15px;
  font-size: 0;
  position: relative;
}
.cmsmasters_toggles .cmsmasters_toggles_filter a {
  cursor: pointer;
  margin-right: 30px;
}
.cmsmasters_toggles .cmsmasters_toggles_filter a:last-child {
  margin-right: 0;
}
.cmsmasters_toggles .cmsmasters_toggles_filter a.current_filter {
  cursor: default;
}
.cmsmasters_toggles .cmsmasters_toggle_wrap {
  position: relative;
}
.cmsmasters_toggles .cmsmasters_toggle_wrap.current_toggle .cmsmasters_toggle_plus_vert::before {
  transform: rotate(180deg);
}
.cmsmasters_toggles .cmsmasters_toggle_title {
  position: relative;
}
.cmsmasters_toggles .cmsmasters_toggle_title a {
  display: block;
  position: relative;
  z-index: 2;
}
.cmsmasters_toggles .cmsmasters_toggle_plus {
  display: block;
  z-index: 1;
  width: auto;
  height: 25px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_toggles .cmsmasters_toggle_plus span.cmsmasters_toggle_plus_vert::before {
  content: '\e8a4';
  font-family: 'fontello-custom';
  font-size: 6px;
  display: inline-block;
  -webkit-transition: transform .3s ease, color .3s ease;
  -moz-transition: transform .3s ease, color .3s ease;
  -ms-transition: transform .3s ease, color .3s ease;
  -o-transition: transform .3s ease, color .3s ease;
  transition: transform .3s ease, color .3s ease;
}
.cmsmasters_toggles .cmsmasters_toggle {
  padding: 25px 0 0;
  display: none;
}
.cmsmasters_toggles .cmsmasters_toggle_inner {
  position: relative;
  overflow: hidden;
}
.cmsmasters_toggles .cmsmasters_toggle_inner > *:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}
.cmsmasters_toggles .cmsmasters_toggle_inner > ul li {
  position: relative;
  padding: 0 0 20px;
}
.cmsmasters_toggles .cmsmasters_toggle_inner > ul li::before {
  content: "";
  position: static;
  width: 5px;
  height: 5px;
  display: inline-block;
  vertical-align: middle;
  margin: 0 10px 0 0;
  line-height: 1;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_toggles .cmsmasters_toggle_wrap.current_toggle > .cmsmasters_toggle {
  display: block;
}
.cmsmasters_toggles.toggles_mode_toggle .cmsmasters_toggle_wrap {
  margin: 0 0 1px;
}
.cmsmasters_toggles.toggles_mode_toggle .cmsmasters_toggle_wrap:last-child {
  margin: 0;
}
.cmsmasters_toggles.toggles_mode_toggle .cmsmasters_toggle_title a {
  padding: 15px 60px 15px 20px;
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_toggles.toggles_mode_toggle .cmsmasters_toggle_plus {
  left: auto;
  right: 15px;
}
.cmsmasters_toggles.toggles_mode_toggle .cmsmasters_toggle_inner {
  padding: 5px 20px 35px;
}
.cmsmasters_toggles.toggles_mode_accordion .cmsmasters_toggle_wrap {
  outline: none;
}
.cmsmasters_toggles.toggles_mode_accordion .cmsmasters_toggle_title a {
  padding: 20px 60px 20px 0;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_toggles.toggles_mode_accordion .cmsmasters_toggle_plus {
  left: auto;
  right: 0;
}
.cmsmasters_toggles.toggles_mode_accordion .cmsmasters_toggle_inner {
  padding: 0 0 35px;
}
/***************** Tabs ******************/
.cmsmasters_tabs {
  position: relative;
}
.product .cmsmasters_tabs .cmsmasters_tabs_list {
  position: relative;
  z-index: 5;
  margin: 0;
  align-items: flex-end;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: flex;
}
.product .cmsmasters_tabs .cmsmasters_tabs_list > li {
  width: 100%;
  max-width: 250px;
  text-align: center;
}
.product .cmsmasters_tabs .cmsmasters_tabs_list > li a {
  padding: 33px 10px 25px;
}
.cmsmasters_tabs.tabs_pos_left .cmsmasters_tabs_list li,
.cmsmasters_tabs.tabs_pos_right .cmsmasters_tabs_list li {
  max-width: 100%;
}
.cmsmasters_tabs:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_tabs .cmsmasters_tabs_list {
  list-style: none;
  padding: 0;
  position: relative;
  z-index: 2;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: flex;
  align-items: flex-end;
  margin-bottom: 0;
}
.cmsmasters_tabs .cmsmasters_tabs_list:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_tabs .cmsmasters_tabs_list > li {
  width: 100%;
  max-width: 250px;
}
.cmsmasters_tabs .cmsmasters_tabs_list_item {
  display: block;
  margin: 0;
  padding: 0;
  margin-left: -1px;
  perspective: 1px;
  -webkit-perspective: 1px;
  -webkit-border-radius: 10px 25px 0px 0px;
  border-radius: 10px 25px 0px 0px;
  overflow: hidden;
  border-width: 1px;
  border-style: solid;
}
.tabs_pos_left.cmsmasters_tabs .cmsmasters_tabs_list_item {
  -webkit-border-radius: 10px 0 0px 10px;
  border-radius: 10px 0 0px 10px;
  margin: 0 0 -1px;
}
.tabs_pos_right.cmsmasters_tabs .cmsmasters_tabs_list_item {
  -webkit-border-radius: 0px 10px 10px 0px;
  border-radius: 0px 10px 10px 0px;
  margin: 0 0 -1px;
}
.cmsmasters_tabs .cmsmasters_tabs_list_item:before {
  display: none;
}
.cmsmasters_tabs .cmsmasters_tabs_list_item a {
  display: block;
  padding: 30px 20px 28px;
  position: relative;
  cursor: pointer;
  text-align: center;
}
.cmsmasters_tabs .cmsmasters_tabs_list_item a[class^="cmsmasters-icon-"],
.cmsmasters_tabs .cmsmasters_tabs_list_item a[class^="cmsmasters_theme_icon_"] {
  padding: 30px 40px 28px 70px;
}
.tabs_pos_left.cmsmasters_tabs .cmsmasters_tabs_list_item a[class^="cmsmasters-icon-"],
.tabs_pos_left.cmsmasters_tabs .cmsmasters_tabs_list_item a[class^="cmsmasters_theme_icon_"] {
  padding: 30px 40px 28px 70px;
}
.cmsmasters_tabs .cmsmasters_tabs_list_item a:before {
  font-size: 18px;
  line-height: 20px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 40px;
  right: auto;
  top: 0;
  bottom: 0;
}
.cmsmasters_tabs .cmsmasters_tabs_list_item a > span {
  display: inline-block;
  text-align: left;
}
.cmsmasters_tabs .cmsmasters_tabs_list_item.current_tab a,
.cmsmasters_tabs .cmsmasters_tabs_list_item:hover a {
  outline: none;
}
.cmsmasters_tabs .cmsmasters_tabs_wrap {
  position: relative;
  margin-top: -1px;
  padding: 50px;
  border-width: 1px;
  border-style: solid;
  border-bottom-width: 6px;
  border-bottom-style: solid;
}
.tabs_pos_left.cmsmasters_tabs .cmsmasters_tabs_wrap {
  left: -1px;
  border-bottom-width: 1px;
  border-bottom-style: solid;
  border-right-width: 6px;
  border-right-style: solid;
}
.tabs_pos_right.cmsmasters_tabs .cmsmasters_tabs_wrap {
  right: -1px;
  border-bottom-width: 1px;
  border-bottom-style: solid;
  border-left-width: 6px;
  border-left-style: solid;
}
.cmsmasters_tabs .cmsmasters_tab {
  display: none;
}
.cmsmasters_tabs .cmsmasters_tab:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_tabs .cmsmasters_tab.active_tab {
  display: block;
}
.cmsmasters_tabs .cmsmasters_tab_inner {
  position: relative;
  overflow: hidden;
}
.cmsmasters_tabs .cmsmasters_tab_inner > *:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}
.cmsmasters_tabs .cmsmasters_tab_inner img {
  width: auto;
}
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tabs_list_item {
  border-width: 1px;
  border-style: solid;
  display: inline-block;
  vertical-align: bottom;
}
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tabs_list_item:first-child {
  margin-left: 0;
}
.cmsmasters_tabs.tabs_mode_tour {
  display: table;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tabs_list {
  display: table-cell;
  width: 25%;
  vertical-align: top;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tabs_list_item:last-child {
  margin: 0;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tabs_wrap {
  display: table-cell;
  width: 75%;
  vertical-align: top;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tab_inner {
  padding: 0 0 0 0px;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right {
  direction: rtl;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_list {
  text-align: right;
  direction: ltr;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_list_item a[class^="cmsmasters-icon-"],
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_list_item a[class^="cmsmasters_theme_icon_"] {
  padding: 30px 70px 28px 40px;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_list_item a:before {
  left: auto;
  right: 40px;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_wrap {
  direction: ltr;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tab_inner {
  padding: 0 30px 0 0;
  text-align: right;
}
/***************** Stats ******************/
.cmsmasters_stats {
  position: relative;
  text-align: center;
}
.cmsmasters_stats:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_stats .cmsmasters_stat_wrap .cmsmasters_stat {
  position: relative;
}
.cmsmasters_stats .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner {
  display: block;
}
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat_container {
  width: 100%;
  height: 220px;
  margin: 0 0 7px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat {
  width: 0;
}
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner[class^="cmsmasters-icon-"]:before,
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner[class*=" cmsmasters-icon-"]:before,
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner[class^="cmsmasters_theme_icon_"]:before,
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner[class*=" cmsmasters_theme_icon_"]:before {
  font-size: 23px;
  margin: 0;
  position: absolute;
  left: 15px;
  top: 10px;
}
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_title {
  position: absolute;
  left: 15px;
  top: 10px;
}
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_counter_wrap {
  position: absolute;
  left: auto;
  right: 15px;
  top: 10px;
}
.cmsmasters_stats.stats_mode_bars .cmsmasters_stat_wrap .cmsmasters_stat canvas {
  display: none;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical {
  margin: 0 -1%;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat {
  width: 100%;
  height: 0;
  position: absolute;
  bottom: 0;
  left: 0;
  overflow: hidden;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner {
  height: 100%;
  text-align: center;
  -webkit-border-radius: 4px;
  border-radius: 4px;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner:before {
  font-size: 40px;
  line-height: 40px;
  display: inline-block;
  vertical-align: middle;
  position: static;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_title_counter_wrap {
  width: 100%;
  padding: 0 0 13px;
  position: absolute;
  left: 0;
  bottom: 100%;
  overflow: hidden;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_title {
  display: block;
  padding: 0 10px 0 0;
  position: static;
  overflow: hidden;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_counter_wrap {
  float: right;
  position: relative;
  top: 10px;
  right: 10px;
  z-index: 5;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat_subtitle {
  display: block;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap {
  padding-bottom: 15px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap:last-child {
  padding-bottom: 0;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap:before {
  content: '';
  display: block;
  width: 100%;
  height: 10px;
  position: absolute;
  top: 32px;
  left: 0;
  -webkit-border-radius: 4px;
  border-radius: 4px;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat {
  min-height: 40px;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner {
  width: 100%;
  height: 8px;
  position: absolute;
  bottom: 0;
  left: 0;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner::after {
  content: "";
  position: absolute;
  width: 1200px;
  height: 100%;
  left: 0;
  top: 0;
  background-color: inherit;
  opacity: 0.2;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_counter_wrap {
  left: auto;
  right: 0;
  top: auto;
  bottom: 16px;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner:before,
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_title {
  left: 0;
  top: auto;
  bottom: 16px;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner[class^="cmsmasters-icon-"] .cmsmasters_stat_title,
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner[class*=" cmsmasters-icon-"] .cmsmasters_stat_title,
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner[class^="cmsmasters_theme_icon_"] .cmsmasters_stat_title,
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner[class*=" cmsmasters_theme_icon_"] .cmsmasters_stat_title {
  left: 30px;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat_subtitle {
  display: inline-block;
  padding: 20px 0 5px;
}
.cmsmasters_stats.stats_mode_circles {
  margin-top: -40px;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap {
  display: inline-block;
  float: none;
  margin: 0;
  padding: 40px 10px 0;
  vertical-align: top;
  text-align: center;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap.one_fifth {
  width: 20%;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap.one_fourth {
  width: 25%;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap.one_third {
  width: 33.3%;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap.one_half {
  width: 50%;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap.one_first {
  width: 100%;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat {
  width: 204px;
  height: 204px;
  display: inline-block;
  margin: 0 0 30px;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: block;
  border-width: 8px;
  border-style: solid;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  opacity: 0.2;
  z-index: 0;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner {
  position: absolute;
  width: 100%;
  top: 50%;
  z-index: 2;
  -webkit-transform: translate(0, -50%);
  transform: translate(0, -50%);
  text-align: center;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner:before {
  font-size: 44px;
  line-height: 44px;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_counter_wrap {
  display: block;
  text-align: center;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat canvas {
  width: 204px !important;
  height: 204px !important;
  position: relative;
  z-index: 1;
  margin: 0 auto;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat.stat_has_titleicon .cmsmasters_stat_inner .cmsmasters_stat_counter_wrap {
  padding: 0px 0 25px;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat_title {
  display: block;
  padding: 0;
  text-align: center;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat_subtitle {
  display: block;
  padding: 15px 0 0;
  text-align: center;
}
/***************** Counters ******************/
.cmsmasters_counters {
  position: relative;
  text-align: center;
}
.cmsmasters_counters:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_counters canvas {
  display: none;
}
.cmsmasters_counters .cmsmasters_counter_wrap {
  display: inline-block;
  padding: 0 2px;
  margin: 0;
  float: none;
  vertical-align: top;
  text-align: center;
}
.cmsmasters_counters .cmsmasters_counter_wrap.one_fifth {
  width: 20%;
}
.cmsmasters_counters .cmsmasters_counter_wrap.one_fourth {
  width: 25%;
}
.cmsmasters_counters .cmsmasters_counter_wrap.one_third {
  width: 33.3%;
}
.cmsmasters_counters .cmsmasters_counter_wrap.one_half {
  width: 50%;
}
.cmsmasters_counters .cmsmasters_counter_wrap.one_first {
  width: 100%;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter {
  min-height: 100px;
  padding: 0 20px;
  margin: 0 0 20px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner {
  display: block;
  margin: 20px 0 0;
  position: relative;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner:before {
  border-style: solid;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner .cmsmasters_counter_title_wrap {
  display: block;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner .cmsmasters_counter_title {
  display: block;
  padding-left: 15px;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner .cmsmasters_counter_counter_wrap {
  position: relative;
  display: inline-block;
  letter-spacing: -1.8px;
  padding-left: 15px;
  padding-top: 8px;
}
#page .cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner .cmsmasters_counter_counter_wrap {
  line-height: 1;
}
.counters_type_horizontal.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner .cmsmasters_counter_counter_wrap::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0px;
  margin: auto;
  transform: translate(0, 50%);
  height: 20px;
  border-left-width: 2px;
  border-left-style: solid;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter.counter_has_icon .cmsmasters_counter_inner:before {
  margin-left: 0;
  margin-right: 0;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter.counter_has_image .cmsmasters_counter_inner:before {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter_subtitle {
  display: block;
  padding-bottom: 20px;
}
.cmsmasters_counters.counters_type_vertical .cmsmasters_counter_wrap .cmsmasters_counter {
  text-align: center;
}
.cmsmasters_counters.counters_type_vertical .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner {
  text-align: center;
}
.cmsmasters_counters.counters_type_vertical .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner:before {
  left: 50%;
}
.cmsmasters_counters.counters_type_vertical .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner .cmsmasters_counter_counter {
  letter-spacing: -1.8px;
}
.cmsmasters_counters.counters_type_vertical .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner .cmsmasters_counter_counter_wrap {
  position: relative;
  padding: 10px 0 0;
  letter-spacing: -1.8px;
}
.cmsmasters_counters.counters_type_vertical .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner .cmsmasters_counter_counter_wrap::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  margin: auto;
  width: 20px;
  border-top-width: 2px;
  border-top-style: solid;
  color: inherit;
}
.cmsmasters_counters.counters_type_vertical .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner .cmsmasters_counter_title {
  padding: 0px 0 0;
}
.cmsmasters_counters.counters_type_vertical .cmsmasters_counter_wrap .cmsmasters_counter_subtitle {
  display: block;
  text-align: center;
}
.cmsmasters_counters.counters_type_horizontal .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner:before {
  left: 0;
  right: auto;
  top: 0;
}
.cmsmasters_counters.counters_type_horizontal .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
}
.cmsmasters_counters.counters_type_horizontal .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner .cmsmasters_counter_title_wrap {
  display: inline-block;
  vertical-align: middle;
}
.cmsmasters_counters.counters_type_horizontal .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_subtitle {
  margin-top: -5px;
  margin-left: 15px;
}
/***************** CMSMASTERS Button ******************/
.cmsmasters_button {
  display: inline-block;
  padding: 0 27px;
  letter-spacing: -0.15px;
  cursor: pointer;
  position: relative;
  white-space: nowrap;
  -webkit-border-radius: 25px;
  border-radius: 25px;
  text-align: center;
  border-width: 0;
  border-style: solid;
}
.cmsmasters_button:before {
  line-height: inherit !important;
  position: relative;
  z-index: 10;
}
.cmsmasters_button span {
  position: relative;
  z-index: 10;
}
.cmsmasters_button.cmsmasters_but_clear_styles {
  background: none;
  border: 0;
  margin: 0;
  padding: 0 20px;
  -webkit-border-radius: 0;
  border-radius: 0;
  overflow: hidden;
  -webkit-box-shadow: none;
  box-shadow: none;
}
.cmsmasters_button.cmsmasters_but_clear_styles:hover {
  margin: 0;
  -webkit-box-shadow: none;
  box-shadow: none;
}
.cmsmasters_button.cmsmasters_but_clear_styles:after {
  content: '';
  position: absolute;
}
.cmsmasters_button.cmsmasters_but_bg_hover {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_bd_underline {
  border-left-width: 0;
  border-left-style: solid;
  border-right-width: 0;
  border-right-style: solid;
  border-top-width: 0;
  border-top-style: solid;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
#page .cmsmasters_button.cmsmasters_but_bd_underline:before {
  -webkit-transition: none;
  -moz-transition: none;
  -ms-transition: none;
  -o-transition: none;
  transition: none;
}
.cmsmasters_button.cmsmasters_but_bg_slide_left {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_bg_slide_left:after {
  width: 100%;
  height: 100%;
  left: -100%;
  top: 0;
}
.cmsmasters_button.cmsmasters_but_bg_slide_left:hover:after {
  left: 0%;
}
.cmsmasters_button.cmsmasters_but_bg_slide_right {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_bg_slide_right:after {
  width: 100%;
  height: 100%;
  right: -100%;
  top: 0;
}
.cmsmasters_button.cmsmasters_but_bg_slide_right:hover:after {
  right: 0%;
}
.cmsmasters_button.cmsmasters_but_bg_slide_top {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_bg_slide_top:after {
  width: 100%;
  height: 0;
  left: 0;
  top: 0;
}
.cmsmasters_button.cmsmasters_but_bg_slide_top:hover:after {
  height: 100%;
}
.cmsmasters_button.cmsmasters_but_bg_slide_bottom {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_bg_slide_bottom:after {
  width: 100%;
  height: 0;
  left: 0;
  bottom: 0;
}
.cmsmasters_button.cmsmasters_but_bg_slide_bottom:hover:after {
  height: 100%;
}
.cmsmasters_button.cmsmasters_but_bg_expand_vert {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_bg_expand_vert:after {
  width: 0;
  height: 105%;
  left: 50%;
  top: 50%;
  opacity: 0;
  -webkit-transform: translateX(-50%) translateY(-50%);
  -moz-transform: translateX(-50%) translateY(-50%);
  -o-transform: translateX(-50%) translateY(-50%);
  -ms-transform: translateX(-50%) translateY(-50%);
  transform: translateX(-50%) translateY(-50%);
}
.cmsmasters_button.cmsmasters_but_bg_expand_vert:hover:after {
  width: 90%;
  opacity: 1;
}
.cmsmasters_button.cmsmasters_but_bg_expand_hor {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_bg_expand_hor:after {
  width: 105%;
  height: 0;
  left: 50%;
  top: 50%;
  opacity: 0;
  -webkit-transform: translateX(-50%) translateY(-50%);
  -moz-transform: translateX(-50%) translateY(-50%);
  -o-transform: translateX(-50%) translateY(-50%);
  -ms-transform: translateX(-50%) translateY(-50%);
  transform: translateX(-50%) translateY(-50%);
}
.cmsmasters_button.cmsmasters_but_bg_expand_hor:hover:after {
  height: 75%;
  opacity: 1;
}
.cmsmasters_button.cmsmasters_but_bg_expand_diag {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_bg_expand_diag:after {
  width: 500%;
  height: 0;
  left: 50%;
  top: 50%;
  opacity: 0;
  -webkit-transform: translateX(-50%) translateY(-50%) rotate(45deg);
  -moz-transform: translateX(-50%) translateY(-50%) rotate(45deg);
  -ms-transform: translateX(-50%) translateY(-50%) rotate(45deg);
  transform: translateX(-50%) translateY(-50%) rotate(45deg);
}
.cmsmasters_button.cmsmasters_but_bg_expand_diag:hover:after {
  height: 170%;
  opacity: 1;
}
.cmsmasters_button.cmsmasters_but_shadow {
  padding-bottom: 3px;
  -webkit-box-shadow: inset 0 -3px 0 0 rgba(0, 0, 0, 0.2);
  box-shadow: inset 0 -3px 0 0 rgba(0, 0, 0, 0.2);
}
#page .cmsmasters_button.cmsmasters_but_shadow {
  -webkit-transition: none;
  -moz-transition: none;
  -ms-transition: none;
  -o-transition: none;
  transition: none;
}
.cmsmasters_button.cmsmasters_but_shadow:hover {
  padding-bottom: 0;
  margin-top: 3px;
  -webkit-box-shadow: inset 0 0 0 0 rgba(0, 0, 0, 0.02);
  box-shadow: inset 0 0 0 0 rgba(0, 0, 0, 0.02);
}
.cmsmasters_button.cmsmasters_but_icon_dark_bg:before,
.cmsmasters_button.cmsmasters_but_icon_light_bg:before,
.cmsmasters_button.cmsmasters_but_icon_divider:before,
.cmsmasters_button.cmsmasters_but_icon_inverse:before {
  margin: auto !important;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_button.cmsmasters_but_icon_dark_bg:after,
.cmsmasters_button.cmsmasters_but_icon_light_bg:after,
.cmsmasters_button.cmsmasters_but_icon_divider:after,
.cmsmasters_button.cmsmasters_but_icon_inverse:after {
  content: '';
  background-color: rgba(0, 0, 0, 0.2);
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_button.cmsmasters_but_icon_dark_bg:hover:before,
.cmsmasters_button.cmsmasters_but_icon_light_bg:hover:before,
.cmsmasters_button.cmsmasters_but_icon_divider:hover:before {
  -webkit-transform: scale(1.3);
  -moz-transform: scale(1.3);
  -ms-transform: scale(1.3);
  -o-transform: scale(1.3);
  transform: scale(1.3);
}
.cmsmasters_button.cmsmasters_but_icon_light_bg:after {
  background-color: rgba(255, 255, 255, 0.2);
}
.cmsmasters_button.cmsmasters_but_icon_divider:after {
  background-color: transparent;
  border-right-width: 1px;
  border-right-style: solid;
}
.cmsmasters_button.cmsmasters_but_icon_inverse {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_icon_inverse:after {
  background-color: transparent;
}
.cmsmasters_button.cmsmasters_but_icon_slide_left,
.cmsmasters_button.cmsmasters_but_icon_slide_right {
  padding-left: 40px;
  padding-right: 40px;
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_icon_slide_left:before {
  width: 40px;
  height: auto;
  margin: auto !important;
  position: absolute;
  left: -40px;
  right: auto;
  top: 0;
  bottom: 0;
}
.cmsmasters_button.cmsmasters_but_icon_slide_left:hover:before {
  left: 0;
}
.cmsmasters_button.cmsmasters_but_icon_slide_right:before {
  width: 40px;
  height: auto;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: -40px;
  top: 0;
  bottom: 0;
}
.cmsmasters_button.cmsmasters_but_icon_slide_right:hover:before {
  right: 0;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_left,
.cmsmasters_button.cmsmasters_but_icon_hover_slide_right,
.cmsmasters_button.cmsmasters_but_icon_hover_slide_top,
.cmsmasters_button.cmsmasters_but_icon_hover_slide_bottom {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_left:before,
.cmsmasters_button.cmsmasters_but_icon_hover_slide_right:before,
.cmsmasters_button.cmsmasters_but_icon_hover_slide_top:before,
.cmsmasters_button.cmsmasters_but_icon_hover_slide_bottom:before {
  width: 100%;
  height: auto;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_left span,
.cmsmasters_button.cmsmasters_but_icon_hover_slide_right span,
.cmsmasters_button.cmsmasters_but_icon_hover_slide_top span,
.cmsmasters_button.cmsmasters_but_icon_hover_slide_bottom span {
  display: block;
  position: relative;
  -webkit-transition: all .3s ease-in-out;
  -moz-transition: all .3s ease-in-out;
  -ms-transition: all .3s ease-in-out;
  -o-transition: all .3s ease-in-out;
  transition: all .3s ease-in-out;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_left:before {
  left: -200%;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_left:hover:before {
  left: 0;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_left:hover span {
  -webkit-transform: translateX(200%);
  -moz-transform: translateX(200%);
  -ms-transform: translateX(200%);
  -o-transform: translateX(200%);
  transform: translateX(200%);
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_right:before {
  right: -200%;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_right:hover:before {
  right: 0;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_right:hover span {
  -webkit-transform: translateX(-200%);
  -moz-transform: translateX(-200%);
  -ms-transform: translateX(-200%);
  -o-transform: translateX(-200%);
  transform: translateX(-200%);
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_top:before {
  top: -200%;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_top:hover:before {
  top: 0;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_top:hover span {
  -webkit-transform: translateY(200%);
  -moz-transform: translateY(200%);
  -ms-transform: translateY(200%);
  -o-transform: translateY(200%);
  transform: translateY(200%);
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_bottom:before {
  top: 200%;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_bottom:hover:before {
  top: 0;
}
.cmsmasters_button.cmsmasters_but_icon_hover_slide_bottom:hover span {
  -webkit-transform: translateY(-200%);
  -moz-transform: translateY(-200%);
  -ms-transform: translateY(-200%);
  -o-transform: translateY(-200%);
  transform: translateY(-200%);
}
/***************** Contact Form 7 ******************/
.wpcf7-form input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range]),
.wpcf7-form select,
.wpcf7-form textarea,
.wpcf7-form option {
  min-width: 100px;
  width: 100%;
}
/***************** Hover slider ******************/
.cmsmasters_hover_slider {
  position: relative;
  overflow: hidden;
}
.cmsmasters_hover_slider li:before {
  display: none;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_items {
  list-style: none;
  width: 100%;
  height: 1px;
  padding: 0 0 55.8%;
  margin: 0;
  position: relative;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_items li {
  list-style: none;
  padding: 0;
  width: 100%;
  height: 100%;
  visibility: hidden;
  position: absolute;
  left: 0;
  top: 0;
  opacity: 0;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_items .cmsmasters_hover_slider_full_img {
  width: 100%;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_items img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
  position: absolute;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs {
  font-size: 0;
  line-height: 0;
  margin: 0 -5px;
  padding: 0;
  word-spacing: -1px;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs li {
  word-spacing: normal;
  display: inline-block;
  display: -moz-inline-stack;
  padding: 10px 5px 0;
  vertical-align: top;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs li.shortcode_animated a {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs li.hovered_item a:before {
  opacity: 0.9;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs a {
  display: block;
  position: relative;
  -webkit-transform: scale(0.5);
  -moz-transform: scale(0.5);
  transform: scale(0.5);
  overflow: hidden;
  opacity: 0.3;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs a:before {
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs a:hover:before {
  opacity: 0.9;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs img {
  image-rendering: auto;
  display: block;
  width: 100px;
  height: auto;
}
.js_body .cmsmasters_hover_slider_items > li > figure.cmsmasters_hover_slider_full_img img {
  position: absolute;
}
/***************** Content slider ******************/
.cmsmasters_content_slider {
  margin-bottom: 20px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_content_slider img {
  width: 100%;
}
.cmsmasters_content_slider .owl-pagination {
  bottom: 5px;
}
/***************** Gallery ******************/
.cmsmasters_gallery {
  margin: 0 0 0 -10px;
  padding: 0;
}
.cmsmasters_gallery .cmsmasters_gallery_item {
  min-width: 180px;
  padding: 0 0 10px 10px;
  float: left;
  opacity: 0;
}
.cmsmasters_gallery .cmsmasters_gallery_item:before {
  display: none;
}
.cmsmasters_gallery .cmsmasters_gallery_item img {
  display: block;
  width: 100%;
}
.cmsmasters_gallery .cmsmasters_gallery_item.shortcode_animated {
  opacity: 1;
}
.cmsmasters_gallery .cmsmasters_gallery_item.cmsmasters_caption figure {
  display: block;
  padding: 20px 20px 15px;
}
.cmsmasters_gallery .cmsmasters_gallery_item.cmsmasters_caption figcaption {
  padding: 15px 0 0;
  text-align: center;
}
.ilightbox-thumbnails.dark .ilightbox-thumbnails-grid .ilightbox-thumbnail img {
  image-rendering: auto;
}
/***************** Quotes ******************/
.cmsmasters_quotes_slider {
  padding: 35px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_quotes_slider .owl-buttons {
  visibility: hidden;
  display: none;
}
.cmsmasters_quotes_slider .cmsmasters_quote {
  position: relative;
  overflow: hidden;
}
.cmsmasters_quotes_slider .cmsmasters_quote_inner {
  position: relative;
  padding: 0 18%;
  overflow: hidden;
}
.cmsmasters_quotes_slider .cmsmasters_quote_image {
  padding-top: 10px;
  margin: 0 0 25px;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_quotes_slider .cmsmasters_quote_image img {
  width: 120px;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  overflow: hidden;
}
.cmsmasters_quotes_slider .cmsmasters_quote_header {
  padding: 0 0 4px;
  overflow: hidden;
}
.cmsmasters_quotes_slider .cmsmasters_quote_title {
  margin: 0 0 0 0;
  text-align: center;
}
.cmsmasters_quotes_slider .cmsmasters_quote_subtitle_wrap {
  text-align: center;
  overflow: hidden;
}
.cmsmasters_quotes_slider .cmsmasters_quote_subtitle {
  display: inline-block;
  margin: 0;
}
.cmsmasters_quotes_slider .cmsmasters_quote_site {
  display: inline-block;
}
.cmsmasters_quotes_slider .cmsmasters_quote_subtitle + .cmsmasters_quote_site:before {
  content: '\002D';
  display: inline-block;
  margin: 0 4px;
}
.cmsmasters_quotes_slider .cmsmasters_quote_content {
  margin: 20px 0 20px;
  position: relative;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_quotes_slider .cmsmasters_quote_content p::before {
  content: "“";
  display: inline-block;
}
.cmsmasters_quotes_slider .cmsmasters_quote_content p::after {
  content: "”";
  display: inline-block;
}
.cmsmasters_quotes_slider .cmsmasters_quote_content > *:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}
.cmsmasters_quotes_grid {
  position: relative;
  overflow: hidden;
}
.cmsmasters_quotes_grid .cmsmasters_quotes_vert {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  z-index: 1;
}
.cmsmasters_quotes_grid .cmsmasters_quotes_vert:before,
.cmsmasters_quotes_grid .cmsmasters_quotes_vert:after {
  content: '';
  width: 1px;
  height: 100%;
  position: absolute;
  top: 0;
}
.cmsmasters_quotes_grid .cmsmasters_quotes_vert span {
  display: block;
  width: 1px;
  height: 100%;
  position: absolute;
  top: 0;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quotes_vert:before {
  left: 25%;
  right: auto;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quotes_vert:after {
  left: 75%;
  right: auto;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quotes_vert span {
  left: 50%;
  right: auto;
}
.quote_three.cmsmasters_quotes_grid .cmsmasters_quotes_vert:before {
  left: 33.33%;
  right: auto;
}
.quote_three.cmsmasters_quotes_grid .cmsmasters_quotes_vert:after {
  left: 66.66%;
  right: auto;
}
.quote_three.cmsmasters_quotes_grid .cmsmasters_quotes_vert span {
  display: none;
}
.quote_two.cmsmasters_quotes_grid .cmsmasters_quotes_vert:before,
.quote_two.cmsmasters_quotes_grid .cmsmasters_quotes_vert:after {
  content: none;
}
.quote_two.cmsmasters_quotes_grid .cmsmasters_quotes_vert span {
  left: 50%;
  right: auto;
}
.quote_one.cmsmasters_quotes_grid .cmsmasters_quotes_vert {
  display: none;
}
.cmsmasters_quotes_grid .cmsmasters_quotes_list {
  padding: 0 0 0;
  position: relative;
  z-index: 2;
  padding-bottom: 30px;
}
.quote_three.cmsmasters_quotes_grid .cmsmasters_quotes_list,
.quote_two.cmsmasters_quotes_grid .cmsmasters_quotes_list {
  margin: 0 -15px;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quotes_list {
  padding-bottom: 0px;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quotes_list + .cmsmasters_quotes_list .cmsmasters_quote_inner {
  border-top-width: 0;
  border-top-style: solid;
}
.cmsmasters_quotes_grid .cmsmasters_quotes_list:before {
  content: '';
  width: 100%;
  height: 1px;
  position: absolute;
  left: 0;
  bottom: 1px;
}
.cmsmasters_quotes_grid .cmsmasters_quotes_list:last-child:before {
  content: none;
}
.cmsmasters_quotes_grid .cmsmasters_quotes_list:last-child:after,
.quote_three.cmsmasters_quotes_grid .cmsmasters_quotes_list:after,
.quote_one.cmsmasters_quotes_grid .cmsmasters_quotes_list:after {
  content: none;
}
.cmsmasters_quotes_grid .cmsmasters_quote {
  width: 100%;
  position: relative;
  float: left;
}
.cmsmasters_quotes_grid .cmsmasters_quote + .cmsmasters_quote {
  margin-left: -1px;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quote {
  width: 25%;
}
.quote_three.cmsmasters_quotes_grid .cmsmasters_quote {
  width: 33.33%;
  padding: 0 15px;
}
.quote_two.cmsmasters_quotes_grid .cmsmasters_quote {
  width: 50%;
  padding: 0 15px;
}
.quote_one.cmsmasters_quotes_grid .cmsmasters_quote {
  float: none;
}
.cmsmasters_quotes_grid .cmsmasters_quote_inner {
  padding: 40px 45px 50px;
  position: relative;
  border-width: 1px;
  border-style: solid;
  overflow: hidden;
}
.cmsmasters_quotes_grid .cmsmasters_quote_img_info_wrap {
  padding: 0 0 40px;
  overflow: hidden;
}
.cmsmasters_quotes_grid .cmsmasters_quote_img_info_wrap .cmsmasters_quote_mark {
  margin-right: 20px;
  padding-left: 15px;
  padding-top: 10px;
  height: 80px;
  text-align: left;
  font-size: 94px;
  float: left;
}
.cmsmasters_quotes_grid .cmsmasters_quote_img_info_wrap .cmsmasters_quote_mark::before {
  font-size: 94px;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quote_img_info_wrap,
.quote_three.cmsmasters_quotes_grid .cmsmasters_quote_img_info_wrap {
  padding: 0;
}
.cmsmasters_quotes_grid .cmsmasters_quote_image {
  display: inline-block;
  padding: 0 10px 0 0;
  vertical-align: middle;
  overflow: hidden;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quote_image,
.quote_three.cmsmasters_quotes_grid .cmsmasters_quote_image {
  padding: 0 0 20px;
  display: block;
  text-align: center;
}
.cmsmasters_quotes_grid .cmsmasters_quote_image img {
  width: 80px;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_quotes_grid .cmsmasters_quote_info_wrap {
  display: inline-block;
  vertical-align: middle;
  padding-top: 25px;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quote_info_wrap,
.quote_three.cmsmasters_quotes_grid .cmsmasters_quote_info_wrap {
  padding: 0 0 20px;
  display: block;
  text-align: center;
}
.cmsmasters_quotes_grid .cmsmasters_quote_header {
  padding: 0;
  overflow: hidden;
}
.cmsmasters_quotes_grid .cmsmasters_quote_title {
  margin: 0;
}
.cmsmasters_quotes_grid .cmsmasters_quote_subtitle_wrap {
  overflow: hidden;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quote_subtitle_wrap,
.quote_three.cmsmasters_quotes_grid .cmsmasters_quote_subtitle_wrap {
  text-align: center;
}
.cmsmasters_quotes_grid .cmsmasters_quote_subtitle {
  display: inline-block;
  margin: 0;
}
.cmsmasters_quotes_grid .cmsmasters_quote_site {
  display: inline-block;
}
.cmsmasters_quotes_grid .cmsmasters_quote_site a {
  line-height: 1;
}
.cmsmasters_quotes_grid .cmsmasters_quote_subtitle + .cmsmasters_quote_site:before {
  content: '\002D';
  display: inline-block;
  margin: 0 4px;
}
.cmsmasters_quotes_grid .cmsmasters_quote_content {
  margin: 0;
  position: relative;
  overflow: hidden;
}
.quote_four.cmsmasters_quotes_grid .cmsmasters_quote_content,
.quote_three.cmsmasters_quotes_grid .cmsmasters_quote_content {
  text-align: center;
}
.cmsmasters_quotes_grid .cmsmasters_quote_content p::before {
  content: "“";
  display: inline-block;
}
.cmsmasters_quotes_grid .cmsmasters_quote_content > *:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}
/***************** Pricing tables ******************/
.cmsmasters_pricing_table {
  margin: 0 -10px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_pricing_table .cmsmasters_pricing_item {
  display: block;
  padding: 0 10px 20px;
  position: relative;
  float: left;
  overflow: hidden;
}
.pricing_four.cmsmasters_pricing_table .cmsmasters_pricing_item {
  width: 25%;
}
.pricing_three.cmsmasters_pricing_table .cmsmasters_pricing_item {
  width: 33.33%;
}
.pricing_two.cmsmasters_pricing_table .cmsmasters_pricing_item {
  width: 50%;
}
.pricing_one.cmsmasters_pricing_table .cmsmasters_pricing_item {
  float: none;
}
.cmsmasters_pricing_table .cmsmasters_pricing_item_inner {
  position: relative;
  padding: 35px 0 40px;
  text-align: center;
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_pricing_table .cmsmasters_pricing_item_inner::before {
  content: "";
  position: absolute;
  height: 8px;
  left: 0;
  right: 0;
  top: 100%;
  margin-top: 2px;
  margin-left: -1px;
  margin-right: -1px;
}
.cmsmasters_pricing_table .cmsmasters_pricing_info_wrap {
  padding: 30px 10px 25px;
  overflow: hidden;
}
.cmsmasters_pricing_table .pricing_title {
  margin: 0 0 25px;
  text-align: center;
}
.cmsmasters_pricing_table .cmsmasters_price_wrap {
  word-spacing: -5px;
  display: inline-block;
  overflow: hidden;
  text-align: center;
}
.cmsmasters_pricing_table .cmsmasters_price {
  display: inline-block;
  vertical-align: middle;
  float: left;
}
.cmsmasters_pricing_table .cmsmasters_currency,
.cmsmasters_pricing_table .cmsmasters_coins {
  font-size: 100%;
  display: inline-block;
  vertical-align: middle;
  float: left;
}
.cmsmasters_pricing_table br {
  display: none;
}
.cmsmasters_pricing_table .cmsmasters_period {
  margin-top: -3px;
  display: block;
  text-align: center;
}
.cmsmasters_pricing_table .feature_list {
  list-style: none;
  padding: 25px 10px 35px;
  text-align: center;
}
.cmsmasters_pricing_table .feature_list li {
  margin: 0;
  padding: 3px 0;
}
.cmsmasters_pricing_table .feature_list li:before {
  content: none;
}
.cmsmasters_pricing_table .cmsmasters_pricing_but_wrap {
  padding: 0 0 40px;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_pricing_table .cmsmasters_pricing_info_wrap + .cmsmasters_pricing_but_wrap {
  padding-top: 40px;
}
.cmsmasters_quote_mark {
  padding: 0px 0 0;
  height: 55px;
  overflow: hidden;
  text-align: center;
}
.cmsmasters_quote_mark::before {
  content: '“';
  font-family: 'Quicksand', Arial, Helvetica, 'Nimbus Sans L', sans-serif;
  font-weight: bold;
  font-size: 100px;
  height: 55px;
  line-height: 1;
  display: inline-block;
}
/***************** Google Maps ******************/
.resizable_block .google_map {
  position: absolute;
  width: 100%;
  left: 0;
  top: 0;
  height: 100%;
}
.google_map img {
  max-width: none;
}
/***************** Caption ******************/
.cmsmasters_img {
  display: inline-block;
  max-width: 100%;
}
.cmsmasters_img.cmsmasters_image_l {
  margin-right: 20px;
  float: left;
}
.cmsmasters_img.cmsmasters_image_r {
  margin-left: 20px;
  float: right;
}
.cmsmasters_img.with_caption {
  padding: 20px 20px 0 20px;
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_img .cmsmasters_img_caption {
  padding: 15px 0;
  text-align: center;
}
.wp-caption {
  max-width: 100%;
  padding: 0;
  margin-bottom: 20px;
}
.wp-caption.aligncenter {
  margin-left: auto;
  margin-right: auto;
}
.wp-caption.alignleft {
  margin-right: 25px;
}
.wp-caption.alignright {
  margin-left: 25px;
}
.wp-caption .wp-caption-text {
  padding: 10px 0;
  text-align: center;
}
/***************** WP Gallery ******************/
.gallery {
  position: relative;
  margin: 0 -1% 20px;
}
.gallery img {
  width: 100%;
  border: none;
}
.gallery .gallery-item {
  position: relative;
  float: left;
  margin: 0 1% 20px;
}
.gallery .gallery-item .wp-caption-text {
  word-wrap: break-word;
  padding: 5px;
  text-align: center;
}
.gallery.gallery-columns-1 .gallery-item {
  width: 98%;
  position: relative;
  float: none;
  display: block;
  clear: both;
}
.gallery.gallery-columns-2 .gallery-item {
  width: 48%;
}
.gallery.gallery-columns-2 .gallery-item:nth-child(2n+1) {
  display: block;
  clear: both;
}
.gallery.gallery-columns-3 .gallery-item {
  width: 31.333%;
}
.gallery.gallery-columns-3 .gallery-item:nth-child(3n+1) {
  display: block;
  clear: both;
}
.gallery.gallery-columns-4 .gallery-item {
  width: 23%;
}
.gallery.gallery-columns-4 .gallery-item:nth-child(4n+1) {
  display: block;
  clear: both;
}
.gallery.gallery-columns-5 .gallery-item {
  width: 18%;
}
.gallery.gallery-columns-5 .gallery-item:nth-child(5n+1) {
  display: block;
  clear: both;
}
.gallery.gallery-columns-6 .gallery-item {
  width: 14.667%;
}
.gallery.gallery-columns-6 .gallery-item:nth-child(6n+1) {
  display: block;
  clear: both;
}
.gallery.gallery-columns-7 .gallery-item {
  width: 12.286%;
}
.gallery.gallery-columns-7 .gallery-item:nth-child(7n+1) {
  display: block;
  clear: both;
}
.gallery.gallery-columns-8 .gallery-item {
  width: 10.5%;
}
.gallery.gallery-columns-8 .gallery-item:nth-child(8n+1) {
  display: block;
  clear: both;
}
.gallery.gallery-columns-9 .gallery-item {
  width: 9.111%;
}
.gallery.gallery-columns-9 .gallery-item:nth-child(9n+1) {
  display: block;
  clear: both;
}
.gallery:after,
.gallery-item:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.gallery-caption {
  outline: none;
}
/***************** Sidebar ******************/
.cmsmasters_sidebar {
  margin: 0 -1%;
}
.cmsmasters_sidebar aside {
  margin: 0 1%;
  float: left;
}
.sidebar_layout_14141414 aside {
  width: 23%;
}
.sidebar_layout_141412 > aside:first-child,
.sidebar_layout_141412 > aside:first-child + aside,
.sidebar_layout_141412 > div.cl + aside,
.sidebar_layout_141412 > div.cl + aside + aside,
.sidebar_layout_141412 > div.cmsmasters_widget_divider + aside,
.sidebar_layout_141412 > div.cmsmasters_widget_divider + aside + aside {
  width: 23%;
}
.sidebar_layout_141412 > aside:first-child + aside + aside,
.sidebar_layout_141412 > div.cl + aside + aside + aside,
.sidebar_layout_141412 > div.cmsmasters_widget_divider + aside + aside + aside {
  width: 48%;
}
.sidebar_layout_141214 > aside:first-child,
.sidebar_layout_141214 > aside:first-child + aside + aside,
.sidebar_layout_141214 > div.cl + aside,
.sidebar_layout_141214 > div.cl + aside + aside + aside,
.sidebar_layout_141214 > div.cmsmasters_widget_divider + aside,
.sidebar_layout_141214 > div.cmsmasters_widget_divider + aside + aside + aside {
  width: 23%;
}
.sidebar_layout_141214 > aside:first-child + aside,
.sidebar_layout_141214 > div.cl + aside + aside,
.sidebar_layout_141214 > div.cmsmasters_widget_divider + aside + aside {
  width: 48%;
}
.sidebar_layout_121414 > aside:first-child,
.sidebar_layout_121414 > div.cl + aside,
.sidebar_layout_121414 > div.cmsmasters_widget_divider + aside {
  width: 48%;
}
.sidebar_layout_121414 > aside:first-child + aside,
.sidebar_layout_121414 > aside:first-child + aside + aside,
.sidebar_layout_121414 > div.cl + aside + aside,
.sidebar_layout_121414 > div.cl + aside + aside + aside,
.sidebar_layout_121414 > div.cmsmasters_widget_divider + aside + aside,
.sidebar_layout_121414 > div.cmsmasters_widget_divider + aside + aside + aside {
  width: 23%;
}
.sidebar_layout_131313 aside {
  width: 31.33%;
}
.sidebar_layout_3414 > aside:first-child,
.sidebar_layout_3414 > div.cl + aside,
.sidebar_layout_3414 > div.cmsmasters_widget_divider + aside {
  width: 73%;
}
.sidebar_layout_3414 > aside:first-child + aside,
.sidebar_layout_3414 > div.cl + aside + aside,
.sidebar_layout_3414 > div.cmsmasters_widget_divider + aside + aside {
  width: 23%;
}
.sidebar_layout_1434 > aside:first-child,
.sidebar_layout_1434 > div.cl + aside,
.sidebar_layout_1434 > div.cmsmasters_widget_divider + aside {
  width: 23%;
}
.sidebar_layout_1434 > aside:first-child + aside,
.sidebar_layout_1434 > div.cl + aside + aside,
.sidebar_layout_1434 > div.cmsmasters_widget_divider + aside + aside {
  width: 73%;
}
.sidebar_layout_2313 > aside:first-child,
.sidebar_layout_2313 > div.cl + aside,
.sidebar_layout_2313 > div.cmsmasters_widget_divider + aside {
  width: 64.67%;
}
.sidebar_layout_2313 > aside:first-child + aside,
.sidebar_layout_2313 > div.cl + aside + aside,
.sidebar_layout_2313 > div.cmsmasters_widget_divider + aside + aside {
  width: 31.33%;
}
.sidebar_layout_1323 > aside:first-child,
.sidebar_layout_1323 > div.cl + aside,
.sidebar_layout_1323 > div.cmsmasters_widget_divider + aside {
  width: 31.33%;
}
.sidebar_layout_1323 > aside:first-child + aside,
.sidebar_layout_1323 > div.cl + aside + aside,
.sidebar_layout_1323 > div.cmsmasters_widget_divider + aside + aside {
  width: 64.67%;
}
.sidebar_layout_1212 aside {
  width: 48%;
}
.sidebar_layout_11 aside {
  width: 98%;
}
/***************** Share ******************/
.cmsmasters_sharing {
  overflow: hidden;
}
.share_wrap {
  float: left;
  margin-bottom: 20px;
  margin-right: 20px;
}
.share_wrap:last-child {
  margin-right: 0;
}
.social_vertical .share_wrap {
  float: none;
  margin-right: 0;
}
/***************** Twitter Stripe ******************/
.cmsmasters_twitter_wrap {
  position: relative;
  overflow: hidden;
}
.cmsmasters_twitter_wrap .owl-pagination {
  top: auto;
  bottom: 0;
}
.cmsmasters_twitter_wrap .owl-buttons {
  display: none;
}
.cmsmasters_twitter_wrap .twr_icon {
  text-align: center;
  margin-bottom: 30px;
  font-size: 37px;
}
.cmsmasters_twitter_wrap .twr_icon:before {
  margin: 0 !important;
}
.cmsmasters_twitter_wrap .cmsmasters_twitter {
  position: relative;
  padding-bottom: 45px;
}
.cmsmasters_twitter_wrap .cmsmasters_twitter_item {
  padding: 0 10%;
  position: relative;
}
.cmsmasters_twitter_wrap .published {
  text-align: center;
  display: block;
  margin-bottom: 25px;
}
.cmsmasters_twitter_wrap .cmsmasters_twitter_item_content {
  display: block;
  text-align: center;
}
/***************** Dropcap ******************/
.cmsmasters_dropcap {
  margin: 5px 33px 5px 23px;
  float: left;
}
.cmsmasters_dropcap.type1::first-letter {
  padding: 0 22px;
  float: left;
}
.cmsmasters_dropcap.type2 {
  margin-left: 30px;
  width: 67px;
  height: 67px;
  line-height: 62px;
  overflow: hidden;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  text-align: center;
}
/***************** Clients ******************/
.cmsmasters_clients_slider_wrap {
  padding: 55px 0 25px;
}
.cmsmasters_clients_slider {
  position: relative;
  margin: 0;
  padding: 0;
}
.cmsmasters_clients_slider.enable_slides_control {
  padding-bottom: 25px;
}
.cmsmasters_clients_slider.enable_arrow_control {
  padding-top: 55px;
}
.cmsmasters_clients_slider.cmsmasters_owl_slider .owl-buttons > div {
  margin: 0;
}
.cmsmasters_clients_slider.cmsmasters_owl_slider .owl-pagination {
  top: auto;
  bottom: -25px;
  display: block;
}
.cmsmasters_clients_slider .cmsmasters_owl_slider_item {
  min-width: 120px;
}
.cmsmasters_clients_item {
  font-size: 0;
  line-height: 180px;
  height: 180px;
  vertical-align: middle;
  position: relative;
  text-align: center;
}
.cmsmasters_clients_item img {
  display: inline-block;
  padding: 0 10px;
  max-width: 100%;
  max-height: 100%;
  height: auto;
  width: auto;
  vertical-align: middle;
}
.cmsmasters_clients_item a {
  line-height: 180px;
  display: block;
  height: 100%;
}
.cmsmasters_clients_item:hover {
  outline: none;
}
.cmsmasters_clients_grid {
  overflow: hidden;
}
.cmsmasters_clients_grid.clients_five .cmsmasters_clients_item {
  width: 20%;
}
.cmsmasters_clients_grid.clients_four .cmsmasters_clients_item {
  width: 25%;
}
.cmsmasters_clients_grid.clients_three .cmsmasters_clients_item {
  width: 33.33%;
}
.cmsmasters_clients_grid.clients_two .cmsmasters_clients_item {
  width: 50%;
}
.cmsmasters_clients_grid .cmsmasters_clients_items {
  height: auto;
}
.cmsmasters_clients_grid .cmsmasters_clients_item {
  margin-bottom: 20px;
  float: left;
}
.cmsmasters_clients_grid .cmsmasters_clients_item img {
  -webkit-transform: scale(0.5);
  -moz-transform: scale(0.5);
  transform: scale(0.5);
  opacity: 0.1;
}
.cmsmasters_clients_grid .cmsmasters_clients_item.shortcode_animated img {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}
.cmsmasters_clients_grid.clients_one .cmsmasters_clients_item:last-child,
.cmsmasters_clients_grid.clients_one .cmsmasters_clients_item {
  width: 100%;
  float: none;
  height: auto;
  line-height: 0;
}
.cmsmasters_clients_grid.clients_two .cmsmasters_clients_item:nth-child(2n+1),
.cmsmasters_clients_grid.clients_three .cmsmasters_clients_item:nth-child(3n+1),
.cmsmasters_clients_grid.clients_four .cmsmasters_clients_item:nth-child(4n+1),
.cmsmasters_clients_grid.clients_five .cmsmasters_clients_item:nth-child(5n+1) {
  clear: both;
}
/*-------------------------------------------------------------------------*/
/* Widgets Styles
/*-------------------------------------------------------------------------*/
.widget {
  position: relative;
  padding: 0 0 50px;
}
.widget .widgettitle {
  margin-bottom: 25px;
}
/***************** Widget Advertisement ******************/
.widget_custom_advertisement_entries .widgettitle {
  margin-bottom: 20px;
}
.widget_custom_advertisement_entries .adv_image_wrap {
  margin: -5px;
  overflow: hidden;
}
.widget_custom_advertisement_entries .adv_image_wrap .adv_widget_image {
  width: 125px;
  height: 125px;
  float: left;
  margin: 5px;
}
/***************** Widget Lists ******************/
.widget_pages ul,
.widget_categories ul,
.widget_archive ul,
.widget_meta ul,
.widget_recent_comments ul,
.widget_recent_entries ul {
  margin: 0;
  padding: 0;
}
.widget_pages ul ul,
.widget_categories ul ul,
.widget_archive ul ul,
.widget_meta ul ul,
.widget_recent_comments ul ul,
.widget_recent_entries ul ul {
  margin: 0 0 0px;
  padding: 4px 0 0 10px;
}
.widget_pages ul li,
.widget_categories ul li,
.widget_archive ul li,
.widget_meta ul li,
.widget_recent_comments ul li,
.widget_recent_entries ul li {
  margin: 0;
  padding: 0px 0 5px;
}
.widget_pages ul li:before,
.widget_categories ul li:before,
.widget_archive ul li:before,
.widget_meta ul li:before,
.widget_recent_comments ul li:before,
.widget_recent_entries ul li:before {
  content: none;
  display: none;
}
.widget_pages ul li a,
.widget_categories ul li a,
.widget_archive ul li a,
.widget_meta ul li a,
.widget_recent_comments ul li a,
.widget_recent_entries ul li a {
  outline: none;
}
.widget_pages .post-date,
.widget_categories .post-date,
.widget_archive .post-date,
.widget_meta .post-date,
.widget_recent_comments .post-date,
.widget_recent_entries .post-date {
  display: block;
  margin: -3px 0 0;
}
.widget_text ul li {
  padding: 0px 0 10px;
  margin-bottom: 0;
}
.widget_text ul li:before {
  content: none;
  display: none;
}
.widget_recent_entries ul li {
  padding-bottom: 10px;
}
.widget_pages ul li,
.widget_nav_menu ul li {
  padding: 0;
}
.widget_pages ul li a,
.widget_nav_menu ul li a {
  padding: 8px 0 8px;
  display: block;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.widget_pages .widgettitle {
  margin-bottom: 10px;
}
.widget_categories .screen-reader-text,
.widget_archive .screen-reader-text {
  display: none;
}
/***************** Widget Calendar ******************/
#wp-calendar {
  border-spacing: 0;
  width: 100%;
  min-width: 200px;
  max-width: 400px;
}
#wp-calendar caption {
  text-align: left;
  padding: 0 0 20px;
}
#wp-calendar td,
#wp-calendar th {
  padding: 5px 0;
}
#wp-calendar tfoot td {
  overflow: hidden;
  padding-top: 25px;
}
#wp-calendar tfoot td a::before {
  font-family: "fontello-custom";
  position: absolute;
  font-size: 0.7em;
}
#wp-calendar tfoot #prev a {
  margin-left: -0.1em;
}
#wp-calendar tfoot #prev a::before {
  content: '\e89d';
  left: 0;
}
#wp-calendar tfoot #next {
  text-align: right;
}
#wp-calendar tfoot #next a {
  text-align: right;
  margin-right: -0.1em;
}
#wp-calendar tfoot #next a::before {
  content: '\e89c';
  right: 0;
}
#wp-calendar tfoot a {
  display: inline-block;
  overflow: hidden;
}
/***************** Widget Contact Form ******************/
.widget_custom_contact_form_entries input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range]),
.widget_custom_contact_form_entries textarea,
.widget_custom_contact_form_entries select {
  width: 100%;
}
.widget_custom_contact_form_entries .form_info.submit_wrap {
  padding-top: 0;
}
/***************** Widget Contact Info ******************/
.widget_custom_contact_info_entries {
  position: relative;
  overflow: hidden;
}
.widget_custom_contact_info_entries > span,
.widget_custom_contact_info_entries .adress_wrap {
  display: block;
  margin: 20px 0 0;
  padding: 0 0 0 35px;
  position: relative;
}
.widget_custom_contact_info_entries > span:first-child,
.widget_custom_contact_info_entries .adress_wrap:first-child {
  margin: 0;
}
.widget_custom_contact_info_entries > span:before,
.widget_custom_contact_info_entries .adress_wrap:before {
  font-size: 16px;
  line-height: 18px;
  text-align: center;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: -2px;
  bottom: 0;
}
.widget_custom_contact_info_entries .adress_wrap span {
  display: block;
}
.widget_custom_contact_info_entries .adress_wrap:before {
  top: 0;
  bottom: auto;
}
/***************** Widget Custom Menu ******************/
.widget_nav_menu {
  position: relative;
  overflow: hidden;
}
.widget_nav_menu ul {
  margin: 0;
  padding: 0;
}
.widget_nav_menu ul li {
  margin: 0;
  padding: 0;
}
.widget_nav_menu ul li:before {
  content: none;
}
.widget_nav_menu ul li a {
  display: block;
}
.widget_nav_menu ul li a:empty {
  display: none;
}
.widget_nav_menu .menu {
  position: relative;
}
.widget_nav_menu .menu > li {
  padding: 0 1px 5px;
}
.widget_nav_menu .menu > li > a {
  padding: 10px 20px;
  position: relative;
}
.widget_nav_menu .menu ul {
  padding: 0px 0 0px 10px;
}
/***************** Widget Facebook ******************/
.widget_custom_facebook_entries iframe {
  margin-bottom: 0;
}
/***************** Widget Flickr ******************/
.widget_custom_flickr_entries .wrap {
  margin: 0 -7px;
}
.widget_custom_flickr_entries .more_button {
  display: none;
}
.widget_custom_flickr_entries .flickr_badge_image {
  margin: 0 7px 18px;
  float: left;
}
/***************** Widget Latest and Popular Projects ******************/
.widget_custom_popular_projects_entries,
.widget_custom_latest_projects_entries {
  position: relative;
}
.widget_custom_popular_projects_entries .widgettitle,
.widget_custom_latest_projects_entries .widgettitle {
  padding: 0 70px 0 0;
}
.widget_custom_popular_projects_entries .widget_custom_projects_entries_slides,
.widget_custom_latest_projects_entries .widget_custom_projects_entries_slides {
  padding: 40px 0 0;
}
.widget_custom_popular_projects_entries .widgettitle + .widget_custom_projects_entries_slides,
.widget_custom_latest_projects_entries .widgettitle + .widget_custom_projects_entries_slides {
  padding: 0;
}
.widget_custom_popular_projects_entries .widgettitle + .widget_custom_projects_entries_slides .owl-buttons,
.widget_custom_latest_projects_entries .widgettitle + .widget_custom_projects_entries_slides .owl-buttons {
  width: auto;
  left: auto;
  right: 0;
  top: -50px;
}
.widget_custom_popular_projects_entries .widgettitle + .widget_custom_projects_entries_slides .owl-pagination,
.widget_custom_latest_projects_entries .widgettitle + .widget_custom_projects_entries_slides .owl-pagination {
  display: none;
}
.widget_custom_popular_projects_entries .cmsmasters_slider_project,
.widget_custom_latest_projects_entries .cmsmasters_slider_project {
  padding: 0 1px 2px;
}
/***************** Widget Posts Tabs ******************/
.widget_custom_posts_tabs_entries {
  position: relative;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs {
  position: relative;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tabs_list_item {
  display: inline-block;
  margin: 0;
  padding: 0;
  float: left;
  margin-left: -1px;
  margin-right: -1px;
  perspective: 1px;
  -webkit-border-radius: 5px 10px 0px 0;
  border-radius: 5px 10px 0px 0;
  overflow: hidden;
  border-width: 1px;
  border-style: solid;
  text-align: center;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tabs_list_item.current_tab {
  border-bottom-color: transparent;
  background-color: transparent;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tabs_list_item:first-child {
  margin-left: 0;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tabs_list_item a {
  padding: 6px 0px;
  outline: none;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tabs_wrap {
  padding: 30px 20px;
  position: relative;
  overflow: hidden;
  border-width: 1px;
  border-style: solid;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tabs_wrap > .cmsmasters_tab:first-child {
  display: block;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab ul {
  margin: 0;
  padding: 0;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab li {
  margin: 10px 0 0;
  padding: 0;
  position: relative;
  overflow: hidden;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab li a {
  display: inline-block;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab li:first-child {
  margin: 0;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab li:before {
  content: none;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab li p {
  margin: 0;
  padding: 0;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab.tab_latest li:after,
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab.tab_popular li:after {
  content: '';
  display: inline-block;
  vertical-align: middle;
  height: 100%;
  height: 60px;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tab.tab_comments li > p {
  margin: 0;
  padding: 10px 0 0;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_lpr_tabs_img {
  margin-right: 20px;
  z-index: 1;
  overflow: hidden;
  width: 60px;
  height: 60px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: 0;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_lpr_tabs_cont {
  display: inline-block;
  vertical-align: middle;
  padding: 0 0 0 80px;
  position: relative;
  overflow: hidden;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_lpr_tabs_cont > a {
  outline: none;
}
.widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_lpr_tabs_cont > .published {
  margin-top: -2px;
  display: block;
}
/***************** Widget RSS ******************/
.widget_rss {
  position: relative;
}
.widget_rss .widgettitle::before {
  content: '\e851';
  font-family: "fontello-custom";
  margin-right: 5px;
}
.widget_rss img {
  display: none;
}
.widget_rss ul {
  margin: 0;
  padding: 0;
}
.widget_rss ul li {
  margin: 0;
  padding: 20px 0 0;
}
.widget_rss ul li:first-child {
  padding: 0;
}
.widget_rss ul li:before {
  content: none;
}
.widget_rss ul li .rsswidget {
  outline: none;
}
.widget_rss ul li .rss-date {
  display: block;
}
.widget_rss ul li .rssSummary {
  padding: 5px 0 0;
  overflow: hidden;
}
.widget_rss ul li cite {
  display: block;
  padding: 7px 0 0;
}
/***************** Widget Tag Cloud ******************/
.widget_tag_cloud {
  position: relative;
  overflow: hidden;
}
.widget_tag_cloud .tagcloud {
  margin-right: -10px;
  margin-bottom: -10px;
}
.widget_tag_cloud .tagcloud:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.widget_tag_cloud .tagcloud a {
  display: inline-block;
  float: left;
  margin: 0 10px 10px 0;
  padding: 5px 10px;
  border-width: 1px;
  border-style: solid;
}
.widget_tag_cloud a {
  line-height: 1em;
  display: inline-block;
  margin: 0 4px 0 0;
}
.widget_tag_cloud a:last-child {
  margin: 0;
}
/***************** Widget Twitter ******************/
.widget_custom_twitter_entries {
  position: relative;
  overflow: hidden;
}
.widget_custom_twitter_entries ul {
  margin: 0;
  padding: 0;
}
.widget_custom_twitter_entries ul li {
  margin: 0 0 25px;
  padding: 32px 0 0;
  position: relative;
}
.widget_custom_twitter_entries ul li:last-child {
  margin: 0;
}
.widget_custom_twitter_entries ul li:before {
  content: none;
}
.widget_custom_twitter_entries .tweet_time {
  display: block;
  padding: 0 0 0 35px;
  position: absolute;
  left: 0;
  top: 0;
}
.widget_custom_twitter_entries .tweet_time:before {
  font-size: 22px;
  line-height: 22px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: 0;
}
.widget_custom_twitter_entries .tweet_text {
  display: block;
  padding: 10px 0px 10px;
  overflow: hidden;
}
/*-------------------------------------------------------------------------*/
/* Search + Archives + Sitemap + Error + Other Styles
/*-------------------------------------------------------------------------*/
/***************** Archives + Search ******************/
.cmsmasters_search,
.cmsmasters_archive {
  position: relative;
  overflow: hidden;
}
.cmsmasters_search > .about_author,
.cmsmasters_archive > .about_author {
  padding: 0 0 50px;
}
.cmsmasters_search > .cmsmasters_wrap_pagination,
.cmsmasters_archive > .cmsmasters_wrap_pagination {
  padding: 50px 0 0;
}
.cmsmasters_search .cmsmasters_search_zero .search_bar_wrap,
.cmsmasters_archive .cmsmasters_search_zero .search_bar_wrap {
  max-width: 400px;
}
.content .cmsmasters_search .cmsmasters_search_zero,
.content .cmsmasters_archive .cmsmasters_search_zero {
  text-align: left;
}
.content .cmsmasters_search .cmsmasters_search_zero.tar,
.content .cmsmasters_archive .cmsmasters_search_zero.tar {
  float: none;
}
.middle_content .cmsmasters_search .cmsmasters_search_zero,
.middle_content .cmsmasters_archive .cmsmasters_search_zero {
  max-width: 650px;
}
.middle_content .cmsmasters_search .cmsmasters_search_zero.tac,
.middle_content .cmsmasters_archive .cmsmasters_search_zero.tac {
  margin: 0 auto;
}
.cmsmasters_archive_type {
  padding: 0px 0 50px;
  overflow: hidden;
}
.cmsmasters_archive_type:first-of-type {
  padding-top: 0;
}
.cmsmasters_archive_type .preloader.highImg {
  height: auto;
  padding: 0;
}
.cmsmasters_archive_type .cmsmasters_archive_item_img_wrap {
  margin: 0 4.5% 0 0;
  width: 43%;
  float: left;
}
.cmsmasters_archive_type .cmsmasters_archive_item_img_wrap .cmsmasters_img_wrap {
  overflow: hidden;
}
.cmsmasters_archive_type .cmsmasters_archive_item_img_wrap .cmsmasters_img_wrap img {
  height: auto;
}
.cmsmasters_archive_type .cmsmasters_archive_item_img_wrap + .cmsmasters_archive_item_cont_wrap {
  padding-top: 3px;
}
.cmsmasters_archive_type .cmsmasters_archive_item_cont_wrap {
  overflow: hidden;
}
.cmsmasters_archive_type .cmsmasters_archive_item_type {
  padding-bottom: 13px;
  overflow: hidden;
}
.cmsmasters_archive_type .cmsmasters_archive_item_header {
  padding: 0 0 10px;
}
.cmsmasters_archive_type .cmsmasters_archive_item_title {
  word-wrap: break-word;
  margin: 0px 0 0px;
}
.cmsmasters_archive_type .cmsmasters_archive_item_content {
  padding: 0 0 10px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_archive_type .cmsmasters_archive_item_content p {
  padding: 0;
}
.cmsmasters_archive_type .cmsmasters_archive_item_info {
  padding: 4px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_archive_type .cmsmasters_archive_item_info:before {
  content: '';
  width: 100%;
  height: 1px;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_archive_type .cmsmasters_archive_item_date_wrap {
  display: inline-block;
  margin-bottom: 12px;
}
.cmsmasters_archive_type .cmsmasters_archive_item_date_wrap + .cmsmasters_archive_item_user_name {
  padding: 0 0 0 15px;
}
.cmsmasters_archive_type .cmsmasters_archive_item_user_name {
  display: inline-block;
  margin-bottom: 12px;
}
.cmsmasters_archive_type .cmsmasters_archive_item_category + .cmsmasters_likes,
.cmsmasters_archive_type .cmsmasters_archive_item_category + .cmsmasters_comments {
  margin-left: 15px;
}
.cmsmasters_archive_type .cmsmasters_post_read_more {
  outline: none;
  display: inline-block;
  letter-spacing: -0.15px;
  line-height: 1;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_archive_type .profile_social_icons li {
  padding: 0;
  display: inline-block;
  margin-right: 5px;
}
.cmsmasters_archive_type .profile_social_icons li:last-child {
  margin-left: 0;
}
.cmsmasters_archive_type .profile_social_icons li::before {
  display: none;
}
/***************** Sitemap ******************/
.cmsmasters_sitemap_wrap {
  position: relative;
  overflow: hidden;
}
.cmsmasters_sitemap_wrap ul,
.cmsmasters_sitemap_wrap ol,
.cmsmasters_sitemap_wrap li {
  margin: 0;
  padding: 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_sitemap_wrap ul:before,
.cmsmasters_sitemap_wrap ol:before,
.cmsmasters_sitemap_wrap li:before {
  content: none;
}
.cmsmasters_sitemap_wrap .cmsmasters_divider {
  margin-bottom: 30px;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap {
  padding: 0;
  margin: 0;
  overflow: hidden;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li {
  width: 100%;
  padding-top: 30px;
  position: relative;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li:before {
  content: '';
  display: block;
  width: 100%;
  height: 2px;
  position: absolute;
  left: 0;
  top: 0;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li:first-child {
  margin-top: 0;
  padding-top: 0;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li:first-child:before {
  content: none;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > a {
  display: inline-block;
  margin-bottom: 35px;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > a + ul {
  margin-top: -10px;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul {
  width: 100%;
  overflow: hidden;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li {
  width: 25%;
  padding-top: 0;
  padding-right: 20px;
  margin-bottom: 40px;
  float: left;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(5),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(9),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(13),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(17),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(21),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(25),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(29),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(33),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(37),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(41),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li:nth-child(45) {
  clear: both;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li > ul {
  padding-top: 20px;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li > ul ul {
  padding-top: 10px;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li > ul li {
  margin-left: 20px;
  padding-top: 10px;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li > ul li:first-child {
  padding-top: 0;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li > ul > li {
  margin-left: 0;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category {
  padding: 5px 0 0;
  margin: 0;
  overflow: hidden;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li {
  width: 25%;
  padding-right: 20px;
  margin-bottom: 40px;
  float: left;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(5),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(9),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(13),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(17),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(21),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(25),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(29),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(33),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(37),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(41),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li:nth-child(45) {
  clear: both;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li > ul {
  padding-top: 20px;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li > ul ul {
  padding-top: 10px;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li > ul li {
  margin-left: 20px;
  padding-top: 10px;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li > ul li:first-child {
  padding-top: 0;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_category > li > ul > li {
  margin-left: 0;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive {
  padding: 5px 0 20px;
  margin: 0;
  overflow: hidden;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li {
  width: 25%;
  margin-bottom: 20px;
  padding-right: 20px;
  float: left;
}
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(5),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(9),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(13),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(17),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(21),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(25),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(29),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(33),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(37),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(41),
.cmsmasters_sitemap_wrap .cmsmasters_sitemap_archive > li:nth-child(45) {
  clear: both;
}
/***************** Error ******************/
.error {
  padding: 5% 0 0;
  overflow: hidden;
}
.error .error_inner {
  padding: 0 0 30px;
}
.error .error_title {
  font-size: 200px;
  line-height: 1em;
  letter-spacing: -5px;
  margin: 0;
  padding: 0 0 3.7%;
  text-align: center;
}
.error .error_subtitle {
  text-align: center;
  margin: 0;
  padding: 0 38%;
}
.error_cont {
  padding: 30px 0 25px;
  text-align: center;
}
.error_cont .search_bar_wrap {
  display: inline-block;
  vertical-align: middle;
  width: 270px;
  max-width: 100%;
  margin: 0 20px 45px;
}
.error_cont .error_button_wrap {
  display: block;
  vertical-align: middle;
  text-align: center;
}
/***************** Attachment Page ******************/
.cmsmasters_attach_img {
  padding: 40px 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_attach_img .cmsmasters_attach_img_info {
  padding: 0 0 20px;
  margin: 0 0 30px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_attach_img .cmsmasters_attach_img_edit {
  margin: 0;
  padding: 0;
  float: right;
}
.cmsmasters_attach_img .cmsmasters_attach_img_meta {
  margin: 0;
  padding: 0;
  overflow: hidden;
}
/***************** Other ******************/
#main .with_frm_style .frm_form_fields input,
#main #wpcontent .with_frm_style .frm_form_fields select,
#main .with_frm_style .frm_form_fields select,
#main .with_frm_style .frm_form_fields textarea {
  padding: 22px;
}
#lang_sel ul {
  overflow: visible;
}
#lang_sel_footer {
  display: none;
}
/*-------------------------------------------------------------------------*/
/* Contact Forms Styles
/*-------------------------------------------------------------------------*/
.cmsmasters-form-builder {
  margin: 0 -1%;
}
.cmsmasters-form-builder .success_box {
  margin: 0 1% 10px;
  width: 98%;
}
.cmsmasters-form-builder .form_info {
  margin: 0 1%;
  padding-bottom: 20px !important;
}
.cmsmasters-form-builder .form_info.submit_wrap {
  padding-top: 10px;
}
.cmsmasters-form-builder .form_info.submit_wrap .cmsmasters_button {
  min-width: 145px;
}
.cmsmasters-form-builder [class*="one_"] input[type="text"],
.cmsmasters-form-builder [class*="one_"] select,
.cmsmasters-form-builder [class*="one_"] textarea {
  width: 100%;
}
select {
  min-width: 100px;
}
select[multiple] {
  height: auto;
}
span.wpcf7-list-item {
  display: block;
}
.wpcf7-list-item-label,
body .cmsmasters-form-builder .check_parent input[type="checkbox"] + label,
body .cmsmasters-form-builder .check_parent input[type="radio"] + label {
  padding-left: 25px;
  padding-right: 0;
  position: relative;
  cursor: pointer;
  float: left;
}
.wpcf7-list-item label {
  position: relative;
  display: block;
  overflow: hidden;
  padding: 5px 0;
}
.cmsmasters-form-builder .check_parent input[type="checkbox"],
.cmsmasters-form-builder .check_parent input[type="radio"],
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="checkbox"],
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="radio"] {
  float: left;
  opacity: 0;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: 0;
}
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="checkbox"] + span.wpcf7-list-item-label:before,
.cmsmasters-form-builder .check_parent input[type="checkbox"] + label:before,
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="radio"] + span.wpcf7-list-item-label:before,
.cmsmasters-form-builder .check_parent input[type="radio"] + label:before {
  content: '';
  border-width: 1px;
  border-style: solid;
  width: 17px;
  height: 17px;
  margin: auto !important;
  position: absolute;
  left: 1px;
  right: auto;
  top: 0;
  bottom: 0;
}
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="radio"] + span.wpcf7-list-item-label:before,
.cmsmasters-form-builder .check_parent input[type="radio"] + label:before {
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="checkbox"] + span.wpcf7-list-item-label:after,
.cmsmasters-form-builder .check_parent input[type="checkbox"] + label:after,
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="radio"] + span.wpcf7-list-item-label:after,
.cmsmasters-form-builder .check_parent input[type="radio"] + label:after {
  content: '';
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  transform: scale(0);
  width: 9px;
  height: 9px;
  margin: auto !important;
  position: absolute;
  left: 5px;
  right: auto;
  top: 0;
  bottom: 0;
  opacity: 0;
}
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="radio"] + span.wpcf7-list-item-label:after,
.cmsmasters-form-builder .check_parent input[type="radio"] + label:after {
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="checkbox"]:checked + span.wpcf7-list-item-label:after,
.cmsmasters-form-builder .check_parent input[type="checkbox"]:checked + label:after,
.wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="radio"]:checked + span.wpcf7-list-item-label:after,
.cmsmasters-form-builder .check_parent input[type="radio"]:checked + label:after {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}
/*-------------------------------------------------------------------------*/
/* CSS3 Animations
/*-------------------------------------------------------------------------*/
html.csstransitions {
  /* Custom Animations */
  /* Global Animations */
}
html.csstransitions input:not([type=button]):not([type=checkbox]):not([type=file]):not([type=hidden]):not([type=image]):not([type=radio]):not([type=reset]):not([type=submit]):not([type=color]):not([type=range]),
html.csstransitions textarea,
html.csstransitions select {
  -webkit-transition: border-color .2s ease-in-out;
  -moz-transition: border-color .2s ease-in-out;
  -ms-transition: border-color .2s ease-in-out;
  -o-transition: border-color .2s ease-in-out;
  transition: border-color .2s ease-in-out;
}
html.csstransitions .cmsmasters_header_search_form {
  -webkit-transition: opacity .5s ease-in-out, visibility .5s ease-in-out;
  -moz-transition: opacity .5s ease-in-out, visibility .5s ease-in-out;
  -ms-transition: opacity .5s ease-in-out, visibility .5s ease-in-out;
  -o-transition: opacity .5s ease-in-out, visibility .5s ease-in-out;
  transition: opacity .5s ease-in-out, visibility .5s ease-in-out;
}
html.csstransitions a,
html.csstransitions .img_placeholder_small,
html.csstransitions .cmsmasters_icon_wrap .cmsmasters_simple_icon_title,
html.csstransitions .cmsmasters_header_search_form button,
html.csstransitions .cmsmasters_header_search_form .cmsmasters_header_search_form_close,
html.csstransitions .cmsmasters_sitemap_wrap .cmsmasters_sitemap > li > ul > li > ul li a:before,
html.csstransitions .cmsmasters_open_post .cmsmasters_owl_slider .owl-buttons > div,
html.csstransitions .cmsmasters_post_default .cmsmasters_owl_slider .owl-buttons > div,
html.csstransitions .cmsmasters_post_timeline .cmsmasters_owl_slider .owl-buttons > div,
html.csstransitions .cmsmasters_open_project .cmsmasters_owl_slider .owl-buttons div,
html.csstransitions .owl-pagination .owl-page,
html.csstransitions .cmsmasters_notice .notice_close,
html.csstransitions .widget .type-tribe_events .cmsmasters_event_date_inner span {
  -webkit-transition: color .3s ease-in-out, background-color .3s ease-in-out, opacity .3s ease-in-out, border-color .3s ease-in-out;
  -moz-transition: color .3s ease-in-out, background-color .3s ease-in-out, opacity .3s ease-in-out, border-color .3s ease-in-out;
  -ms-transition: color .3s ease-in-out, background-color .3s ease-in-out, opacity .3s ease-in-out, border-color .3s ease-in-out;
  -o-transition: color .3s ease-in-out, background-color .3s ease-in-out, opacity .3s ease-in-out, border-color .3s ease-in-out;
  transition: color .3s ease-in-out, background-color .3s ease-in-out, opacity .3s ease-in-out, border-color .3s ease-in-out;
}
html.csstransitions .cmsmastersLike {
  -webkit-transition: none;
  -moz-transition: none;
  -ms-transition: none;
  -o-transition: none;
  transition: none;
}
html.csstransitions .cmsmastersLike::before {
  -webkit-transition: color .3s ease-in-out, background-color .3s ease-in-out, opacity .3s ease-in-out;
  -moz-transition: color .3s ease-in-out, background-color .3s ease-in-out, opacity .3s ease-in-out;
  -ms-transition: color .3s ease-in-out, background-color .3s ease-in-out, opacity .3s ease-in-out;
  -o-transition: color .3s ease-in-out, background-color .3s ease-in-out, opacity .3s ease-in-out;
  transition: color .3s ease-in-out, background-color .3s ease-in-out, opacity .3s ease-in-out;
}
html.csstransitions .cmsmasters_comments a::before {
  -webkit-transition: color .3s ease-in-out, background-color .3s ease-in-out, opacity .3s ease-in-out;
  -moz-transition: color .3s ease-in-out, background-color .3s ease-in-out, opacity .3s ease-in-out;
  -ms-transition: color .3s ease-in-out, background-color .3s ease-in-out, opacity .3s ease-in-out;
  -o-transition: color .3s ease-in-out, background-color .3s ease-in-out, opacity .3s ease-in-out;
  transition: color .3s ease-in-out, background-color .3s ease-in-out, opacity .3s ease-in-out;
}
html.csstransitions .header_mid,
html.csstransitions .header_bot {
  -webkit-transition: background-color .2s ease-in-out;
  -moz-transition: background-color .2s ease-in-out;
  -ms-transition: background-color .2s ease-in-out;
  -o-transition: background-color .2s ease-in-out;
  transition: background-color .2s ease-in-out;
}
html.csstransitions #page .cmsmasters_social_icon,
html.csstransitions .edge_only .cmsmasters_but_icon_inverse,
html.csstransitions #slide_top,
html.csstransitions .post_nav > span > span,
html.csstransitions .comments_nav > span::before,
html.csstransitions .widget_custom_latest_projects_entries .widgettitle + .widget_custom_projects_entries_slides .owl-buttons div {
  -webkit-transition: color .3s ease-in-out, background-color .3s ease-in-out;
  -moz-transition: color .3s ease-in-out, background-color .3s ease-in-out;
  -ms-transition: color .3s ease-in-out, background-color .3s ease-in-out;
  -o-transition: color .3s ease-in-out, background-color .3s ease-in-out;
  transition: color .3s ease-in-out, background-color .3s ease-in-out;
}
html.csstransitions nav > div > ul ul,
html.csstransitions nav > div > ul div {
  -webkit-transition: opacity .3s ease-in-out .1s, margin-top .3s ease-in-out .1s;
  -moz-transition: opacity .3s ease-in-out .1s, margin-top .3s ease-in-out .1s;
  -ms-transition: opacity .3s ease-in-out .1s, margin-top .3s ease-in-out .1s;
  -o-transition: opacity .3s ease-in-out .1s, margin-top .3s ease-in-out .1s;
  transition: opacity .3s ease-in-out .1s, margin-top .3s ease-in-out .1s;
}
html.csstransitions nav > div > ul ul ul {
  -webkit-transition: opacity .3s ease-in-out .1s, margin-left .3s ease-in-out .1s, margin-right .3s ease-in-out .1s;
  -moz-transition: opacity .3s ease-in-out .1s, margin-left .3s ease-in-out .1s, margin-right .3s ease-in-out .1s;
  -ms-transition: opacity .3s ease-in-out .1s, margin-left .3s ease-in-out .1s, margin-right .3s ease-in-out .1s;
  -o-transition: opacity .3s ease-in-out .1s, margin-left .3s ease-in-out .1s, margin-right .3s ease-in-out .1s;
  transition: opacity .3s ease-in-out .1s, margin-left .3s ease-in-out .1s, margin-right .3s ease-in-out .1s;
}
html.csstransitions nav > div > ul li a,
html.csstransitions .cmsmasters_icon_wrap .cmsmasters_simple_icon,
html.csstransitions .cmsmasters_tabs .cmsmasters_tabs_list_item {
  -webkit-transition: background-color .3s ease-in-out, color .3s ease-in-out, border-color .3s ease-in-out;
  -moz-transition: background-color .3s ease-in-out, color .3s ease-in-out, border-color .3s ease-in-out;
  -ms-transition: background-color .3s ease-in-out, color .3s ease-in-out, border-color .3s ease-in-out;
  -o-transition: background-color .3s ease-in-out, color .3s ease-in-out, border-color .3s ease-in-out;
  transition: background-color .3s ease-in-out, color .3s ease-in-out, border-color .3s ease-in-out;
}
html.csstransitions nav > div > ul li a .nav_subtitle {
  -webkit-transition: color .3s ease-in-out;
  -moz-transition: color .3s ease-in-out;
  -ms-transition: color .3s ease-in-out;
  -o-transition: color .3s ease-in-out;
  transition: color .3s ease-in-out;
}
html.csstransitions .header_top .header_top_but,
html.csstransitions .widget_pages ul li a,
html.csstransitions .widget_nav_menu ul li a,
html.csstransitions .widget_nav_menu ul li a {
  -webkit-transition: color .3s ease-in-out, border-color .3s ease-in-out;
  -moz-transition: color .3s ease-in-out, border-color .3s ease-in-out;
  -ms-transition: color .3s ease-in-out, border-color .3s ease-in-out;
  -o-transition: color .3s ease-in-out, border-color .3s ease-in-out;
  transition: color .3s ease-in-out, border-color .3s ease-in-out;
}
html.csstransitions .cmsmasters_toggles .cmsmasters_toggle_plus span {
  -webkit-transition: background-color .3s ease-in-out, height .1s ease-in-out;
  -moz-transition: background-color .3s ease-in-out, height .1s ease-in-out;
  -ms-transition: background-color .3s ease-in-out, height .1s ease-in-out;
  -o-transition: background-color .3s ease-in-out, height .1s ease-in-out;
  transition: background-color .3s ease-in-out, height .1s ease-in-out;
}
html.csstransitions .cmsmasters_hover_slider_thumbs > li img {
  -webkit-transition: opacity .4s ease-in-out, width .3s ease-in-out, left .3s ease-in-out, right .3s ease-in-out;
  -moz-transition: opacity .4s ease-in-out, width .3s ease-in-out, left .3s ease-in-out, right .3s ease-in-out;
  -ms-transition: opacity .4s ease-in-out, width .3s ease-in-out, left .3s ease-in-out, right .3s ease-in-out;
  -o-transition: opacity .4s ease-in-out, width .3s ease-in-out, left .3s ease-in-out, right .3s ease-in-out;
  transition: opacity .4s ease-in-out, width .3s ease-in-out, left .3s ease-in-out, right .3s ease-in-out;
}
html.csstransitions .cmsmasters_hover_slider_items > li {
  -webkit-transition: opacity .5s ease-in-out, visibility .5s ease-in-out;
  -moz-transition: opacity .5s ease-in-out, visibility .5s ease-in-out;
  -ms-transition: opacity .5s ease-in-out, visibility .5s ease-in-out;
  -o-transition: opacity .5s ease-in-out, visibility .5s ease-in-out;
  transition: opacity .5s ease-in-out, visibility .5s ease-in-out;
}
html.csstransitions .cmsmasters_hover_slider_thumbs > li a,
html.csstransitions .widget_custom_posts_tabs_entries .cmsmasters_tabs .cmsmasters_tabs_list_item {
  -webkit-transition: border-color 0.3s ease-in-out;
  -moz-transition: border-color 0.3s ease-in-out;
  -ms-transition: border-color 0.3s ease-in-out;
  -o-transition: border-color 0.3s ease-in-out;
  transition: border-color 0.3s ease-in-out;
}
html.csstransitions .cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs > li a:before,
html.csstransitions .cmsmasters_project_puzzle .project_outer .cmsmasters_img_rollover,
html.csstransitions .cmsmasters_project_puzzle .project_inner,
html.csstransitions .cmsmasters_profile_horizontal .cmsmasters_img_wrap + .profile_social_icons {
  -webkit-transition: opacity 0.4s ease-in-out;
  -moz-transition: opacity 0.4s ease-in-out;
  -ms-transition: opacity 0.4s ease-in-out;
  -o-transition: opacity 0.4s ease-in-out;
  transition: opacity 0.4s ease-in-out;
}
html.csstransitions .isotope > * {
  -webkit-transition: opacity 0.8s ease-in-out;
  -moz-transition: opacity 0.8s ease-in-out;
  -ms-transition: opacity 0.8s ease-in-out;
  -o-transition: opacity 0.8s ease-in-out;
  transition: opacity 0.8s ease-in-out;
}
html.csstransitions .cmsmasters_button,
html.csstransitions .cmsmasters_button.cmsmasters_but_clear_styles:before,
html.csstransitions .cmsmasters_button.cmsmasters_but_clear_styles:after {
  -webkit-transition: all .3s ease-in-out;
  -moz-transition: all .3s ease-in-out;
  -ms-transition: all .3s ease-in-out;
  -o-transition: all .3s ease-in-out;
  transition: all .3s ease-in-out;
}
html.csstransitions .cmsmasters_button.cmsmasters_but_icon_slide_left,
html.csstransitions .cmsmasters_button.cmsmasters_but_icon_slide_right {
  -webkit-transition: all .3s ease-in-out, color 0s ease-in-out;
  -moz-transition: all .3s ease-in-out, color 0s ease-in-out;
  -ms-transition: all .3s ease-in-out, color 0s ease-in-out;
  -o-transition: all .3s ease-in-out, color 0s ease-in-out;
  transition: all .3s ease-in-out, color 0s ease-in-out;
}
html.csstransitions .wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="checkbox"] + span.wpcf7-list-item-label:after,
html.csstransitions .cmsmasters-form-builder .check_parent input[type="checkbox"] + label:after,
html.csstransitions .wpcf7 form.wpcf7-form span.wpcf7-list-item input[type="radio"] + span.wpcf7-list-item-label:after,
html.csstransitions .cmsmasters-form-builder .check_parent input[type="radio"] + label:after {
  -webkit-transition: all .2s ease-out;
  -moz-transition: all .2s ease-out;
  -ms-transition: all .2s ease-out;
  -o-transition: all .2s ease-out;
  transition: all .2s ease-out;
}
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_top:before,
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_box_top:before,
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_box_left_top:before,
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_box_left:before,
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_heading_left h1:before,
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_heading_left h2:before,
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_heading_left h3:before,
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_heading_left h4:before,
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_heading_left h5:before,
html.csstransitions .cmsmasters_icon_box.cmsmasters_icon_heading_left h6:before {
  -webkit-transition: all 1s cubic-bezier(.55, .3, .5, 1.65);
  -moz-transition: all 1s cubic-bezier(.55, .3, .5, 1.65);
  -ms-transition: all 1s cubic-bezier(.55, .3, .5, 1.65);
  -o-transition: all 1s cubic-bezier(.55, .3, .5, 1.65);
  transition: all 1s cubic-bezier(.55, .3, .5, 1.65);
}
html.csstransitions .cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item:before {
  -webkit-transition: opacity 5s ease-in-out, height .8s ease-in;
  -moz-transition: opacity 5s ease-in-out, height .8s ease-in;
  -ms-transition: opacity 5s ease-in-out, height .8s ease-in;
  -o-transition: opacity 5s ease-in-out, height .8s ease-in;
  transition: opacity 5s ease-in-out, height .8s ease-in;
}
html.csstransitions .cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item .cmsmasters_icon_list_icon,
html.csstransitions .cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item .cmsmasters_icon_list_icon:after {
  -webkit-transition: all .5s ease-in-out;
  -moz-transition: all .5s ease-in-out;
  -ms-transition: all .5s ease-in-out;
  -o-transition: all .5s ease-in-out;
  transition: all .5s ease-in-out;
}
html.csstransitions .cmsmasters_icon_list_items.cmsmasters_icon_list_type_block .cmsmasters_icon_list_item .cmsmasters_icon_list_icon:before {
  -webkit-transition: color .4s ease-in-out, font-size .4s ease-in-out, line-height .4s ease-in;
  -moz-transition: color .4s ease-in-out, font-size .4s ease-in-out, line-height .4s ease-in;
  -ms-transition: color .4s ease-in-out, font-size .4s ease-in-out, line-height .4s ease-in;
  -o-transition: color .4s ease-in-out, font-size .4s ease-in-out, line-height .4s ease-in;
  transition: color .4s ease-in-out, font-size .4s ease-in-out, line-height .4s ease-in;
}
html.csstransitions .cmsmasters_clients_item img,
html.csstransitions .cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs a {
  -webkit-transition: all .5s ease-in-out;
  -moz-transition: all .5s ease-in-out;
  -ms-transition: all .5s ease-in-out;
  -o-transition: all .5s ease-in-out;
  transition: all .5s ease-in-out;
}
html.csstransitions .cmsmasters_profile .profile img {
  -webkit-transition: all .7s cubic-bezier(.55, .3, .5, 1.65);
  -moz-transition: all .7s cubic-bezier(.55, .3, .5, 1.65);
  -ms-transition: all .7s cubic-bezier(.55, .3, .5, 1.65);
  -o-transition: all .7s cubic-bezier(.55, .3, .5, 1.65);
  transition: all .7s cubic-bezier(.55, .3, .5, 1.65);
}
html.csstransitions .cmsmasters_profile .profile .pl_social_list {
  -webkit-transition: opacity .5s ease-out, margin .5s ease-out;
  -moz-transition: opacity .5s ease-out, margin .5s ease-out;
  -ms-transition: opacity .5s ease-out, margin .5s ease-out;
  -o-transition: opacity .5s ease-out, margin .5s ease-out;
  transition: opacity .5s ease-out, margin .5s ease-out;
}
html.csstransitions .cmsmasters_project_grid figure {
  -webkit-transition: opacity .7s ease-in-out;
  -moz-transition: opacity .7s ease-in-out;
  -ms-transition: opacity .7s ease-in-out;
  -o-transition: opacity .7s ease-in-out;
  transition: opacity .7s ease-in-out;
}
html.csstransitions .cmsmasters_project_puzzle .project_inner {
  -webkit-transition: transform .3s ease-in-out, opacity .3s ease;
  -moz-transition: transform .3s ease-in-out, opacity .3s ease;
  -ms-transition: transform .3s ease-in-out, opacity .3s ease;
  -o-transition: transform .3s ease-in-out, opacity .3s ease;
  transition: transform .3s ease-in-out, opacity .3s ease;
}
html.csstransitions .cmsmasters_stats.stats_mode_bars.stats_type_horizontal.shortcode_animated .cmsmasters_stat_inner {
  -webkit-animation: bar_move 2s ease-in;
  -moz-animation: bar_move 2s ease-in;
  -ms-animation: bar_move 2s ease-in;
  -o-animation: bar_move 2s ease-in;
  animation: bar_move 2s ease-in;
}
html.csstransitions .cmsmasters_stats.stats_mode_bars.stats_type_vertical.shortcode_animated .cmsmasters_stat_inner {
  -webkit-animation: bar_up 2s ease-in;
  -moz-animation: bar_up 2s ease-in;
  -ms-animation: bar_up 2s ease-in;
  -o-animation: bar_up 2s ease-in;
  animation: bar_up 2s ease-in;
}
html.csstransitions .cmsmasters_stats.stats_mode_bars.stats_type_horizontal.shortcode_animated .cmsmasters_stat_inner:before,
html.csstransitions .cmsmasters_stats.stats_mode_bars.shortcode_animated .cmsmasters_stat_inner .cmsmasters_stat_title {
  -webkit-animation: bar_title 2.2s ease-out;
  -moz-animation: bar_title 2.2s ease-out;
  -ms-animation: bar_title 2.2s ease-out;
  -o-animation: bar_title 2.2s ease-out;
  animation: bar_title 2.2s ease-out;
}
html.csstransitions .cmsmasters_stats.stats_mode_bars.stats_type_vertical.shortcode_animated .cmsmasters_stat_inner:before {
  -webkit-animation: bar_icon 2.2s ease-out;
  -moz-animation: bar_icon 2.2s ease-out;
  -ms-animation: bar_icon 2.2s ease-out;
  -o-animation: bar_icon 2.2s ease-out;
  animation: bar_icon 2.2s ease-out;
}
html.csstransitions .cmsmasters_stats.stats_mode_bars.shortcode_animated .cmsmasters_stat_inner .cmsmasters_stat_counter_wrap {
  -webkit-animation: bar_inner 1s ease-in-out;
  -moz-animation: bar_inner 1s ease-in-out;
  -ms-animation: bar_inner 1s ease-in-out;
  -o-animation: bar_inner 1s ease-in-out;
  animation: bar_inner 1s ease-in-out;
}
html.csstransitions .cmsmasters_column_sticky {
  -webkit-transition: -webkit-transform .3s ease, transform .3s ease;
  -moz-transition: -webkit-transform .3s ease, transform .3s ease;
  -ms-transition: -webkit-transform .3s ease, transform .3s ease;
  -o-transition: -webkit-transform .3s ease, transform .3s ease;
  transition: -webkit-transform .3s ease, transform .3s ease;
}
@-webkit-keyframes autofill {
  to {
    color: inherit;
    background: transparent;
  }
}
@-webkit-keyframes bar_move {
  from {
    width: 0;
  }
  to {
    width: 100%;
  }
}
@-moz-keyframes bar_move {
  from {
    width: 0;
  }
  to {
    width: 100%;
  }
}
@-o-keyframes bar_move {
  from {
    width: 0;
  }
  to {
    width: 100%;
  }
}
@keyframes bar_move {
  from {
    width: 0;
  }
  to {
    width: 100%;
  }
}
@-webkit-keyframes bar_up {
  from {
    -webkit-transform: translate(0, 100%);
  }
  to {
    -webkit-transform: translate(0, 0%);
  }
}
@-moz-keyframes bar_up {
  from {
    -moz-transform: translate(0, 100%);
  }
  to {
    -moz-transform: translate(0, 0%);
  }
}
@-o-keyframes bar_up {
  from {
    -o-transform: translate(0, 100%);
  }
  to {
    -o-transform: translate(0, 0%);
  }
}
@keyframes bar_up {
  from {
    transform: translate(0, 100%);
  }
  to {
    transform: translate(0, 0%);
  }
}
@-webkit-keyframes bar_title {
  from {
    margin-left: -200px;
  }
  to {
    margin-left: 0px;
  }
}
@-moz-keyframes bar_title {
  from {
    margin-left: -200px;
  }
  to {
    margin-left: 0px;
  }
}
@-o-keyframes bar_title {
  from {
    margin-left: -200px;
  }
  to {
    margin-left: 0px;
  }
}
@keyframes bar_title {
  from {
    margin-left: -200px;
  }
  to {
    margin-left: 0px;
  }
}
@-webkit-keyframes bar_icon {
  from {
    margin-right: -200px;
  }
  to {
    margin-right: 0px;
  }
}
@-moz-keyframes bar_icon {
  from {
    margin-right: -200px;
  }
  to {
    margin-right: 0px;
  }
}
@-o-keyframes bar_icon {
  from {
    margin-right: -200px;
  }
  to {
    margin-right: 0px;
  }
}
@keyframes bar_icon {
  from {
    margin-right: -200px;
  }
  to {
    margin-right: 0px;
  }
}
@-webkit-keyframes bar_inner {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@-moz-keyframes bar_inner {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@-o-keyframes bar_inner {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes bar_inner {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes slide_top {
  from {
    -webkit-transform: translate(0, 150%);
    transform: translate(0, 150%);
  }
  to {
    -webkit-transform: translate(0, 0%);
    transform: translate(0, 0%);
  }
}
@-webkit-keyframes slide_top {
  from {
    -webkit-transform: translate(0, 150%);
    transform: translate(0, 150%);
  }
  to {
    -webkit-transform: translate(0, 0%);
    transform: translate(0, 0%);
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdlbmVyYWwubGVzcyIsInN0eWxlLmxlc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtXQTtFQUNDLGlCQUFBOztBQUVBLHFCQUFDO0VBQ0EsU0FBUyxFQUFUO0VBQ0Esa0JBQUE7RUFDQSxNQUFBO0VBQ0EsU0FBQTtFQUNBLFlBQUE7RUFDQSxVQUFBO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxZQUFBO0VBQ0EsY0FBQTtFQWhQRCx1QkFBQTtFQUNBLHlCQUFBOztBQ3NCRDtFQUNDLFlBQUE7O0FBS0MsS0FBTSxXQURQO0VBRUUsZUFBQTtFQUNBLFlBQUE7O0FBT0QsR0FEQSxDQUNDO0VBQ0Esa0JBQUE7O0FBS0g7RUFDQywwQkFBQTtFQUNBLHFCQUFBO0VBQ0Esd0NBQUE7O0FBSUEsNEJBQUM7RUFDQSxzQkFBQTs7QUFJRjtFQUNDLHFCQUFBOztBQUtBLG9CQUFFO0FBQUYsaUJBQUU7QUFDRixvQkFBRTtBQUFGLGlCQUFFO0VBQ0QsZ0JBQUE7O0FBSUY7RUFDQyxxQkFBQTs7QUFHRDtFQUNDLHFCQUFBOztBQUdEO0VBQ0MscUJBQUE7O0FBR0Q7RUFDQyxxQkFBQTs7QUFHRDtFQUNDLHFCQUFBOzs7OztBQU9EO0VBQ0MsZ0JBQUE7O0FBRUEsSUFBQyxTQUFVLE1BQUssSUFBSSx1QkFDbkI7RUFDQyxlQUFBO0VBQ0EsT0FBQTtFQUNBLFNBQUE7RUFDQSxZQUFBOztBQUtIO0VBQ0MsZ0JBQUE7O0FBR0Q7RUFDQyxpQkFBQTtFQUNBLFNBQUE7O0FBR0Q7RUFDQyxnQkFBQTs7QUFHRDtFQUNDLGdCQUFBOztBQUdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNDLFVBQUE7RUFDQSxnQkFB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Q0EsV0FBVyxrQkFBWDs7RUFFRDtJQUNDLG1CQUFtQixnQkFBbkI7SUFDQSxXQUFXLGdCQUFYIiwic291cmNlc0NvbnRlbnQiOlsiQGlucHV0X3BhZDogMjJweDtcclxuQGlucHV0X2hlaWdodDogNDZweDtcclxuXHJcbkBsaW5lX2hlaWdodF9wYWQ6IDIwcHg7XHJcbkBkZWZhdWx0X2xpc3RfdG9wX3BhZDogMTBweDtcclxuQGRlZmF1bHRfbGlzdF9sZWZ0X3BhZDogMjBweDtcclxuQGJsb2Nrc19ob3JfcGFkOiAxNXB4O1xyXG5AY29udF9zaWRlYmFyX3BhZDogNDBweDtcclxuQGNvbnRfdmVydF9wYWQ6IDUlO1xyXG5cclxuQGJkcnNfd2lkdGg6IDRweDtcclxuXHJcbkBidXRfYmRyc193aWR0aDogMjVweDtcclxuQGJ1dF9iZF93aWR0aDogMDtcclxuXHJcbkBjb2xfbWFyOiAxJTtcclxuQHJlc3BfYmxvY2tzX3BhZDogNTUuOCU7XHJcblxyXG5AcHJlbG9hZGVyX2Jsb2dfZGVmYXVsdF9wYWQ6IDU1LjglO1xyXG5AcHJlbG9hZGVyX2Jsb2dfbWFzb25yeV9wYWQ6IDY0LjYlO1xyXG5AcHJlbG9hZGVyX2Jsb2dfdGltZWxpbmVfcGFkOiA1NS44JTtcclxuQHByZWxvYWRlcl9vcGVuX3Bvc3RfcGFkOiA1NS44JTtcclxuQHByZWxvYWRlcl9wb3J0Zm9saW9fZ3JpZF9wYWQ6IDY3LjIlO1xyXG5AcHJlbG9hZGVyX29wZW5fcHJvamVjdF9wYWQ6IDU1LjglO1xyXG5AcHJlbG9hZGVyX3Bvc3RzX3NsaWRlcl9wYWQ6IDY3LjIlO1xyXG5AcHJlbG9hZGVyX2FyY2hpdmVzX3BhZDogMTAwJTtcclxuXHJcbkBzaWRlYmFyX3dpZHRoOiAyNiU7XHJcbkBjb250ZW50X3dpZHRoOiAxMDAlIC0gQHNpZGViYXJfd2lkdGg7XHJcblxyXG5cclxuQG1pZF9uYXZfZHJvcGRvd25fd2lkdGg6IDIwN3B4O1xyXG5AbWlkX25hdl9kcm9wZG93bl9wYWRfdG9wOiAxMHB4O1xyXG5AbWlkX25hdl9kcm9wZG93bl9wYWRfYm90OiAxNXB4O1xyXG5AbWlkX25hdl9kcm9wZG93bl92ZXJ0X21hcl9zdGFydDogMjBweDtcclxuQG1pZF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kOiAxMHB4O1xyXG5AbWlkX25hdl9kcm9wZG93bl9ob3JfbWFyX3N0YXJ0OiAyMHB4O1xyXG5AbWlkX25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZDogMnB4O1xyXG5cclxuQGJvdF9uYXZfZHJvcGRvd25fd2lkdGg6IDE4NHB4O1xyXG5AYm90X25hdl9kcm9wZG93bl9wYWRfdG9wOiAxMHB4O1xyXG5AYm90X25hdl9kcm9wZG93bl9wYWRfYm90OiAyMHB4O1xyXG5AYm90X25hdl9kcm9wZG93bl92ZXJ0X21hcl9zdGFydDogMjBweDtcclxuQGJvdF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kOiAwcHg7XHJcbkBib3RfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfc3RhcnQ6IDIwcHg7XHJcbkBib3RfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfZW5kOiAycHg7XHJcblxyXG5AdG9wX25hdl9kcm9wZG93bl93aWR0aDogMjAwcHg7XHJcbkB0b3BfbmF2X2Ryb3Bkb3duX3BhZF90b3A6IDEwcHg7XHJcbkB0b3BfbmF2X2Ryb3Bkb3duX3BhZF9ib3Q6IDEwcHg7XHJcbkB0b3BfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX3N0YXJ0OiAyMHB4O1xyXG5AdG9wX25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQ6IDBweDtcclxuQHRvcF9uYXZfZHJvcGRvd25faG9yX21hcl9zdGFydDogMjBweDtcclxuQHRvcF9uYXZfZHJvcGRvd25faG9yX21hcl9lbmQ6IDJweDtcclxuXHJcbkBjb250X3dpZHRoX2RlZjogOTgwcHg7XHJcbkBjb250X3dpZHRoX2xhcmdlOiAxMjAwcHg7XHJcbkBjb250X3dpZHRoX2Z1bGw6IDEwMCU7XHJcbkBjb250X3dpZHRoX21pbjogMzIwcHg7XHJcblxyXG5AaW5wdXRfdGV4dDogZSgnaW5wdXQ6bm90KFt0eXBlPWJ1dHRvbl0pOm5vdChbdHlwZT1jaGVja2JveF0pOm5vdChbdHlwZT1maWxlXSk6bm90KFt0eXBlPWhpZGRlbl0pOm5vdChbdHlwZT1pbWFnZV0pOm5vdChbdHlwZT1yYWRpb10pOm5vdChbdHlwZT1yZXNldF0pOm5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9Y29sb3JdKTpub3QoW3R5cGU9cmFuZ2VdKScpO1xyXG5cclxuQG1vbml0b3JfbGFyZ2U6IH4nKG1pbi13aWR0aDogMTQ0MHB4KSc7XHJcbkBtb25pdG9yX21lZGl1bTogficobWluLXdpZHRoOiAxMDI1cHgpJztcclxuQG1vbml0b3JfdGFibGV0Xzk1MF9taW46IH4nKG1pbi13aWR0aDogOTUwcHgpJztcclxuQG1vbml0b3JfbGFyZ2VfbWF4OiB+JyhtYXgtd2lkdGg6IDE0NDBweCknO1xyXG5AbW9uaXRvcl90YWJsZXQ6IH4nKG1heC13aWR0aDogMTAyNHB4KSc7XHJcbkBtb25pdG9yX3RhYmxldF85NTA6IH4nKG1heC13aWR0aDogOTUwcHgpJztcclxuQG1vbml0b3JfdGFibGV0X3NtYWxsOiB+JyhtYXgtd2lkdGg6IDc2OHB4KSc7XHJcbkBtb25pdG9yX3RhYmxldF82MDA6IH4nKG1heC13aWR0aDogNjAwcHgpJztcclxuQG1vbml0b3JfcGhvbmU6IH4nKG1heC13aWR0aDogNTQwcHgpJztcclxuQG1vbml0b3JfcGhvbmVfc21hbGw6IH4nKG1heC13aWR0aDogMzIwcHgpJztcclxuXHJcblxyXG5cclxuLmZsICgpIHtcclxuXHRmbG9hdDpsZWZ0O1xyXG59XHJcblxyXG4uZnIgKCkge1xyXG5cdGZsb2F0OnJpZ2h0O1xyXG59XHJcblxyXG4uZG4gKCkge1xyXG5cdGRpc3BsYXk6bm9uZTtcclxufVxyXG5cclxuLnRhbCAoKSB7XHJcblx0dGV4dC1hbGlnbjpsZWZ0O1xyXG59XHJcblxyXG4udGFjICgpIHtcclxuXHR0ZXh0LWFsaWduOmNlbnRlcjtcclxufVxyXG5cclxuLnRhciAoKSB7XHJcblx0dGV4dC1hbGlnbjpyaWdodDtcclxufVxyXG5cclxuLmNsICgpIHtcclxuXHRjbGVhcjpib3RoO1xyXG59XHJcblxyXG4ub3ZoICgpIHtcclxuXHRvdmVyZmxvdzpoaWRkZW47XHJcbn1cclxuXHJcbi5tMGEgKCkge1xyXG5cdG1hcmdpbjowIGF1dG87XHJcbn1cclxuXHJcbi5iZCAoQHc6MXB4OyBAdDpzb2xpZCkge1xyXG5cdGJvcmRlci13aWR0aDpAdztcclxuXHRib3JkZXItc3R5bGU6QHQ7XHJcbn1cclxuXHJcbi5iZHQgKEB3OjFweDsgQHQ6c29saWQpIHtcclxuXHRib3JkZXItdG9wLXdpZHRoOkB3O1xyXG5cdGJvcmRlci10b3Atc3R5bGU6QHQ7XHJcbn1cclxuXHJcbi5iZGIgKEB3OjFweDsgQHQ6c29saWQpIHtcclxuXHRib3JkZXItYm90dG9tLXdpZHRoOkB3O1xyXG5cdGJvcmRlci1ib3R0b20tc3R5bGU6QHQ7XHJcbn1cclxuXHJcbi5iZHIgKEB3OjFweDsgQHQ6c29saWQpIHtcclxuXHRib3JkZXItcmlnaHQtd2lkdGg6QHc7XHJcblx0Ym9yZGVyLXJpZ2h0LXN0eWxlOkB0O1xyXG59XHJcblxyXG4uYmRsIChAdzoxcHg7IEB0OnNvbGlkKSB7XHJcblx0Ym9yZGVyLWxlZnQtd2lkdGg6QHc7XHJcblx0Ym9yZGVyLWxlZnQtc3R5bGU6QHQ7XHJcbn1cclxuXHJcbi5jb2xvcl93aGl0ZV9vcGFjaXR5IChAb3A6LjUpIHtcclxuXHRjb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIEBvcCk7XHJcbn1cclxuXHJcbi5iZ193aGl0ZV9vcGFjaXR5IChAb3A6LjUpIHtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgQG9wKTtcclxufVxyXG5cclxuLmZ1bGx3aWR0aF9pbl9ibG9jayAoKSB7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRoZWlnaHQ6MTAwJTtcclxuXHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHR0b3A6MDtcclxuXHRsZWZ0OjA7XHJcbn1cclxuXHJcbi5vcCAoQG9wOi41KSB7XHJcblx0b3BhY2l0eTpAb3A7XHJcbn1cclxuXHJcbi5kaXNwbGF5X2ZsZXggKCkge1xyXG5cdGRpc3BsYXk6LXdlYmtpdC1mbGV4O1xyXG5cdGRpc3BsYXk6LW1vei1mbGV4O1xyXG5cdGRpc3BsYXk6LW1zLWZsZXg7XHJcblx0ZGlzcGxheTpmbGV4O1xyXG59XHJcblxyXG4uZGlzcGxheV9pbmxpbmVfZmxleCAoKSB7XHJcblx0ZGlzcGxheTotd2Via2l0LWlubGluZS1mbGV4O1xyXG5cdGRpc3BsYXk6LW1vei1pbmxpbmUtZmxleDtcclxuXHRkaXNwbGF5Oi1tcy1pbmxpbmUtZmxleDtcclxuXHRkaXNwbGF5OmlubGluZS1mbGV4O1xyXG59XHJcblxyXG4uZmxleF9kaXJlY3Rpb24gKEBkOnJvdykge1xyXG5cdC13ZWJraXQtZmxleC1kaXJlY3Rpb246QGQ7XHJcblx0LW1vei1mbGV4LWRpcmVjdGlvbjpAZDtcclxuXHQtbXMtZmxleC1kaXJlY3Rpb246QGQ7XHJcblx0ZmxleC1kaXJlY3Rpb246QGQ7XHJcbn1cclxuXHJcbi5mbGV4X3dyYXAgKEBkOm5vd3JhcCkge1xyXG5cdC13ZWJraXQtZmxleC13cmFwOkBkO1xyXG5cdC1tb3otZmxleC13cmFwOkBkO1xyXG5cdC1tcy1mbGV4LXdyYXA6QGQ7XHJcblx0ZmxleC13cmFwOkBkO1xyXG59XHJcblxyXG4uanVzdGlmeV9jb250ZW50IChAZDpmbGV4LXN0YXJ0KSB7XHJcblx0LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6QGQ7XHJcblx0LW1vei1qdXN0aWZ5LWNvbnRlbnQ6QGQ7XHJcblx0LW1zLWp1c3RpZnktY29udGVudDpAZDtcclxuXHRqdXN0aWZ5LWNvbnRlbnQ6QGQ7XHJcbn1cclxuXHJcbi5hbGlnbl9pdGVtcyAoQGQ6c3RyZXRjaCkge1xyXG5cdC13ZWJraXQtYWxpZ24taXRlbXM6QGQ7XHJcblx0LW1vei1hbGlnbi1pdGVtczpAZDtcclxuXHQtbXMtYWxpZ24taXRlbXM6QGQ7XHJcblx0YWxpZ24taXRlbXM6QGQ7XHJcbn1cclxuXHJcbi5hbGlnbl9jb250ZW50IChAZDpzdHJldGNoKSB7XHJcblx0LXdlYmtpdC1hbGlnbi1jb250ZW50OkBkO1xyXG5cdC1tb3otYWxpZ24tY29udGVudDpAZDtcclxuXHQtbXMtYWxpZ24tY29udGVudDpAZDtcclxuXHRhbGlnbi1jb250ZW50OkBkO1xyXG59XHJcblxyXG4uY2xfYWZ0ZXIgKCkge1xyXG5cdGNvbnRlbnQ6Jy4nO1xyXG5cdGRpc3BsYXk6YmxvY2s7XHJcblx0Y2xlYXI6Ym90aDtcclxuXHRoZWlnaHQ6MDtcclxuXHR2aXNpYmlsaXR5OmhpZGRlbjtcclxuXHRvdmVyZmxvdzpoaWRkZW47XHJcbn1cclxuXHJcbi52YWxpZ25fYWZ0ZXIgKCkge1xyXG5cdGNvbnRlbnQ6Jyc7XHJcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdGhlaWdodDoxMDAlO1xyXG59XHJcblxyXG4ucG9zX2FicyAoQHc6MWVtOyBAaDoxZW07IEBsOjA7IEByOjA7IEB0OjA7IEBiOjApIHtcclxuXHR3aWR0aDpAdztcclxuXHRoZWlnaHQ6QGg7XHJcblx0bWFyZ2luOmF1dG8gIWltcG9ydGFudDtcclxuXHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRsZWZ0OkBsO1xyXG5cdHJpZ2h0OkByO1xyXG5cdHRvcDpAdDtcclxuXHRib3R0b206QGI7XHJcbn1cclxuXHJcbi5iZGJ4ICgpIHtcclxuXHQtd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtcclxuXHQtbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtcclxuXHRib3gtc2l6aW5nOmJvcmRlci1ib3g7XHJcbn1cclxuXHJcbi5jdGJ4ICgpIHtcclxuXHQtd2Via2l0LWJveC1zaXppbmc6Y29udGVudC1ib3g7XHJcblx0LW1vei1ib3gtc2l6aW5nOmNvbnRlbnQtYm94O1xyXG5cdGJveC1zaXppbmc6Y29udGVudC1ib3g7XHJcbn1cclxuXHJcbi5iZHJzIChAcmFkaXVzOkBiZHJzX3dpZHRoKSB7XHJcblx0LXdlYmtpdC1ib3JkZXItcmFkaXVzOkByYWRpdXM7XHJcblx0Ym9yZGVyLXJhZGl1czpAcmFkaXVzO1xyXG59XHJcblxyXG4uYnhzaCAoQHg6MDsgQHk6MDsgQGJsdXI6NXB4OyBAc3ByZWQ6MDsgQGFscGhhOi4wNSkge1xyXG5cdC13ZWJraXQtYm94LXNoYWRvdzpAeCBAeSBAYmx1ciBAc3ByZWQgcmdiYSgwLCAwLCAwLCBAYWxwaGEpO1xyXG5cdGJveC1zaGFkb3c6QHggQHkgQGJsdXIgQHNwcmVkIHJnYmEoMCwgMCwgMCwgQGFscGhhKTtcclxufVxyXG5cclxuLmJ4c2hfd2hpdGUgKEB4OjA7IEB5OjA7IEBibHVyOjVweDsgQHNwcmVkOjA7IEBhbHBoYTouMDUpIHtcclxuXHQtd2Via2l0LWJveC1zaGFkb3c6QHggQHkgQGJsdXIgQHNwcmVkIHJnYmEoMjU1LCAyNTUsIDI1NSwgQGFscGhhKTtcclxuXHRib3gtc2hhZG93OkB4IEB5IEBibHVyIEBzcHJlZCByZ2JhKDI1NSwgMjU1LCAyNTUsIEBhbHBoYSk7XHJcbn1cclxuXHJcbi5ieHNoaSAoQHg6MDsgQHk6MDsgQGJsdXI6NXB4OyBAc3ByZWQ6MDsgQGFscGhhOi4wNSkge1xyXG5cdC13ZWJraXQtYm94LXNoYWRvdzppbnNldCBAeCBAeSBAYmx1ciBAc3ByZWQgcmdiYSgwLCAwLCAwLCBAYWxwaGEpO1xyXG5cdGJveC1zaGFkb3c6aW5zZXQgQHggQHkgQGJsdXIgQHNwcmVkIHJnYmEoMCwgMCwgMCwgQGFscGhhKTtcclxufVxyXG5cclxuLmJ4c2hpX3doaXRlIChAeDowOyBAeTowOyBAYmx1cjo1cHg7IEBzcHJlZDowOyBAYWxwaGE6LjA1KSB7XHJcblx0LXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IEB4IEB5IEBibHVyIEBzcHJlZCByZ2JhKDI1NSwgMjU1LCAyNTUsIEBhbHBoYSk7XHJcblx0Ym94LXNoYWRvdzppbnNldCBAeCBAeSBAYmx1ciBAc3ByZWQgcmdiYSgyNTUsIDI1NSwgMjU1LCBAYWxwaGEpO1xyXG59XHJcblxyXG4uYnhzaF9ub25lICgpIHtcclxuXHQtd2Via2l0LWJveC1zaGFkb3c6bm9uZTtcclxuXHRib3gtc2hhZG93Om5vbmU7XHJcbn1cclxuXHJcbi50cmFucyhAdHJhbnM6MCkgd2hlbiBub3QgKEB0cmFucyA9IDApIHtcclxuICAgIC13ZWJraXQtdHJhbnNpdGlvbjpAdHJhbnM7XHJcbiAgICAtbW96LXRyYW5zaXRpb246QHRyYW5zO1xyXG4gICAgLW1zLXRyYW5zaXRpb246QHRyYW5zO1xyXG4gICAgLW8tdHJhbnNpdGlvbjpAdHJhbnM7XHJcbiAgICB0cmFuc2l0aW9uOkB0cmFucztcclxufVxyXG5cclxuLmFycm93X3RvcCAoQGg6NXB4OyBAdzo1cHgpIHtcclxuXHRib3JkZXItdG9wOjAgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItbGVmdDpAdyBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1yaWdodDpAdyBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1ib3R0b20td2lkdGg6QGg7XHJcblx0Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDtcclxufVxyXG5cclxuLmFycm93X2JvdHRvbSAoQGg6NXB4OyBAdzo1cHgpIHtcclxuXHRib3JkZXItYm90dG9tOjAgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItbGVmdDpAdyBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1yaWdodDpAdyBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci10b3Atd2lkdGg6QGg7XHJcblx0Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDtcclxufVxyXG5cclxuLmFycm93X2xlZnQgKEBoOjVweDsgQHc6NXB4KSB7XHJcblx0Ym9yZGVyLWxlZnQ6MCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci10b3A6QHcgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItYm90dG9tOkB3IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXJpZ2h0LXdpZHRoOkBoO1xyXG5cdGJvcmRlci1yaWdodC1zdHlsZTpzb2xpZDtcclxufVxyXG5cclxuLmFycm93X3JpZ2h0IChAaDo1cHg7IEB3OjVweCkge1xyXG5cdGJvcmRlci1yaWdodDowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXRvcDpAdyBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1ib3R0b206QHcgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItbGVmdC13aWR0aDpAaDtcclxuXHRib3JkZXItbGVmdC1zdHlsZTpzb2xpZDtcclxufVxyXG5cclxuLmFycm93X3RvcF9sZWZ0IChAaDo1cHg7IEB3OjVweCkge1xyXG5cdGJvcmRlci1yaWdodDpAdyBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1sZWZ0OjAgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItYm90dG9tOjAgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItdG9wLXdpZHRoOkBoO1xyXG5cdGJvcmRlci10b3Atc3R5bGU6c29saWQ7XHJcbn1cclxuXHJcbi5hcnJvd190b3BfcmlnaHQgKEBoOjVweDsgQHc6NXB4KSB7XHJcblx0Ym9yZGVyLWJvdHRvbTpAaCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci10b3A6MCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1sZWZ0OjAgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItcmlnaHQtd2lkdGg6QHc7XHJcblx0Ym9yZGVyLXJpZ2h0LXN0eWxlOnNvbGlkO1xyXG59XHJcblxyXG4uYXJyb3dfYm90dG9tX2xlZnQgKEBoOjVweDsgQHc6NXB4KSB7XHJcblx0Ym9yZGVyLXRvcDpAaCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1yaWdodDowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWJvdHRvbTowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWxlZnQtd2lkdGg6QHc7XHJcblx0Ym9yZGVyLWxlZnQtc3R5bGU6c29saWQ7XHJcbn1cclxuXHJcbi5hcnJvd19ib3R0b21fcmlnaHQgKEBoOjVweDsgQHc6NXB4KSB7XHJcblx0Ym9yZGVyLWxlZnQ6QHcgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItdG9wOjAgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItcmlnaHQ6MCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1ib3R0b20td2lkdGg6QGg7XHJcblx0Ym9yZGVyLWJvdHRvbS1zdHlsZTpzb2xpZDtcclxufVxyXG5cclxuLnJlYWRtb3JlKCl7XHJcblx0b3V0bGluZTpub25lO1xyXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRsZXR0ZXItc3BhY2luZzogLTAuMTVweDtcclxuXHRsaW5lLWhlaWdodDogMTtcclxuXHQuYmRiKDFweCk7XHJcbn1cclxuXHJcbi5oZWFkZXJfZWxlbWVudF9zcGxpdHtcclxuXHRtYXJnaW4tbGVmdDogMzBweDtcclxuXHJcblx0Jjo6YmVmb3Jle1xyXG5cdFx0Y29udGVudDogXCJcIjtcclxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdHRvcDogMDtcclxuXHRcdGJvdHRvbTogMDtcclxuXHRcdHJpZ2h0OiAtMTFweDtcclxuXHRcdHdpZHRoOiAxcHg7XHJcblx0XHRoZWlnaHQ6IDE5cHg7XHJcblx0XHRvcGFjaXR5OiAwLjU7XHJcblx0XHRtYXJnaW46IGF1dG87XHJcblx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdC5iZHI7XHJcblx0fVxyXG59XHJcblxyXG4uZGVmYXVsdF9saXN0IChAdzo2cHg7IEBoOjZweDsgQG06MCAxMHB4IDAgMDsgQGJkcnM6NTAlKSB7XHJcblx0bGlzdC1zdHlsZS10eXBlOm5vbmU7XHJcblx0XHJcblx0PiBsaSB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuXHRcdCY6OmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHR3aWR0aDpAdztcclxuXHRcdFx0aGVpZ2h0OkBoO1xyXG5cdFx0XHRtYXJnaW46QG07XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdC5iZHJzKEBiZHJzKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5kZWZhdWx0X2Jsb2NrcXVvdGUgKCkge1xyXG5cdHBhZGRpbmc6MDtcclxuXHRtYXJnaW46MCAwIEBsaW5lX2hlaWdodF9wYWQ7IC8qIGRvbid0IHRvdWNoICovXHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0cXVvdGVzOm5vbmU7XHJcblx0LmJkKDApO1xyXG5cdFxyXG5cdHA6bGFzdC1vZi10eXBlIHtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdH1cclxuXHRcclxuXHRjaXRlIHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRtYXJnaW4tdG9wOjEwcHg7XHJcblx0fVxyXG5cclxuXHQmOjpiZWZvcmV7XHJcblx0XHRjb250ZW50OiBcIuKAnFwiO1xyXG5cdFx0cGFkZGluZy1yaWdodDogMTBweDtcclxuXHRcdGZvbnQtZmFtaWx5OiBcIlF1aWNrc2FuZFwiLCBBcmlhbCwgSGVsdmV0aWNhLCBcIk5pbWJ1cyBTYW5zIExcIiwgc2Fucy1zZXJpZjtcclxuXHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xyXG5cdFx0Zm9udC1zaXplOiA4M3B4O1xyXG5cdFx0aGVpZ2h0OiAyMnB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6IDUzcHg7XHJcblx0XHRmbG9hdDogbGVmdDtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHR9XHJcbn1cclxuXHJcbi5kZWZhdWx0X3RhYmxlICgpIHtcclxuXHRib3JkZXItc3BhY2luZzowO1xyXG5cdGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtcclxuXHR3aWR0aDoxMDAlO1xyXG5cdG1hcmdpbi1ib3R0b206QGxpbmVfaGVpZ2h0X3BhZDsgLyogZG9uJ3QgdG91Y2ggKi9cclxuXHRcclxuXHR0aCxcclxuXHR0ZCB7XHJcblx0XHQuYmQoMCk7IC8qIGZvciBndXRlbmJlcmcgKi9cclxuXHRcdHBhZGRpbmc6MTBweDtcclxuXHRcdC5iZDtcclxuXHR9XHJcblx0XHJcblx0LyogZm9yIGd1dGVuYmVyZyBzdGFydCAqL1xyXG5cdCYuaXMtc3R5bGUtc3RyaXBlcyB7XHJcblx0XHQuYmQoMCk7XHJcblx0XHRib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7XHJcblx0XHRcclxuXHRcdHRyOm50aC1jaGlsZChvZGQpIHtcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdFx0fVxyXG5cdH1cclxuXHQvKiBmb3IgZ3V0ZW5iZXJnIGVuZCAqL1xyXG5cdFxyXG5cdGNhcHRpb24ge1xyXG5cdFx0dGV4dC1hbGlnbjpjZW50ZXI7XHJcblx0XHRwYWRkaW5nOjIwcHg7XHJcblx0fVxyXG59XHJcblxyXG4uZGVmYXVsdF9idXR0b24gKCkge1xyXG5cdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdHBhZGRpbmc6MCAyN3B4O1xyXG5cdGxldHRlci1zcGFjaW5nOiAtMC4xNXB4O1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdHdoaXRlLXNwYWNlOm5vd3JhcDtcclxuXHQuYmRycygyNXB4KTtcclxuXHQudGFjO1xyXG5cdC5iZCgwKTtcclxuXHQudHJhbnMofidjb2xvciAuNHMgZWFzZSwgYmFja2dyb3VuZC1jb2xvciAuNHMgZWFzZSwgb3BhY2l0eSAuNHMgZWFzZScpO1xyXG5cclxuXHQmW2Rpc2FibGVkXXtcclxuXHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cdFx0b3BhY2l0eTogMC4zO1xyXG5cdH1cclxufVxyXG5cclxuLmRlZmF1bHRfc2VsZWN0IChAcGx1Z2luOjApIHtcclxuXHRsaW5lLWhlaWdodDoxZW07XHJcblx0dGV4dC1pbmRlbnQ6MC4wMXB4O1xyXG5cdHRleHQtb3ZlcmZsb3c6Jyc7XHJcblx0cGFkZGluZzogM3B4IDYwcHggMCAxOHB4O1xyXG5cdC13ZWJraXQtYXBwZWFyYW5jZTpub25lO1xyXG5cdC1tb3otYXBwZWFyYW5jZTpub25lO1xyXG5cdC1tcy1hcHBlYXJhbmNlOm5vbmU7XHJcblx0YXBwZWFyYW5jZTpub25lICFpbXBvcnRhbnQ7XHJcblx0YmFja2dyb3VuZC1wb3NpdGlvbjoxMDAlIGNlbnRlcjtcclxuXHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XHJcblx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdC5iZHJzKDApO1xyXG5cdGhlaWdodDpAaW5wdXRfaGVpZ2h0O1xyXG5cclxuXHRvcHRpb257XHJcblx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcblx0fVxyXG5cdFxyXG5cdCYgd2hlbiAoQHBsdWdpbiA+IDApIHtcclxuXHRcdGJhY2tncm91bmQtaW1hZ2U6dXJsKCcuLi8uLi8uLi8uLi9pbWcvc2VsZWN0LnBuZycpO1xyXG5cdH1cclxuXHRcclxuXHQmIHdoZW4gKEBwbHVnaW4gPSAwKSB7XHJcblx0XHRiYWNrZ3JvdW5kLWltYWdlOnVybCgnLi4vLi4vLi4vaW1nL3NlbGVjdC5wbmcnKTtcclxuXHR9XHJcblxyXG5cclxufVxyXG5cclxuXHJcbiIsIi8qKlxyXG4gKiBAcGFja2FnZSAgICAgV29yZFByZXNzXHJcbiAqIEBzdWJwYWNrYWdlICBCYW1iaW5pXHJcbiAqIEB2ZXJzaW9uICAgICAxLjAuNFxyXG4gKiBcclxuICogRGVzaWduIENTUyBSdWxlc1xyXG4gKiBDcmVhdGVkIGJ5IENNU01hc3RlcnNcclxuICogXHJcbiAqL1xyXG5cclxuXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG5cclxuXHQxLlx0R2xvYmFsbHkgQXBwbGllZCBTdHlsZXMgLyBib2R5XHJcblx0XHQxLjEuIEluc3RhZ3JhbSAvICNzYmlfbG9hZFxyXG5cdFx0MS4yLiBJY29uc1xyXG5cdFx0XHQxLjIuMS4gR2xvYmFsXHJcblx0XHRcdDEuMi4yLiBBcnJvd3NcclxuXHRcdFx0MS4yLjMuIFdpZGdldCBBZGQgSW5mb1xyXG5cdFx0XHQxLjIuNC4gVHdpdHRlciBzdHJpcGVcclxuXHRcdDEuMy4gRWxlbWVudHNcclxuXHRcdFx0MS4zLjEuIEljb24gQXJyb3cgR2xvYmFsIFN0eWxlc1xyXG5cdFx0XHQxLjMuMi4gUGl4ZWwgQXJyb3cgR2xvYmFsIFN0eWxlc1xyXG5cdFx0XHQxLjMuMy4gUG9zdCBQYXNzd29yZCBGb3JtIC8gLnBvc3QtcGFzc3dvcmQtZm9ybVxyXG5cdFx0XHQxLjMuNC4gUHJlbG9kYWVyIC8gLnByZWxvYWRlclxyXG5cdFx0XHQxLjMuNS4gUmVzaXphYmxlIEJsb2NrIC8gLnJlc2l6YWJsZV9ibG9ja1xyXG5cdFx0XHQxLjMuNi4gSW1nIFdyYXBwZXIgLyAuY21zbWFzdGVyc19pbWdfd3JhcFxyXG5cdFx0XHQxLjMuNy4gSW1nIFJvbGxvdmVyIC8gLmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyX3dyYXBcclxuXHRcdFx0MS4zLjguIFBsYWNlaG9sZGVyIFNtYWxsIC8gLmltZ19wbGFjZWhvbGRlcl9zbWFsbFxyXG5cdFx0XHQxLjMuOS4gVmlkZW8gV3JhcHBlciAvIC5tZWpzLWNvbnRhaW5lclxyXG5cdFx0XHQxLjMuMTAuIFNlYXJjaCBCYXIgLyAuc2VhcmNoX2Jhcl93cmFwXHJcblx0XHRcdDEuMy4xMC4gU29jaWFsIEljb25zIC8gLnNvY2lhbF93cmFwXHJcblx0XHRcdDEuMy4xMS4gQ29yZSBPd2wgQ2Fyb3VzZWwgQ1NTIHYxLjMuMiAvIC5vd2wtY2Fyb3VzZWxcclxuXHRcdFx0MS4zLjEyLiBTbGlkZSBUb3AgQnV0dG9uIC8gI3NsaWRlX3RvcFxyXG5cdFx0XHQxLjMuMTMuIE9wZW5lZCBBcnRpY2xlIC8gLm9wZW5lZC1hcnRpY2xlXHJcblx0XHRcdDEuMy4xNC4gTGlrZXMgYW5kIENvbW1lbnRzXHJcblx0XHRcdFx0MS4zLjE0LjEuIExpa2VzIC8gLmNtc21hc3RlcnNfbGlrZXNcclxuXHRcdFx0XHQxLjMuMTQuMi4gQ29tbWVudHMgLyAuY21zbWFzdGVyc19jb21tZW50c1xyXG5cdFx0XHQxLjMuMTUuIEJ1dHRvblxyXG5cdFx0XHQxLjMuMTYuIEl0ZW1zIEZpbHRlciAvIC5jbXNtYXN0ZXJzX2l0ZW1zX2ZpbHRlcl93cmFwXHJcblx0XHRcdDEuMy4xNy4gTW9yZSBJdGVtcyBMb2FkZXIgYW5kIFBhZ2luYXRpb25cclxuXHRcdFx0XHQxLjMuMTcuMS4gTW9yZSBJdGVtcyBMb2FkZXIgLyAuY21zbWFzdGVyc193cmFwX21vcmVfaXRlbXNcclxuXHRcdFx0XHQxLjMuMTcuMi4gU3VicGFnZSBQYWdpbmF0aW9uIC8gLnN1YnBhZ2VfbmF2XHJcblx0XHRcdFx0MS4zLjE3LjIuIFBhZ2luYXRpb24gLyAuY21zbWFzdGVyc193cmFwX3BhZ2luYXRpb25cclxuXHRcdFx0MS4zLjE4LiBQb3N0IE5hdmlnYXRpb24gLyAucG9zdF9uYXZcclxuXHRcdFx0MS4zLjE5LiBTaGFyZSBQb3N0cyAvIC5zaGFyZV9wb3N0c1xyXG5cdFx0XHQxLjMuMjAuIEFib3V0IEF1dGhvciAvIC5hYm91dF9hdXRob3JcclxuXHRcdFx0MS4zLjIxLiBTaW5nbGUgUG9zdCBTbGlkZXIgLyAuY21zbWFzdGVyc19zaW5nbGVfc2xpZGVyXHJcblx0XHRcdDEuMy4yMi4gU2luZ2xlIFBpbmdzIExpc3QgLyAuY21zbWFzdGVyc19waW5nc19saXN0XHJcblx0XHRcdDEuMy4yMy4gUG9zdCBDb21tZW50cyAvIC5wb3N0X2NvbW1lbnRzXHJcblx0XHRcdDEuMy4yNC4gQ29tbWVudCBSZXNwb25kIC8gLmNvbW1lbnQtcmVzcG9uZFxyXG5cdDIuXHRIZWFkZXIgLyAjaGVhZGVyXHJcblx0XHQyLjEuIEhlYWRlciBUb3AgLyAuaGVhZGVyX3RvcFxyXG5cdFx0XHQyLjEuMS4gSGVhZGVyIFRvcCBOYXZpZ2F0aW9uIC8gLnRvcF9saW5lX25hdlxyXG5cdFx0Mi4yLiBIZWFkZXIgTWlkIC8gLmhlYWRlcl9taWRcclxuXHRcdFx0Mi4xLjEuIEhlYWRlciBNaWQgTmF2aWdhdGlvbiAvIC5taWRfbmF2XHJcblx0XHQyLjMuIEhlYWRlciBCb3QgLyAuaGVhZGVyX2JvdFxyXG5cdFx0XHQyLjEuMS4gSGVhZGVyIEJvdCBOYXZpZ2F0aW9uIC8gLmJvdF9uYXZcclxuXHRcdDIuNC4gSGVhZGVyIFNlYXJjaCBGb3JtXHJcblx0My5cdEhlYWRsaW5lIFN0eWxlc1xyXG5cdDQuXHRCb3R0b20gKyBGb290ZXIgU3R5bGVzXHJcblx0XHQ0LjEuIEJvdHRvbSAvICNib3R0b21cclxuXHRcdDQuMi4gRm9vdGVyIC8gI2Zvb3RlclxyXG5cdFx0XHQ0LjIuMS4gRm9vdGVyIERlZmF1bHQgLyAuY21zbWFzdGVyc19mb290ZXJfZGVmYXVsdFxyXG5cdFx0XHQ0LjIuMi4gRm9vdGVyIFNtYWxsIC8gLmNtc21hc3RlcnNfZm9vdGVyX3NtYWxsXHJcblx0NS5cdEJsb2cgLyAuYmxvZ1xyXG5cdFx0NS4xLiBCbG9nIERlZmF1bHQgLyAuY21zbWFzdGVyc19wb3N0X2RlZmF1bHRcclxuXHRcdDUuMi4gQmxvZyBNYXNvbnJ5IC8gLmNtc21hc3RlcnNfcG9zdF9tYXNvbnJ5XHJcblx0XHQ1LjMuIEJsb2cgVGltZWxpbmUgLyAuY21zbWFzdGVyc19wb3N0X3RpbWVsaW5lXHJcblx0XHQ1LjQuIEJsb2cgUG9zdCAvIC5jbXNtYXN0ZXJzX29wZW5fcG9zdFxyXG5cdDYuXHRQb3J0Zm9saW8gLyAucG9ydGZvbGlvXHJcblx0XHQ2LjEuIFBvcnRmb2xpbyBHcmlkIC8gLmNtc21hc3RlcnNfcHJvamVjdF9ncmlkXHJcblx0XHQ2LjIuIFBvcnRmb2xpbyBQdXp6bGUgLyAuY21zbWFzdGVyc19wcm9qZWN0X3B1enpsZVxyXG5cdFx0Ni4zLiBQb3J0Zm9saW8gT3BlbiBQcm9qZWN0IC8gLmNtc21hc3RlcnNfb3Blbl9wcm9qZWN0XHJcblx0Ny5cdFBvc3RzIFNsaWRlciBTdHlsZXMgLyAuY21zbWFzdGVyc19wb3N0c19zbGlkZXJcclxuXHRcdDcuMS4gUG9zdHMgU2xpZGVyIEJsb2cgLyAuY21zbWFzdGVyc19zbGlkZXJfcG9zdFxyXG5cdFx0Ny4yLiBQb3N0cyBTbGlkZXIgUG9ydGZvbGlvIC8gLmNtc21hc3RlcnNfc2xpZGVyX3Byb2plY3RcclxuXHQ4Llx0UHJvZmlsZXMgKyBQcm9maWxlIFN0eWxlcyAvIC5jbXNtYXN0ZXJzX3Byb2ZpbGVcclxuXHRcdDguMS4gUHJvZmlsZXMgSG9yaXpvbnRhbCAvIC5jbXNtYXN0ZXJzX3Byb2ZpbGVfaG9yaXpvbnRhbFxyXG5cdFx0OC4yLiBQcm9maWxlcyBWZXJ0aWNhbCAvIC5jbXNtYXN0ZXJzX3Byb2ZpbGVfdmVydGljYWxcclxuXHRcdDguMy4gUHJvZmlsZXMgT3BlbiBQcm9maWxlIC8gLmNtc21hc3RlcnNfb3Blbl9wcm9maWxlXHJcblx0OS5cdFNob3J0Y29kZXMgU3R5bGVzXHJcblx0XHQ5LjEuIERpdmlkZXIgLyAuY21zbWFzdGVyc19kaXZpZGVyXHJcblx0XHQ5LjIuIFNwZWNpYWwgSGVhZGluZyAvIC5jbXNtYXN0ZXJzX2hlYWRpbmdfd3JhcFxyXG5cdFx0OS4zLiBGZWF0dXJlZCBCbG9jayAvIC5jbXNtYXN0ZXJzX2ZlYXR1cmVkX2Jsb2NrXHJcblx0XHQ5LjQuIFRhYmxlIC8gLmNtc21hc3RlcnNfdGFibGVcclxuXHRcdDkuNS4gTm90aWNlIC8gLmNtc21hc3RlcnNfbm90aWNlXHJcblx0XHQ5LjYuIEljb24gLyAuY21zbWFzdGVyc19pY29uX3dyYXBcclxuXHRcdDkuNy4gSWNvbiBMaXN0IC8gLmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW1zXHJcblx0XHQ5LjguIEljb24gQm94IC8gLmNtc21hc3RlcnNfaWNvbl9ib3hcclxuXHRcdDkuOS4gVG9nZ2xlcyAvIC5jbXNtYXN0ZXJzX3RvZ2dsZXNcclxuXHRcdDkuMTAuIFRhYnMgLyAuY21zbWFzdGVyc190YWJzXHJcblx0XHQ5LjExLiBTdGF0cyAvIC5jbXNtYXN0ZXJzX3N0YXRzXHJcblx0XHQ5LjEyLiBDb3VudGVycyAvIC5jbXNtYXN0ZXJzX2NvdW50ZXJzXHJcblx0XHQ5LjEzLiBDTVNNQVNURVJTIEJ1dHRvbiAvIC5jbXNtYXN0ZXJzX2J1dHRvblxyXG5cdFx0OS4xNC4gQ29udGFjdCBGb3JtIDcgLyAud3BjZjctZm9ybVxyXG5cdFx0OS4xNS4gSG92ZXIgc2xpZGVyIC8gLmNtc21hc3RlcnNfaG92ZXJfc2xpZGVyXHJcblx0XHQ5LjE2LiBDb250ZW50IHNsaWRlciAvIC5jbXNtYXN0ZXJzX2NvbnRlbnRfc2xpZGVyXHJcblx0XHQ5LjE3LiBHYWxsZXJ5IC8gLmNtc21hc3RlcnNfZ2FsbGVyeVxyXG5cdFx0OS4xOC4gUXVvdGVzIC8gLmNtc21hc3RlcnNfcXVvdGVzX3NsaWRlclxyXG5cdFx0OS4xOS4gUHJpY2luZyB0YWJsZXMgLyAuY21zbWFzdGVyc19wcmljaW5nX3RhYmxlXHJcblx0XHQ5LjIwLiBHb29nbGUgTWFwcyAvIC5nb29nbGVfbWFwXHJcblx0XHQ5LjIxLiBDYXB0aW9uIC8gLmNtc21hc3RlcnNfaW1nXHJcblx0XHQ5LjIyLiBXUCBHYWxsZXJ5IC8gLmdhbGxlcnlcclxuXHRcdDkuMjMuIFNpZGViYXIgLyAuY21zbWFzdGVyc19zaWRlYmFyXHJcblx0XHQ5LjI0LiBTaGFyZSAvIC5zaGFyZV93cmFwXHJcblx0XHQ5LjI1LiBUd2l0dGVyIFN0cmlwZSAvIC5jbXNtYXN0ZXJzX3R3aXR0ZXJfd3JhcFxyXG5cdFx0OS4yNi4gRHJvcGNhcCAvIC5jbXNtYXN0ZXJzX2Ryb3BjYXBcclxuXHRcdDkuMjcuIENsaWVudHMgLyAuY21zbWFzdGVyc19jbGllbnRzX3NsaWRlclxyXG5cdDEwLlx0V2lkZ2V0cyBTdHlsZXMgLyAud2lkZ2V0XHJcblx0XHQxMC4xLiBXaWRnZXQgQWR2ZXJ0aXNlbWVudCAvIC53aWRnZXRfY3VzdG9tX2FkdmVydGlzZW1lbnRfZW50cmllc1xyXG5cdFx0MTAuMi4gV2lkZ2V0IExpc3RzXHJcblx0XHRcdDEwLjIuMS4gV2lkZ2V0IFBhZ2VzIC8gLndpZGdldF9wYWdlc1xyXG5cdFx0XHQxMC4yLjIuIFdpZGdldCBDYXRlZ29yaWVzIC8gLndpZGdldF9jYXRlZ29yaWVzXHJcblx0XHRcdDEwLjIuMy4gV2lkZ2V0IEFyY2hpdmUgLyAud2lkZ2V0X2FyY2hpdmVcclxuXHRcdFx0MTAuMi40LiBXaWRnZXQgTWV0YSAvIC53aWRnZXRfbWV0YVxyXG5cdFx0XHQxMC4yLjUuIFdpZGdldCBSZWNlbnQgQ29tbWVudHMgLyAud2lkZ2V0X3JlY2VudF9jb21tZW50c1xyXG5cdFx0XHQxMC4yLjYuIFdpZGdldCBSZWNlbnQgRW50cmllcyAvIC53aWRnZXRfcmVjZW50X2VudHJpZXNcclxuXHRcdDEwLjMuIFdpZGdldCBDYWxlbmRhciAvICN3cC1jYWxlbmRhclxyXG5cdFx0MTAuNC4gV2lkZ2V0IENvbnRhY3QgRm9ybSAvIC53aWRnZXRfY3VzdG9tX2NvbnRhY3RfZm9ybV9lbnRyaWVzXHJcblx0XHQxMC41LiBXaWRnZXQgQ29udGFjdCBJbmZvIC8gLndpZGdldF9jdXN0b21fY29udGFjdF9pbmZvX2VudHJpZXNcclxuXHRcdDEwLjYuIFdpZGdldCBDdXN0b20gTWVudSAvIC53aWRnZXRfbmF2X21lbnVcclxuXHRcdDEwLjcuIFdpZGdldCBGYWNlYm9vayAvIC53aWRnZXRfY3VzdG9tX2ZhY2Vib29rX2VudHJpZXNcclxuXHRcdDEwLjguIFdpZGdldCBGbGlja3IgLyAud2lkZ2V0X2N1c3RvbV9mbGlja3JfZW50cmllc1xyXG5cdFx0MTAuOS4gV2lkZ2V0IExhdGVzdCBhbmQgUG9wdWxhciBQcm9qZWN0c1xyXG5cdFx0XHQxMC45LjEuIFdpZGdldCBMYXRlc3QgUHJvamVjdHMgLyAud2lkZ2V0X2N1c3RvbV9wb3B1bGFyX3Byb2plY3RzX2VudHJpZXNcclxuXHRcdFx0MTAuOS4yLiBXaWRnZXQgUG9wdWxhciBQcm9qZWN0cyAvIC53aWRnZXRfY3VzdG9tX2xhdGVzdF9wcm9qZWN0c19lbnRyaWVzXHJcblx0XHQxMC4xMC4gV2lkZ2V0IFBvc3RzIFRhYnMgLyAud2lkZ2V0X2N1c3RvbV9wb3N0c190YWJzX2VudHJpZXNcclxuXHRcdDEwLjExLiBXaWRnZXQgUlNTIC8gLndpZGdldF9yc3NcclxuXHRcdDEwLjEyLiBXaWRnZXQgVGFnIENsb3VkIC8gLndpZGdldF90YWdfY2xvdWRcclxuXHRcdDEwLjEzLiBXaWRnZXQgVHdpdHRlciAvIC53aWRnZXRfY3VzdG9tX3R3aXR0ZXJfZW50cmllc1xyXG5cdDExLiBTZWFyY2ggKyBBcmNoaXZlcyArIFNpdGVtYXAgKyBFcnJvciArIE90aGVyIFN0eWxlc1xyXG5cdFx0MTEuMS4gQXJjaGl2ZXMgKyBTZWFyY2hcclxuXHRcdFx0MTEuMS4xLiBBcmNoaXZlcyAvIC5jbXNtYXN0ZXJzX2FyY2hpdmVcclxuXHRcdFx0MTEuMS4yLiBTZWFyY2ggLyAuY21zbWFzdGVyc19zZWFyY2hcclxuXHRcdDExLjIuIFNpdGVtYXAgLyAuY21zbWFzdGVyc19zaXRlbWFwX3dyYXBcclxuXHRcdDExLjMuIEVycm9yIC8gLmVycm9yXHJcblx0XHQxMS40LiBBdHRhY2htZW50IFBhZ2UgLyAuY21zbWFzdGVyc19hdHRhY2hfaW1nXHJcblx0XHQxMS41LiBPdGhlclxyXG5cdDEyLlx0Q29udGFjdCBGb3JtcyBTdHlsZXNcclxuXHRcdDEyLjEuIEZvcm0gQnVpbGRlciAvIC5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlclxyXG5cdFx0MTIuMi4gQ29udGFjdCBGb3JtIDcgLyAud3BjZjdcclxuXHQxMy5cdENTUzMgQW5pbWF0aW9ucyAvIC5jc3N0cmFuc2l0aW9uc1xyXG5cdFx0MTMuMS4gQ3VzdG9tIEFuaW1hdGlvbnNcclxuXHRcdDEzLjIuIEdsb2JhbCBBbmltYXRpb25zXHJcblxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuXHJcbkBpbXBvcnQgXCJnZW5lcmFsLmxlc3NcIjtcclxuXHJcbmh0bWx7XHJcblx0aGVpZ2h0OiBhdXRvO1xyXG59XHJcblxyXG4uZm9ybUVycm9ye1xyXG5cdC5mb3JtRXJyb3JDb250ZW50e1xyXG5cdFx0I3BhZ2UgJntcclxuXHRcdFx0bWFyZ2luOiAwIDAgMHB4O1xyXG5cdFx0XHRyaWdodDogLTI3cHg7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4ucGR7XHJcblx0JnJ7XHJcblx0XHQmLTN7XHJcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDNlbTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5pbWFnZS1zbW9vdGh7XHJcblx0LW1vei1pbWFnZS1yZW5kZXJpbmc6IGF1dG87XHJcblx0aW1hZ2UtcmVuZGVyaW5nOiBhdXRvO1xyXG5cdC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IG5lYXJlc3QtbmVpZ2hib3I7XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzLWljb24tY3VzdG9tLWNvc3R7XHJcblx0Jjo6YmVmb3Jle1xyXG5cdFx0d2lkdGg6IGF1dG8gIWltcG9ydGFudDtcclxuXHR9XHJcbn1cclxuXHJcbmltZyB7XHJcblx0aW1hZ2UtcmVuZGVyaW5nOiBhdXRvO1xyXG59XHJcblxyXG4uY21zbWFzdGVyc19jb21tZW50cyxcclxuLmNtc21hc3RlcnNfbGlrZXMge1xyXG5cdCYgKyAuY21zbWFzdGVyc19jb21tZW50cyxcclxuXHQmICsgLmNtc21hc3RlcnNfbGlrZXMge1xyXG5cdFx0bWFyZ2luLWxlZnQ6IDdweDtcclxuXHR9XHJcbn1cclxuXHJcbi56LWluZGV4LTB7XHJcblx0ei1pbmRleDogMCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uei1pbmRleC0xe1xyXG5cdHotaW5kZXg6IDEgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnotaW5kZXgtMntcclxuXHR6LWluZGV4OiAyICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi56LWluZGV4LTN7XHJcblx0ei1pbmRleDogMyAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uei1pbmRleC00e1xyXG5cdHotaW5kZXg6IDQgIWltcG9ydGFudDtcclxufVxyXG5cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuLyogR2xvYmFsbHkgQXBwbGllZCBTdHlsZXNcclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuXHJcbmJvZHkge1xyXG5cdHRleHQtYWxpZ246bGVmdDtcclxuXHJcblx0Ji5lcnJvcjQwNCAjcGFnZTpub3QoLmVuYWJsZV9oZWFkZXJfYm90dG9tKXtcclxuXHRcdCNmb290ZXJ7XHJcblx0XHRcdHBvc2l0aW9uOiBmaXhlZDtcclxuXHRcdFx0bGVmdDogMDtcclxuXHRcdFx0Ym90dG9tOiAwO1xyXG5cdFx0XHR6LWluZGV4OiAxMDA7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5kaXYge1xyXG5cdHRleHQtYWxpZ246bGVmdDtcclxufVxyXG5cclxucCB7XHJcblx0cGFkZGluZzowIDAgQGxpbmVfaGVpZ2h0X3BhZDtcclxuXHRtYXJnaW46MDtcclxufVxyXG5cclxudGFibGUge1xyXG5cdG1hcmdpbjowIDAgQGxpbmVfaGVpZ2h0X3BhZDtcclxufVxyXG5cclxucHJlIHtcclxuXHRtYXJnaW46MCAwIEBsaW5lX2hlaWdodF9wYWQ7XHJcbn1cclxuXHJcbmgxLCBcclxuaDIsIFxyXG5oMywgXHJcbmg0LCBcclxuaDUsIFxyXG5oNiB7XHJcblx0cGFkZGluZzowO1xyXG5cdG1hcmdpbjowIDAgQGxpbmVfaGVpZ2h0X3BhZDtcclxufVxyXG5cclxuaDF7XHJcblx0bGV0dGVyLXNwYWNpbmc6IC0xLjFweDtcclxufVxyXG5cclxuaDJ7XHJcblx0bGV0dGVyLXNwYWNpbmc6IC0wLjlweDtcclxufVxyXG5cclxuaDN7XHJcblx0bGV0dGVyLXNwYWNpbmc6IC0wLjc1cHg7XHJcbn1cclxuXHJcbmg0e1xyXG5cdGxldHRlci1zcGFjaW5nOiAtMC42cHg7XHJcbn1cclxuXHJcbmg1e1xyXG5cdGxldHRlci1zcGFjaW5nOiAtMC40NXB4O1xyXG59XHJcblxyXG5oNntcclxuXHRsZXR0ZXItc3BhY2luZzogMC4wcHg7XHJcbn1cclxuXHJcbmJsb2NrcXVvdGUge1xyXG5cdC5kZWZhdWx0X2Jsb2NrcXVvdGUoKTtcclxufVxyXG5cclxuZGx7XHJcblx0ZHR7XHJcblx0XHRtYXJnaW4tYm90dG9tOiA1cHg7XHJcblx0fVxyXG5cdFxyXG5cdGRke1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcclxuXHR9XHJcbn1cclxuXHJcbmgxIGEsIFxyXG5oMiBhLCBcclxuaDMgYSwgXHJcbmg0IGEsIFxyXG5oNSBhLCBcclxuaDYgYSB7XHJcblx0Zm9udC1mYW1pbHk6aW5oZXJpdDtcclxuXHRmb250LXNpemU6aW5oZXJpdDtcclxuXHRmb250LXdlaWdodDppbmhlcml0O1xyXG5cdGZvbnQtc3R5bGU6aW5oZXJpdDtcclxuXHRsaW5lLWhlaWdodDppbmhlcml0O1xyXG59XHJcblxyXG51bCxcclxub2wge1xyXG5cdGxpc3Qtc3R5bGUtcG9zaXRpb246aW5zaWRlO1xyXG5cdG1hcmdpbi1ib3R0b206QGxpbmVfaGVpZ2h0X3BhZDtcclxufVxyXG5cclxub2wsXHJcbnVse1xyXG5cdCYgKyBoMntcclxuXHRcdHBhZGRpbmctdG9wOiAyNXB4O1xyXG5cdH1cclxufVxyXG5cclxudWwge1xyXG5cdC5kZWZhdWx0X2xpc3QoKTtcclxufVxyXG5cclxub2wge1xyXG5cdGxpc3Qtc3R5bGUtdHlwZTpkZWNpbWFsLWxlYWRpbmctemVybztcclxufVxyXG5cclxudWwgbGksXHJcbm9sIGxpIHtcclxuXHRwYWRkaW5nOkBkZWZhdWx0X2xpc3RfdG9wX3BhZCAwIDA7XHJcbn1cclxuXHJcbnVsIGxpOmZpcnN0LWNoaWxkLFxyXG5vbCBsaTpmaXJzdC1jaGlsZCB7XHJcbnBhZGRpbmctdG9wOiAwO1xyXG59XHJcblxyXG51bCB1bCxcclxub2wgdWwsXHJcbnVsIG9sLFxyXG5vbCBvbCB7XHJcblx0bWFyZ2luOjAgMCAwIEBkZWZhdWx0X2xpc3RfbGVmdF9wYWQ7XHJcblx0cGFkZGluZzpAZGVmYXVsdF9saXN0X3RvcF9wYWQgMCAwO1xyXG59XHJcblxyXG4uZXNnLWdyaWQge1xyXG5cdHVsIHtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRkaXNwbGF5Om5vbmU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbmlmcmFtZSB7XHJcblx0bWFyZ2luLWJvdHRvbTpAbGluZV9oZWlnaHRfcGFkO1xyXG59XHJcblxyXG5hZGRyZXNzIHtcclxuXHRtYXJnaW46MCAwIEBsaW5lX2hlaWdodF9wYWQ7XHJcbn1cclxuXHJcbnByZSB7XHJcblx0bWFyZ2luOjAgMCBAbGluZV9oZWlnaHRfcGFkO1xyXG59XHJcblxyXG5kZCB7XHJcblx0bWFyZ2luOjAgMCBAbGluZV9oZWlnaHRfcGFkO1xyXG59XHJcblxyXG50YWJsZTpub3QoLnNob3BfdGFibGUpOm5vdCgudmFyaWF0aW9ucyk6bm90KC50cmliZS1ldmVudHMtY2FsZW5kYXIpOm5vdCguc2hvcF9hdHRyaWJ1dGVzKTpub3QoLnRyaWJlLW1pbmktY2FsZW5kYXIpOm5vdCgudHRfdGltZXRhYmxlKTpub3QoLnRhYmxlLWNvbmRlbnNlZCkge1xyXG5cdC5kZWZhdWx0X3RhYmxlKCk7XHJcbn1cclxuXHJcbi5wbHMtY29udGFpbmVyLFxyXG4ucGxzLWNvbnRhaW5lciB0YWJsZSxcclxuLmNtc21hc3RlcnNfdGFibGUsXHJcbi50cmliZS1taW5pLWNhbGVuZGFyLFxyXG4udHJpYmUtZXZlbnRzLWNhbGVuZGFyLFxyXG4uc2hvcF90YWJsZSxcclxuLmdyb3VwX3RhYmxlLFxyXG4udmFyaWF0aW9ucyxcclxuLnNob3BfYXR0cmlidXRlcyB7XHJcblx0Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO1xyXG5cdGJvcmRlci1zcGFjaW5nOjA7XHJcblx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG59XHJcblxyXG5Ae2lucHV0X3RleHR9LFxyXG50ZXh0YXJlYSxcclxuc2VsZWN0LFxyXG5vcHRpb24ge1xyXG5cdHBhZGRpbmc6KEBpbnB1dF9wYWQgLyAyKSBAaW5wdXRfcGFkICgoQGlucHV0X3BhZCAvIDIpIC0gM3B4KTtcclxuXHRtYXgtd2lkdGg6MTAwJTtcclxuXHRsaW5lLWhlaWdodDogbm9ybWFsO1xyXG5cdC5iZDtcclxuXHQuYmRycygwKTtcclxuXHJcblx0XHJcblx0Jlt0eXBlPW51bWJlcl17XHJcblx0XHQmOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLCBcclxuXHRcdCY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b257fVxyXG5cdFx0cGFkZGluZy1yaWdodDogNXB4O1xyXG5cdH1cclxufVxyXG5cclxudGV4dGFyZWEge1xyXG5cdG92ZXJmbG93OmF1dG87XHJcblx0cGFkZGluZzogQGlucHV0X3BhZDtcclxufVxyXG5cclxuc2VsZWN0IHtcclxuXHQuZGVmYXVsdF9zZWxlY3QoKTtcclxufVxyXG5cclxuc2VsZWN0OjotbXMtZXhwYW5kIHtcclxuXHRkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG5zZWxlY3RbbXVsdGlwbGVdIHtcclxuXHRoZWlnaHQ6YXV0bztcclxuXHRiYWNrZ3JvdW5kLWltYWdlOm5vbmU7XHJcblx0XHJcblx0b3B0aW9uIHtcclxuXHRcdHBhZGRpbmctbGVmdDowO1xyXG5cdFx0cGFkZGluZy1yaWdodDowO1xyXG5cdFx0YmFja2dyb3VuZDpub25lICFpbXBvcnRhbnQ7XHJcblx0fVxyXG59XHJcblxyXG5pbnB1dFt0eXBlPXRleHRdLFxyXG5pbnB1dFt0eXBlPXNlYXJjaF0sXHJcbmlucHV0W3R5cGU9cGFzc3dvcmRdLFxyXG5pbnB1dFt0eXBlPWVtYWlsXSxcclxuaW5wdXRbdHlwZT10ZWxdLFxyXG5pbnB1dFt0eXBlPXVybF0sXHJcbmlucHV0W3R5cGU9bnVtYmVyXSxcclxuaW5wdXRbdHlwZT1kYXRlXSxcclxudGV4dGFyZWEge1xyXG5cdC13ZWJraXQtYXBwZWFyYW5jZTpub25lO1xyXG5cdC1tb3otYXBwZWFyYW5jZTpub25lO1xyXG5cdGFwcGVhcmFuY2U6bm9uZTtcclxufVxyXG5cclxuaW5wdXRbdHlwZT1cImRhdGVcIl06Oi13ZWJraXQtY2xlYXItYnV0dG9uIHtcclxuICAgIGRpc3BsYXk6bm9uZTtcclxufVxyXG5cclxuaW5wdXRbdHlwZT1cImRhdGVcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24geyBcclxuICAgIGRpc3BsYXk6bm9uZTtcclxufVxyXG5cclxuaW5wdXRbdHlwZT1jaGVja2JveF17XHJcblx0LmJkcnMoMCk7XHJcbn1cclxuXHJcbkB7aW5wdXRfdGV4dH0ge1xyXG5cdGhlaWdodDpAaW5wdXRfaGVpZ2h0O1xyXG59XHJcblxyXG5Ae2lucHV0X3RleHR9OmZvY3VzLFxyXG50ZXh0YXJlYTpmb2N1cyB7XHJcblx0b3V0bGluZTpub25lO1xyXG59XHJcblxyXG5pbnB1dDotd2Via2l0LWF1dG9maWxsIHtcclxuXHQtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmF1dG9maWxsO1xyXG5cdC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoO1xyXG59XHJcblxyXG5pbnB1dFt0eXBlPXN1Ym1pdF0sIFxyXG5pbnB1dFt0eXBlPWJ1dHRvbl0sIFxyXG5idXR0b24ge1xyXG5cdG1heC13aWR0aDoxMDAlO1xyXG5cdGN1cnNvcjpwb2ludGVyO1xyXG59XHJcblxyXG5vcHRpb24ge1xyXG5cdG91dGxpbmU6bm9uZTtcclxufVxyXG5cclxuLmltYWdlLXJlbmRlcmluZyxcclxuLndpZGdldCA+IC5wcm9kdWN0X2xpc3Rfd2lkZ2V0IGltZyxcclxuLndpZGdldF9zaG9wcGluZ19jYXJ0IC5jYXJ0X2xpc3QgaW1nLFxyXG4uaWxpZ2h0Ym94LXRodW1ibmFpbHMgaW1nLFxyXG4uY21zbWFzdGVyc19keW5hbWljX2NhcnQgaW1nLFxyXG4uY21zbWFzdGVyc19ob3Zlcl9zbGlkZXJfdGh1bWJzID4gbGkgaW1ne1xyXG5cdGltYWdlLXJlbmRlcmluZzogYXV0bztcclxufVxyXG5cclxuLmpldHBhY2tfc3Vic2NyaXB0aW9uX3dpZGdldCAjc3Vic2NyaWJlLWVtYWlsIEB7aW5wdXRfdGV4dH0sXHJcbi53aWRnZXRfd3lzaWphIEB7aW5wdXRfdGV4dH0ge1xyXG5cdHdpZHRoOjEwMCUgIWltcG9ydGFudDtcclxuXHRwYWRkaW5nOkBpbnB1dF9wYWQgIWltcG9ydGFudDtcclxufVxyXG5cclxuLndpZGdldF93eXNpamFfY29udCAud3lzaWphLXN1Ym1pdCB7XHJcblx0ZGlzcGxheTppbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcclxuXHRtYXJnaW46MCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uc2luZ2xlLnNpbmdsZS13eXNpamFwIC5jbXNtYXN0ZXJzX29wZW5fcG9zdCB7XHJcblx0PiAqIHtcclxuXHRcdC5kbjtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9jb250ZW50IHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0fVxyXG59XHJcblxyXG4uZ2Zvcm1fd3JhcHBlciBAe2lucHV0X3RleHR9LFxyXG4uZ2Zvcm1fd3JhcHBlciB0ZXh0YXJlYSB7XHJcblx0cGFkZGluZzpAaW5wdXRfcGFkICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5nZm9ybV93cmFwcGVyIHNlbGVjdCB7XHJcblx0cGFkZGluZzpAaW5wdXRfcGFkICFpbXBvcnRhbnQ7XHJcblx0bWFyZ2luOjAgIWltcG9ydGFudDtcclxufVxyXG5cclxubmF2IHtcclxuXHRkaXNwbGF5OmJsb2NrO1xyXG5cdGhlaWdodDoxMDAlO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdHVsIHsgLyogY2xlYXIgdWwgc3R5bGVzICovXHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC5jbF9hZnRlcjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0bGkge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRcclxuXHRcdFx0Ji5tZW51LWl0ZW0taWNvbntcclxuXHRcdFx0XHQ+IGEgLm5hdl9pdGVtX3dyYXB7XHJcblx0XHRcdFx0XHQjcGFnZSAme1xyXG5cdFx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ji5jdXJyZW50LW1lbnUtYW5jZXN0b3IsXHJcblx0XHRcdFx0Ji5jdXJyZW50LW1lbnUtaXRlbXtcclxuXHRcdFx0XHRcdD4gYSAubmF2X2l0ZW1fd3JhcHtcclxuXHRcdFx0XHRcdFx0I3BhZ2UgJntcclxuXHRcdFx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDE1cHggIWltcG9ydGFudDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGRpc3BsYXk6bm9uZTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dWx7XHJcblx0XHRcdFx0bGkubWVudS1pdGVtLWljb257XHJcblx0XHRcdFx0XHQ+IGEgLm5hdl90aXRsZXtcclxuXHRcdFx0XHRcdFx0JjpiZWZvcmV7XHJcblx0XHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdD4gZGl2IHtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0LnZhbGlnbl9hZnRlcjtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGxpLm1lbnUtaXRlbS1oYXMtY2hpbGRyZW57XHJcblx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcblx0fVxyXG5cclxuXHQ+IGRpdiA+IHVsIHtcclxuXHRcdGxpc3Qtc3R5bGU6bm9uZTtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHR6LWluZGV4OjIwMjtcclxuXHRcdHpvb206MTtcclxuXHRcdFxyXG5cdFx0dWwge1xyXG5cdFx0XHRsaXN0LXN0eWxlOm5vbmU7XHJcblx0XHRcdHdpZHRoOkBtaWRfbmF2X2Ryb3Bkb3duX3dpZHRoO1xyXG5cdFx0XHRtYXJnaW46QG1pZF9uYXZfZHJvcGRvd25fdmVydF9tYXJfc3RhcnQgMCAwO1xyXG5cdFx0XHRwYWRkaW5nOkBtaWRfbmF2X2Ryb3Bkb3duX3BhZF9ib3QgMCBAbWlkX25hdl9kcm9wZG93bl9wYWRfYm90O1xyXG5cdFx0XHR2aXNpYmlsaXR5OmhpZGRlbjtcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0dG9wOjEwMCU7XHJcblx0XHRcdHotaW5kZXg6MjAzO1xyXG5cdFx0XHQub3AoMCk7XHJcblxyXG5cdFx0XHQuaGVhZGVyX3RvcCAmIHtcclxuXHRcdFx0XHR3aWR0aDpAdG9wX25hdl9kcm9wZG93bl93aWR0aDtcclxuXHRcdFx0XHRtYXJnaW46QHRvcF9uYXZfZHJvcGRvd25fdmVydF9tYXJfc3RhcnQgMCAwO1xyXG5cdFx0XHRcdHBhZGRpbmc6QHRvcF9uYXZfZHJvcGRvd25fcGFkX2JvdCAwIEB0b3BfbmF2X2Ryb3Bkb3duX3BhZF9ib3Q7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5oZWFkZXJfYm90ICYge1xyXG5cdFx0XHRcdHdpZHRoOkBib3RfbmF2X2Ryb3Bkb3duX3dpZHRoO1xyXG5cdFx0XHRcdG1hcmdpbjpAYm90X25hdl9kcm9wZG93bl92ZXJ0X21hcl9zdGFydCAwIDA7XHJcblx0XHRcdFx0cGFkZGluZzpAYm90X25hdl9kcm9wZG93bl9wYWRfYm90IDAgQGJvdF9uYXZfZHJvcGRvd25fcGFkX2JvdDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0dWwge1xyXG5cdFx0XHRcdG1hcmdpbjowIDAgMCBAbWlkX25hdl9kcm9wZG93bl9ob3JfbWFyX3N0YXJ0O1xyXG5cdFx0XHRcdGxlZnQ6MTAwJTtcclxuXHRcdFx0XHR0b3A6LShAbWlkX25hdl9kcm9wZG93bl9wYWRfdG9wKTtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQuaGVhZGVyX3RvcCAmIHtcclxuXHRcdFx0XHRcdG1hcmdpbjowIDAgMCBAdG9wX25hdl9kcm9wZG93bl9ob3JfbWFyX3N0YXJ0O1xyXG5cdFx0XHRcdFx0dG9wOi0oQHRvcF9uYXZfZHJvcGRvd25fcGFkX3RvcCArIDEpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdFx0XHRcdG1hcmdpbjowIDAgMCBAYm90X25hdl9kcm9wZG93bl9ob3JfbWFyX3N0YXJ0O1xyXG5cdFx0XHRcdFx0dG9wOi0oQGJvdF9uYXZfZHJvcGRvd25fcGFkX3RvcCArIDEpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRsaS5tZW51LWl0ZW0tZHJvcGRvd24tcmlnaHQge1xyXG5cdFx0XHQudGFyO1xyXG5cdFx0XHRcclxuXHRcdFx0KiB7XHJcblx0XHRcdFx0LnRhbDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0PiB1bCB7XHJcblx0XHRcdFx0bGVmdDphdXRvO1xyXG5cdFx0XHRcdHJpZ2h0OjA7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0dWwge1xyXG5cdFx0XHRcdFx0bWFyZ2luOjAgQG1pZF9uYXZfZHJvcGRvd25faG9yX21hcl9zdGFydCAwIDA7XHJcblx0XHRcdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdFx0XHRyaWdodDoxMDAlO1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdFx0XHRcdFx0bWFyZ2luOjAgQGJvdF9uYXZfZHJvcGRvd25faG9yX21hcl9zdGFydCAwIDA7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQ+IGRpdi5tZW51LWl0ZW0tbWVnYS1jb250YWluZXIge1xyXG5cdFx0XHRcdGxlZnQ6YXV0bztcclxuXHRcdFx0XHRyaWdodDowO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdHVsIHtcclxuXHRcdFx0XHRcdHJpZ2h0OmF1dG87XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0bGkge1xyXG5cdFx0XHQmOmhvdmVyIHtcclxuXHRcdFx0XHQ+IHVsIHtcclxuXHRcdFx0XHRcdG1hcmdpbjowIDFweCAwO1xyXG5cdFx0XHRcdFx0dmlzaWJpbGl0eTp2aXNpYmxlO1xyXG5cdFx0XHRcdFx0b3BhY2l0eToxO1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQuaGVhZGVyX3RvcCAmIHtcclxuXHRcdFx0XHRcdFx0bWFyZ2luOkB0b3BfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZCAwIDA7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdC5oZWFkZXJfYm90ICYge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW46QGJvdF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kIDAgMDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcdFx0XHRoZWlnaHQ6QG1pZF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kO1xyXG5cdFx0XHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0XHRcdFx0bGVmdDowO1xyXG5cdFx0XHRcdFx0XHR0b3A6LShAbWlkX25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQgKyAxKTtcclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdC5oZWFkZXJfdG9wICYge1xyXG5cdFx0XHRcdFx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdFx0XHRcdFx0aGVpZ2h0OkB0b3BfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZDtcclxuXHRcdFx0XHRcdFx0XHR0b3A6LShAdG9wX25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQgKyAxKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0LmhlYWRlcl9ib3QgJiB7XHJcblx0XHRcdFx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHRcdFx0XHRoZWlnaHQ6QGJvdF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kO1xyXG5cdFx0XHRcdFx0XHRcdHRvcDotKEBib3RfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZCArIDEpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdD4gZGl2Lm1lbnUtaXRlbS1tZWdhLWNvbnRhaW5lciB7XHJcblx0XHRcdFx0XHRtYXJnaW46MCAwIDA7XHJcblx0XHRcdFx0XHR2aXNpYmlsaXR5OnZpc2libGU7XHJcblx0XHRcdFx0XHRvcGFjaXR5OjE7XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdC5oZWFkZXJfYm90ICYge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW46QGJvdF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kIDAgMDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcdFx0XHRoZWlnaHQ6QG1pZF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kO1xyXG5cdFx0XHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0XHRcdFx0bGVmdDowO1xyXG5cdFx0XHRcdFx0XHR0b3A6LShAbWlkX25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQgKyAxKTtcclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdC5oZWFkZXJfYm90ICYge1xyXG5cdFx0XHRcdFx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdFx0XHRcdFx0aGVpZ2h0OkBib3RfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZDtcclxuXHRcdFx0XHRcdFx0XHR0b3A6LShAYm90X25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQgKyAxKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHR1bCB7XHJcblx0XHRcdFx0XHRcdHZpc2liaWxpdHk6dmlzaWJsZTtcclxuXHRcdFx0XHRcdFx0b3BhY2l0eToxO1xyXG5cclxuXHRcdFx0XHRcdFx0Ji5zdWItbWVudXtcclxuXHRcdFx0XHRcdFx0XHRsaTpsYXN0LWNoaWxke1xyXG5cdFx0XHRcdFx0XHRcdFx0PiBhe1xyXG5cdFx0XHRcdFx0XHRcdFx0XHQvLy5iZGIoMCk7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHRsaTpob3ZlciB7XHJcblx0XHRcdFx0PiB1bCB7XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdC5oZWFkZXJfdG9wICYge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW46MCAwIDAgQHRvcF9uYXZfZHJvcGRvd25faG9yX21hcl9lbmQ7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdC5oZWFkZXJfYm90ICYge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW46MXB4IDAgMCBAYm90X25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHR3aWR0aDpAbWlkX25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZDtcclxuXHRcdFx0XHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdFx0XHRcdHRvcDowO1xyXG5cdFx0XHRcdFx0XHRsZWZ0Oi0oQG1pZF9uYXZfZHJvcGRvd25faG9yX21hcl9lbmQgKyAxKTtcclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdC5oZWFkZXJfdG9wICYge1xyXG5cdFx0XHRcdFx0XHRcdHdpZHRoOkB0b3BfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfZW5kO1xyXG5cdFx0XHRcdFx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRcdFx0XHRcdGxlZnQ6LShAdG9wX25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZCArIDEpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdFx0XHRcdFx0XHR3aWR0aDpAYm90X25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZDtcclxuXHRcdFx0XHRcdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0XHRcdFx0XHRsZWZ0Oi0oQGJvdF9uYXZfZHJvcGRvd25faG9yX21hcl9lbmQgKyAxKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ji5tZW51LWl0ZW0tZHJvcGRvd24tcmlnaHQge1xyXG5cdFx0XHRcdGxpOmhvdmVyIHtcclxuXHRcdFx0XHRcdD4gdWwge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW46MCBAbWlkX25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZCAwIDA7XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdFx0XHRcdFx0XHRtYXJnaW46MCBAYm90X25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZCAwIDA7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdFx0XHRcdFx0cmlnaHQ6LShAbWlkX25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZCArIDEpO1xyXG5cdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdC5oZWFkZXJfYm90ICYge1xyXG5cdFx0XHRcdFx0XHRcdFx0cmlnaHQ6LShAYm90X25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZCArIDEpO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQ+IGxpIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdHotaW5kZXg6MjAzO1xyXG5cdFx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmhvdmVyIHtcclxuXHRcdFx0XHR6LWluZGV4OjIwNDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ji5jdXJyZW50LW1lbnUtaXRlbSwgJi5jdXJyZW50LW1lbnUtYW5jZXN0b3J7XHJcblx0XHRcdFx0PiBhIC5uYXZfaXRlbV93cmFwe1xyXG5cdFx0XHRcdFx0cGFkZGluZzogNXB4IDE1cHggNXB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ji5jdXJyZW50LW1lbnUtaXRlbS5tZW51LWl0ZW0taWNvbntcclxuXHRcdFx0XHQubmF2X2l0ZW1fd3JhcHtcclxuXHRcdFx0XHRcdCNwYWdlICZ7XHJcblx0XHRcdFx0XHRcdHBhZGRpbmctbGVmdDogNDBweDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5zdWItbWVudXtcclxuXHRcdFx0XHRsaXtcclxuXHRcdFx0XHRcdGF7XHJcblx0XHRcdFx0XHRcdC5iZGI7XHJcblx0XHRcdFx0XHRcdCYuY3VycmVudC1tZW51LWl0ZW0sICYuY3VycmVudC1tZW51LWFuY2VzdG9ye1xyXG5cdFx0XHRcdFx0XHRcdG1hcmdpbi10b3A6IC0xcHg7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQmOmxhc3QtY2hpbGR7XHJcblx0XHRcdFx0XHRcdD4gYXtcclxuXHRcdFx0XHRcdFx0XHQuYmRiKDApO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGEge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0ei1pbmRleDoyMDQ7XHJcblx0XHRcdGxldHRlci1zcGFjaW5nOiAtMC4xNHB4O1xyXG5cdFx0XHRwYWRkaW5nOiAxMHB4IDEwcHggOHB4O1xyXG5cdFx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRcdFxyXG5cdFx0XHQmOjpiZWZvcmV7XHJcblx0XHRcdFx0Y29udGVudDogJyc7XHJcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQ+IHNwYW4ubmF2X2l0ZW1fd3JhcHtcclxuXHRcdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblxyXG5cdFx0XHRcdC5uYXZfdGFne1xyXG5cdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHRcdFx0dG9wOiAtMWVtO1xyXG5cdFx0XHRcdFx0bGV0dGVyLXNwYWNpbmc6IDAuMXB4O1xyXG5cclxuXHRcdFx0XHRcdC5oZWFkZXJfYm90ICZ7XHJcblx0XHRcdFx0XHRcdG9wYWNpdHk6IDAuNDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Lm5hdl9zdWJ0aXRsZXtcclxuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHRcdFx0bGV0dGVyLXNwYWNpbmc6IDAuMTJweDtcclxuXHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xyXG5cdFx0XHRcdFx0bWFyZ2luLXRvcDogLTAuNWVtO1xyXG5cclxuXHRcdFx0XHRcdC5oZWFkZXJfYm90ICZ7XHJcblx0XHRcdFx0XHRcdG9wYWNpdHk6IDAuNDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHR1bHtcclxuXHRcdFx0YXtcclxuXHRcdFx0XHRwYWRkaW5nOiAxMHB4IDIwcHggMTBweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQubWVudS1pdGVtLW1lZ2EtZGVzY3JpcHRpb24tY29udGFpbmVyIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0cGFkZGluZzoxMHB4IDE1cHg7XHJcblx0XHRcdC5vdmg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5uYXZfdGl0bGUge1xyXG5cdFx0XHQmW2NsYXNzXj1cImNtc21hc3RlcnMtaWNvbi1cIl06YmVmb3JlLCBcclxuXHRcdFx0JltjbGFzcyo9XCIgY21zbWFzdGVycy1pY29uLVwiXTpiZWZvcmUge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdFx0XHR3aWR0aDogMWVtO1xyXG5cdFx0XHRcdGhlaWdodDogMWVtO1xyXG5cdFx0XHRcdHRvcDogLTAuMWVtO1xyXG5cdFx0XHRcdG1hcmdpbjogMHB4IDJweCAwIDA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Lm1lbnUtaXRlbS1oaWRlLXRleHQge1xyXG5cdFx0XHQ+IGEge1xyXG5cdFx0XHRcdC5uYXZfdGl0bGUge1xyXG5cdFx0XHRcdFx0JltjbGFzc149XCJjbXNtYXN0ZXJzLWljb24tXCJdOmJlZm9yZSwgXHJcblx0XHRcdFx0XHQmW2NsYXNzKj1cIiBjbXNtYXN0ZXJzLWljb24tXCJdOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdG1hcmdpbjowIC4zZW07XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmOm5vdCgubWVudS1pdGVtLWljb24pIHtcclxuXHRcdFx0XHQ+IGEge1xyXG5cdFx0XHRcdFx0ZGlzcGxheTpub25lO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQ+IGxpIHtcclxuXHRcdFx0LmZsO1xyXG5cclxuXHRcdFx0LmhlYWRlcl9ib3QgJntcclxuXHRcdFx0XHQuYmRsO1xyXG5cclxuXHRcdFx0XHQmOmxhc3QtY2hpbGR7XHJcblx0XHRcdFx0XHQuYmRyO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ji5tZW51LWl0ZW0taWNvbntcclxuXHRcdFx0XHQ+IGEge1xyXG5cdFx0XHRcdFx0Lm5hdl9pdGVtX3dyYXB7XHJcblx0XHRcdFx0XHRcdHBhZGRpbmctbGVmdDogMzVweDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0PiBhe1xyXG5cdFx0XHRcdCNwYWdlIC5oZWFkZXJfYm90ICZ7XHJcblx0XHRcdFx0XHRwYWRkaW5nOiAwIDIwcHg7XHJcblxyXG5cdFx0XHRcdFx0Lm5hdl9pdGVtX3dyYXB7XHJcblx0XHRcdFx0XHRcdHBhZGRpbmc6IDA7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGxpLm1lbnUtaXRlbS1tZWdhIHVsIHtcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtcclxuXHRcdFx0Ym9yZGVyOjA7XHJcblx0XHRcdHdpZHRoOmF1dG87XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdHJpZ2h0OmF1dG87XHJcblx0XHRcdHRvcDphdXRvO1xyXG5cdFx0XHRib3R0b206YXV0bztcclxuXHRcdFx0ei1pbmRleDoyMDM7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGRpdi5tZW51LWl0ZW0tbWVnYS1jb250YWluZXIge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHR3aWR0aDphdXRvO1xyXG5cdFx0XHRtaW4td2lkdGg6IDM1MHB4O1xyXG5cdFx0XHRtYXJnaW46QG1pZF9uYXZfZHJvcGRvd25fdmVydF9tYXJfc3RhcnQgMCAwO1xyXG5cdFx0XHRwYWRkaW5nOjIwcHggMHB4IDIwcHggM3B4O1xyXG5cdFx0XHR2aXNpYmlsaXR5OmhpZGRlbjtcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0dG9wOjEwMCU7XHJcblx0XHRcdHotaW5kZXg6MjAzO1xyXG5cdFx0XHQub3AoMCk7XHJcblx0XHRcdFxyXG5cdFx0XHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdFx0XHRtYXJnaW46QGJvdF9uYXZfZHJvcGRvd25fdmVydF9tYXJfc3RhcnQgMCAwO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHR1bHtcclxuXHRcdFx0XHQ+IGxpIH4gbGkubWVudS1pdGVtLWhhcy1jaGlsZHJlbntcclxuXHRcdFx0XHRcdG1hcmdpbi10b3A6IDI1cHg7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQ+bGkubWVudS1pdGVtLWhhcy1jaGlsZHJlbntcclxuXHRcdFx0XHRcdD4gYXtcclxuXHRcdFx0XHRcdFx0cGFkZGluZzogMTBweCAxNXB4IDhweDtcclxuXHRcdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogOHB4O1xyXG5cdFx0XHRcdFx0XHQuYmRiKDApO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ji5tZW51LWl0ZW0taGFzLWNoaWxkcmVuLmN1cnJlbnQtbWVudS1hbmNlc3RvciA+IGF7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHRcdFx0XHRcdC5iZCgwKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdD4gdWwge1xyXG5cdFx0XHRcdGRpc3BsYXk6dGFibGU7XHJcblx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHRtYXJnaW4tbGVmdDowO1xyXG5cdFx0XHRcdG1hcmdpbi1yaWdodDowO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdD4gbGkge1xyXG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHRcdFx0ZGlzcGxheTp0YWJsZS1jZWxsO1xyXG5cdFx0XHRcdFx0cGFkZGluZzowIDIycHggMCAyMHB4O1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRhe1xyXG5cdFx0XHRcdFx0XHRwYWRkaW5nOiAxMHB4IDE1cHggOHB4O1xyXG5cclxuXHRcdFx0XHRcdFx0Jjo6YmVmb3Jle1xyXG5cdFx0XHRcdFx0XHRcdGNvbnRlbnQ6IFwiXCI7XHJcblx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQmOm5vdCgubWVudS1pdGVtLWhhcy1jaGlsZHJlbil7XHJcblx0XHRcdFx0XHRcdD5hIHtcclxuXHRcdFx0XHRcdFx0XHQuYmRiO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdD4gdWwge1xyXG5cdFx0XHRcdFx0XHR3aWR0aDpAbWlkX25hdl9kcm9wZG93bl93aWR0aDtcclxuXHRcdFx0XHRcdFx0cGFkZGluZzowO1xyXG5cclxuXHRcdFx0XHRcdFx0PiBsaSB7XHJcblx0XHRcdFx0XHRcdFx0PmF7XHJcblx0XHRcdFx0XHRcdFx0XHQvLy5iZGI7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdFx0XHRcdFx0XHR3aWR0aDpAYm90X25hdl9kcm9wZG93bl93aWR0aDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQmOmhvdmVyID4gdWwge1xyXG5cdFx0XHRcdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdFx0XHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0XHRcdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0YTplbXB0eSB7XHJcblx0XHRcdFx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0XHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGxpLm1lbnUtaXRlbS1tZWdhLWZ1bGx3aWR0aCB7XHJcblx0XHRcdD4gZGl2Lm1lbnUtaXRlbS1tZWdhLWNvbnRhaW5lciA+IHVsID4gbGkgYSwgXHJcblx0XHRcdD4gZGl2Lm1lbnUtaXRlbS1tZWdhLWNvbnRhaW5lciA+IHVsID4gbGkgdWwge1xyXG5cdFx0XHRcdHdpZHRoOmF1dG87XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYubWVudS1pdGVtLW1lZ2EtY29scy10d28gPiBkaXYubWVudS1pdGVtLW1lZ2EtY29udGFpbmVyID4gdWwgPiBsaSB7XHJcblx0XHRcdFx0d2lkdGg6NTAlO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLm1lbnUtaXRlbS1tZWdhLWNvbHMtdGhyZWUgPiBkaXYubWVudS1pdGVtLW1lZ2EtY29udGFpbmVyID4gdWwgPiBsaSB7XHJcblx0XHRcdFx0d2lkdGg6MzMuMzMlO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLm1lbnUtaXRlbS1tZWdhLWNvbHMtZm91ciA+IGRpdi5tZW51LWl0ZW0tbWVnYS1jb250YWluZXIgPiB1bCA+IGxpIHtcclxuXHRcdFx0XHR3aWR0aDoyNSU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYubWVudS1pdGVtLW1lZ2EtY29scy1maXZlID4gZGl2Lm1lbnUtaXRlbS1tZWdhLWNvbnRhaW5lciA+IHVsID4gbGkge1xyXG5cdFx0XHRcdHdpZHRoOjIwJTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuYXVkaW8uZnVsbC13aWR0aCB7XHJcblx0d2lkdGg6MTAwJTtcclxufVxyXG5cclxuLmFsaWdubGVmdCwgXHJcbi5mbCB7XHJcblx0LmZsO1xyXG59XHJcblxyXG4uYWxpZ25yaWdodCwgXHJcbi5mciB7XHJcblx0LmZyO1xyXG59XHJcblxyXG4uYWxpZ25jZW50ZXIge1xyXG5cdC50YWM7XHJcbn1cclxuXHJcbi5hbGlnbmNlbnRlcixcclxuLmFsaWdubm9uZSB7XHJcblx0Y2xlYXI6Ym90aDtcclxufVxyXG5cclxuaW1nIHtcclxuXHQmLmFsaWdubGVmdCwgXHJcblx0Ji5mbCB7XHJcblx0XHRtYXJnaW4tcmlnaHQ6QGJsb2Nrc19ob3JfcGFkO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTpAbGluZV9oZWlnaHRfcGFkO1xyXG5cdH1cclxuXHRcclxuXHQmLmFsaWducmlnaHQsIFxyXG5cdCYuZnIge1xyXG5cdFx0bWFyZ2luLWxlZnQ6QGJsb2Nrc19ob3JfcGFkO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTpAbGluZV9oZWlnaHRfcGFkO1xyXG5cdH1cclxuXHRcclxuXHQmLmFsaWduY2VudGVyIHtcclxuXHRcdG1hcmdpbjowIGF1dG8gQGxpbmVfaGVpZ2h0X3BhZDtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0fVxyXG5cdFxyXG5cdCYuYWxpZ25ub25lIHtcclxuXHRcdG1hcmdpbi1ib3R0b206QGxpbmVfaGVpZ2h0X3BhZDtcclxuXHR9XHJcbn1cclxuXHJcbi5kbiB7XHJcblx0LmRuO1xyXG59XHJcblxyXG4udGFsLCBcclxuLnRhX2xlZnQge1xyXG5cdC50YWw7XHJcbn1cclxuXHJcbi50YWMsIFxyXG4udGFfY2VudGVyIHtcclxuXHQudGFjO1xyXG59XHJcblxyXG4udGFyLCBcclxuLnRhX3JpZ2h0IHtcclxuXHQudGFyO1xyXG59XHJcblxyXG4uY2wsIFxyXG4uY2xlYXIge1xyXG5cdGRpc3BsYXk6YmxvY2s7XHJcblx0LmNsO1xyXG59XHJcblxyXG4ub3ZoIHtcclxuXHQub3ZoO1xyXG59XHJcblxyXG4ubG93X2Nhc2Uge1xyXG5cdHRleHQtdHJhbnNmb3JtOmxvd2VyY2FzZTtcclxufVxyXG5cclxuLnVwX2Nhc2Uge1xyXG5cdHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcclxufVxyXG5cclxuLmNtc21hc3RlcnNfcmVzcG9uc2l2ZV93aWR0aCB7XHJcblx0ZGlzcGxheTpibG9jaztcclxuXHR3aWR0aDphdXRvO1xyXG5cdHZpc2liaWxpdHk6aGlkZGVuO1xyXG59XHJcblxyXG4uY21zbWFzdGVyc19jb2x1bW4ge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdG1pbi1oZWlnaHQ6MXB4O1xyXG59XHJcblxyXG4uY21zbWFzdGVyc19jb2x1bW5fc3RpY2t5IHtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0dG9wOiAwO1xyXG59XHJcblxyXG4uY21zbWFzdGVyc19jb2x1bW5faW5uZXIge1xyXG5cdHdpZHRoOjEwMCU7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0bWluLWhlaWdodDoxcHg7XHJcbn1cclxuXHJcbi5vbmVfZmlyc3QsIFxyXG4ub25lX2hhbGYsIFxyXG4ub25lX3RoaXJkLCBcclxuLnR3b190aGlyZCwgXHJcbi5vbmVfZm91cnRoLCBcclxuLnRocmVlX2ZvdXJ0aCwgXHJcbi5vbmVfZmlmdGgsIFxyXG4ub25lX3NpeHRoIHtcclxuXHRtYXJnaW46MCBAY29sX21hcjtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQuZmw7XHJcbn1cclxuXHJcbi5vbmVfc2l4dGgge1xyXG5cdHdpZHRoOnJvdW5kKCgxMDAlIC8gNikgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3Jvd19ub19tYXJnaW4gPiAuY21zbWFzdGVyc19yb3dfbWFyZ2luID4gLm9uZV9zaXh0aCB7XHJcblx0d2lkdGg6cm91bmQoKDEwMCUgLyA2KSwgMik7XHJcbn1cclxuXHJcbi5vbmVfZmlmdGgge1xyXG5cdHdpZHRoOnJvdW5kKCgxMDAlIC8gNSkgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3Jvd19ub19tYXJnaW4gPiAuY21zbWFzdGVyc19yb3dfbWFyZ2luID4gLm9uZV9maWZ0aCB7XHJcblx0d2lkdGg6cm91bmQoKDEwMCUgLyA1KSwgMik7XHJcbn1cclxuXHJcbi5vbmVfZm91cnRoIHtcclxuXHR3aWR0aDpyb3VuZCgoMTAwJSAvIDQpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG59XHJcblxyXG4uY21zbWFzdGVyc19yb3dfbm9fbWFyZ2luID4gLmNtc21hc3RlcnNfcm93X21hcmdpbiA+IC5vbmVfZm91cnRoIHtcclxuXHR3aWR0aDpyb3VuZCgoMTAwJSAvIDQpLCAyKTtcclxufVxyXG5cclxuLm9uZV90aGlyZCB7XHJcblx0d2lkdGg6cm91bmQoKDEwMCUgLyAzKSAtIChAY29sX21hciAqIDIpLCAyKTtcclxufVxyXG5cclxuLmNtc21hc3RlcnNfcm93X25vX21hcmdpbiA+IC5jbXNtYXN0ZXJzX3Jvd19tYXJnaW4gPiAub25lX3RoaXJkIHtcclxuXHR3aWR0aDpyb3VuZCgoMTAwJSAvIDMpLCAyKTtcclxufVxyXG5cclxuLm9uZV9oYWxmIHtcclxuXHR3aWR0aDpyb3VuZCgoMTAwJSAvIDIpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG59XHJcblxyXG4uY21zbWFzdGVyc19yb3dfbm9fbWFyZ2luID4gLmNtc21hc3RlcnNfcm93X21hcmdpbiA+IC5vbmVfaGFsZiB7XHJcblx0d2lkdGg6cm91bmQoKDEwMCUgLyAyKSwgMik7XHJcbn1cclxuXHJcbi50d29fdGhpcmQge1xyXG5cdHdpZHRoOnJvdW5kKCgoMTAwJSAqIDIpIC8gMykgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3Jvd19ub19tYXJnaW4gPiAuY21zbWFzdGVyc19yb3dfbWFyZ2luID4gLnR3b190aGlyZCB7XHJcblx0d2lkdGg6cm91bmQoKCgxMDAlICogMikgLyAzKSwgMik7XHJcbn1cclxuXHJcbi50aHJlZV9mb3VydGgge1xyXG5cdHdpZHRoOnJvdW5kKCgoMTAwJSAqIDMpIC8gNCkgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3Jvd19ub19tYXJnaW4gPiAuY21zbWFzdGVyc19yb3dfbWFyZ2luID4gLnRocmVlX2ZvdXJ0aCB7XHJcblx0d2lkdGg6cm91bmQoKCgxMDAlICogMykgLyA0KSwgMik7XHJcbn1cclxuXHJcbi5vbmVfZmlyc3Qge1xyXG5cdHdpZHRoOnJvdW5kKDEwMCUgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0ZmxvYXQ6bm9uZTtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQuY2w7XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3Jvd19ub19tYXJnaW4gPiAuY21zbWFzdGVyc19yb3dfbWFyZ2luID4gLm9uZV9maXJzdCB7XHJcblx0d2lkdGg6cm91bmQoMTAwJSwgMik7XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3Jvd19tYXJnaW4ge1xyXG5cdCYuY21zbWFzdGVyc19yb3dfY29sdW1uc19iZWhhdmlvciB7XHJcblx0XHQuZGlzcGxheV9mbGV4O1xyXG5cdFx0LmZsZXhfd3JhcCh3cmFwKTtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdGNvbnRlbnQ6bm9uZTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5jbXNtYXN0ZXJzXzEzMTMxMyB7XHJcblx0XHRcdHdpZHRoOjk5Ljk5JTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfY29sdW1uIHtcclxuXHRcdFx0LmNtc21hc3RlcnNfY29sdW1uX2lubmVyIHtcclxuXHRcdFx0XHQuZGlzcGxheV9mbGV4O1xyXG5cdFx0XHRcdC5mbGV4X2RpcmVjdGlvbihjb2x1bW4pO1xyXG5cdFx0XHRcdC5hbGlnbl9jb250ZW50KGZsZXgtc3RhcnQpO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHQ+IGRpdiB7XHJcblx0XHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHQ+IC5jbXNtYXN0ZXJzX2ZlYXR1cmVkX2Jsb2NrIHtcclxuXHRcdFx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LnNhZmFyaV9vbmx5ICYsIFxyXG5cdFx0XHQuc2FmYXJpX21vYmlsZV9vbmx5ICYge1xyXG5cdFx0XHRcdC5kaXNwbGF5X2ZsZXg7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfY29sdW1uX2lubmVyIHtcclxuXHRcdFx0XHRcdG1pbi13aWR0aDoxMDAlO1xyXG5cdFx0XHRcdFx0aGVpZ2h0OmF1dG87XHJcblx0XHRcdFx0XHQuZmxleF9kaXJlY3Rpb24ocm93KTtcclxuXHRcdFx0XHRcdC5mbGV4X3dyYXAod3JhcCk7XHJcblx0XHRcdFx0XHQuYWxpZ25fY29udGVudChmbGV4LXN0YXJ0KTtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0PiAuY21zbWFzdGVyc19mZWF0dXJlZF9ibG9jayB7XHJcblx0XHRcdFx0XHRcdGhlaWdodDphdXRvO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuW2RhdGEtYW5pbWF0aW9uXSB7XHJcblx0Lm9wKDApO1xyXG59XHJcblxyXG5bZGF0YS1hbmltYXRpb25dLmFuaW1hdGVkIHtcclxuXHQub3AoMSk7XHJcbn1cclxuXHJcbiNwYWdlIHtcclxuXHQmLmNtc21hc3RlcnNfYm94ZWQge1xyXG5cdFx0d2lkdGg6QGNvbnRfd2lkdGhfZGVmICsgQGJsb2Nrc19ob3JfcGFkO1xyXG5cdFx0bWFyZ2luOjAgYXV0bztcclxuXHRcdFxyXG5cdFx0I2hlYWRlciwgXHJcblx0XHQjZm9vdGVyIHtcclxuXHRcdFx0d2lkdGg6QGNvbnRfd2lkdGhfZGVmICsgQGJsb2Nrc19ob3JfcGFkO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuI3BhZ2UsIFxyXG4jbWFpbiwgXHJcbiNtaWRkbGUsIFxyXG4ubWlkZGxlX2NvbnRlbnQsIFxyXG4jYm90dG9tLCBcclxuI2Zvb3RlciwgXHJcbi5oZWFkbGluZSwgXHJcbi5oZWFkbGluZV9vdXRlciwgXHJcbi5taWRkbGVfaW5uZXIsIFxyXG4uY21zbWFzdGVyc19yb3csIFxyXG4uY21zbWFzdGVyc19yb3dfb3V0ZXIsIFxyXG4uY21zbWFzdGVyc19yb3dfb3V0ZXJfcGFyZW50IHtcclxuXHR3aWR0aDoxMDAlO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG59XHJcblxyXG4ucG9zdC1wYXNzd29yZC1mb3JtLFxyXG4uaGVhZGVyX3RvcF9pbm5lciwgXHJcbi5oZWFkZXJfbWlkX2lubmVyLCBcclxuLmhlYWRlcl9ib3RfaW5uZXIsIFxyXG4uY29udGVudF93cmFwLCBcclxuLmhlYWRsaW5lX2lubmVyLCBcclxuLmJvdHRvbV9vdXRlciwgXHJcbi5mb290ZXJfaW5uZXIsIFxyXG4uY21zbWFzdGVyc19yb3dfaW5uZXIge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdHdpZHRoOkBjb250X3dpZHRoX2RlZjtcclxuXHRwYWRkaW5nOjAgQGJsb2Nrc19ob3JfcGFkO1xyXG5cdC5tMGE7XHJcbn1cclxuXHJcblxyXG4uY29udGVudF93cmFwIC5wb3N0LXBhc3N3b3JkLWZvcm0ge1xyXG5cdHdpZHRoOmF1dG87XHJcblx0cGFkZGluZzowO1xyXG59XHJcblxyXG4uY21zbWFzdGVyc19yb3cge1xyXG5cdCYuY21zbWFzdGVyc19yb3dfdG9wX2RlZmF1bHQuY21zbWFzdGVyc19yb3dfYm90X2RlZmF1bHQge1xyXG5cdFx0ei1pbmRleDowO1xyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfcm93X3RvcF9sZWZ0X2RpYWdvbmFsOmJlZm9yZSwgXHJcblx0Ji5jbXNtYXN0ZXJzX3Jvd19ib3RfbGVmdF9kaWFnb25hbDphZnRlciB7XHJcblx0XHRjb250ZW50OicnO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjppbmhlcml0O1xyXG5cdFx0d2lkdGg6MTUwJTtcclxuXHRcdGhlaWdodDoxNTBweDtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0bGVmdDphdXRvO1xyXG5cdFx0cmlnaHQ6MDtcclxuXHRcdHRvcDowO1xyXG5cdFx0Ym90dG9tOmF1dG87XHJcblx0XHR6LWluZGV4OjE7XHJcblx0XHQtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMmRlZyk7XHJcblx0XHQtbW96LXRyYW5zZm9ybTpyb3RhdGUoMmRlZyk7XHJcblx0XHQtbXMtdHJhbnNmb3JtOnJvdGF0ZSgyZGVnKTtcclxuXHRcdHRyYW5zZm9ybTpyb3RhdGUoMmRlZyk7XHJcblx0XHQtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46MTAwJSAwO1xyXG5cdFx0LW1vei10cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMDtcclxuXHRcdC1tcy10cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMDtcclxuXHRcdHRyYW5zZm9ybS1vcmlnaW46MTAwJSAwO1xyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfcm93X2JvdF9sZWZ0X2RpYWdvbmFsOmFmdGVyIHtcclxuXHRcdHRvcDphdXRvO1xyXG5cdFx0Ym90dG9tOjA7XHJcblx0XHQtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTJkZWcpO1xyXG5cdFx0LW1vei10cmFuc2Zvcm06cm90YXRlKC0yZGVnKTtcclxuXHRcdC1tcy10cmFuc2Zvcm06cm90YXRlKC0yZGVnKTtcclxuXHRcdHRyYW5zZm9ybTpyb3RhdGUoLTJkZWcpO1xyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfcm93X3RvcF9yaWdodF9kaWFnb25hbDpiZWZvcmUsIFxyXG5cdCYuY21zbWFzdGVyc19yb3dfYm90X3JpZ2h0X2RpYWdvbmFsOmFmdGVyIHtcclxuXHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXQ7XHJcblx0XHR3aWR0aDoxNTAlO1xyXG5cdFx0aGVpZ2h0OjE1MHB4O1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRsZWZ0OjA7XHJcblx0XHRyaWdodDphdXRvO1xyXG5cdFx0dG9wOjA7XHJcblx0XHRib3R0b206YXV0bztcclxuXHRcdHotaW5kZXg6MTtcclxuXHRcdC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMmRlZyk7XHJcblx0XHQtbW96LXRyYW5zZm9ybTpyb3RhdGUoLTJkZWcpO1xyXG5cdFx0LW1zLXRyYW5zZm9ybTpyb3RhdGUoLTJkZWcpO1xyXG5cdFx0dHJhbnNmb3JtOnJvdGF0ZSgtMmRlZyk7XHJcblx0XHQtd2Via2l0LXRyYW5zZm9ybS1vcmlnaW46MCAwO1xyXG5cdFx0LW1vei10cmFuc2Zvcm0tb3JpZ2luOjAgMDtcclxuXHRcdC1tcy10cmFuc2Zvcm0tb3JpZ2luOjAgMDtcclxuXHRcdHRyYW5zZm9ybS1vcmlnaW46MCAwO1xyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfcm93X2JvdF9yaWdodF9kaWFnb25hbDphZnRlciB7XHJcblx0XHR0b3A6YXV0bztcclxuXHRcdGJvdHRvbTowO1xyXG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDJkZWcpO1xyXG5cdFx0LW1vei10cmFuc2Zvcm06cm90YXRlKDJkZWcpO1xyXG5cdFx0LW1zLXRyYW5zZm9ybTpyb3RhdGUoMmRlZyk7XHJcblx0XHR0cmFuc2Zvcm06cm90YXRlKDJkZWcpO1xyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfcm93X3RvcF96aWd6YWc6YmVmb3JlLCBcclxuXHQmLmNtc21hc3RlcnNfcm93X2JvdF96aWd6YWc6YWZ0ZXIge1xyXG5cdFx0Y29udGVudDonJztcclxuXHRcdGJhY2tncm91bmQtc2l6ZToxMHB4IDVweDtcclxuXHRcdGhlaWdodDo1cHg7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRsZWZ0OjA7XHJcblx0XHRyaWdodDowO1xyXG5cdFx0dG9wOmF1dG87XHJcblx0XHRib3R0b206MTAwJTtcclxuXHRcdHotaW5kZXg6MTtcclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX3Jvd19ib3RfemlnemFnOmFmdGVyIHtcclxuXHRcdHRvcDoxMDAlO1xyXG5cdFx0Ym90dG9tOmF1dG87XHJcblx0XHQtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTtcclxuXHRcdC1tb3otdHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpO1xyXG5cdFx0LW1zLXRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTtcclxuXHRcdHRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTtcclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX3Jvd190b3BfdHJpYW5nbGU6YmVmb3JlLCBcclxuXHQmLmNtc21hc3RlcnNfcm93X2JvdF90cmlhbmdsZTphZnRlciB7XHJcblx0XHRjb250ZW50OicnO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjppbmhlcml0O1xyXG5cdFx0ei1pbmRleDoxO1xyXG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcclxuXHRcdC1tb3otdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XHJcblx0XHQtbXMtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XHJcblx0XHR0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcclxuXHRcdC5wb3NfYWJzKDMwcHgsIDMwcHgsIDAsIDAsIC0xNXB4LCBhdXRvKTtcclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX3Jvd19ib3RfdHJpYW5nbGU6YWZ0ZXIge1xyXG5cdFx0dG9wOmF1dG87XHJcblx0XHRib3R0b206LTE1cHg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Jvd19vdXRlcl9wYXJlbnQge1xyXG5cdFx0cGFkZGluZzouMXB4IDA7XHJcblx0XHR6LWluZGV4OjI7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Jvd19pbm5lciB7XHJcblx0XHQmLmNtc21hc3RlcnNfcm93X2Z1bGx3aWR0aCB7XHJcblx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdHBhZGRpbmc6MCBAYmxvY2tzX2hvcl9wYWQgKiAyO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLmNtc21hc3RlcnNfcm93X25vX21hcmdpbiB7XHJcblx0XHRcdD4gLmNtc21hc3RlcnNfcm93X21hcmdpbiB7XHJcblx0XHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0PiAuY21zbWFzdGVyc19jb2x1bW4ge1xyXG5cdFx0XHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Jvd19vdmVybGF5IHtcclxuXHRcdC5mdWxsd2lkdGhfaW5fYmxvY2s7XHJcblx0fVxyXG59XHJcblxyXG4uY21zbWFzdGVyc19yb3dfbWFyZ2luIHtcclxuXHRtYXJnaW46MCAtQGNvbF9tYXIgLSAwLjA3O1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG59XHJcblxyXG4uY29udGVudF93cmFwIHtcclxuXHQmLnJfc2lkZWJhciwgXHJcblx0Ji5sX3NpZGViYXIsIFxyXG5cdC5vcGVuZWQtYXJ0aWNsZSwgXHJcblx0LmNtc21hc3RlcnNfdGFicyB7XHJcblx0XHQuY21zbWFzdGVyc19yb3cge1xyXG5cdFx0XHQuY3RieDtcclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX3Jvd19pbm5lciB7XHJcblx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5jb250ZW50X3dyYXAuY21zbWFzdGVyc19zZXRfZnVsbHdpZHRoIHtcclxuXHR3aWR0aDoxMDAlO1xyXG5cdHBhZGRpbmc6MDtcclxufVxyXG5cclxuI3BhZ2UsIFxyXG4jbWlkZGxlLCBcclxuLm1pZGRsZV9pbm5lciwgXHJcbi5taWRkbGVfY29udGVudCwgXHJcbiNib3R0b20sIFxyXG4uYm90dG9tX2JnLCBcclxuLmNvbnRlbnRfd3JhcCwgXHJcbi5jbXNtYXN0ZXJzX3Jvd19pbm5lciwgXHJcbi5jbXNtYXN0ZXJzX3Jvd19tYXJnaW4sIFxyXG4uY21zbWFzdGVyc19jb2x1bW5faW5uZXIge1xyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0LmNsX2FmdGVyO1xyXG5cdH1cclxufVxyXG5cclxuI21pZGRsZSB7XHJcblx0ei1pbmRleDoxO1xyXG59XHJcblxyXG4ubWlkZGxlX2NvbnRlbnQge1xyXG5cdHBhZGRpbmc6QGNvbnRfdmVydF9wYWQgMDtcclxufVxyXG5cclxuLm1pZGRsZV9jb250ZW50OmVtcHR5IHtcclxuXHQuZG47XHJcbn1cclxuXHJcbi5jb250ZW50IHtcclxuXHR3aWR0aDpAY29udGVudF93aWR0aDtcclxuXHRwYWRkaW5nOkBjb250X3ZlcnRfcGFkIDA7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0LmZsO1xyXG5cdFxyXG5cdCYuZnIge1xyXG5cdFx0LmZyO1xyXG5cdH1cclxufVxyXG5cclxuLnNpZGViYXIge1xyXG5cdHdpZHRoOkBzaWRlYmFyX3dpZHRoO1xyXG5cdHBhZGRpbmc6QGNvbnRfdmVydF9wYWQgMCBAY29udF92ZXJ0X3BhZCBAY29udF9zaWRlYmFyX3BhZDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQuZnI7XHJcblx0XHJcblx0Ji5mbCB7XHJcblx0XHRwYWRkaW5nOkBjb250X3ZlcnRfcGFkIEBjb250X3NpZGViYXJfcGFkIEBjb250X3ZlcnRfcGFkIDA7XHJcblx0XHQuZmw7XHJcblx0fVxyXG59XHJcblxyXG4uYm90dG9tX2JnIHtcclxuXHRwYWRkaW5nLXRvcDoxMjBweDtcclxuXHRwYWRkaW5nLWJvdHRvbToxMDBweCAtIEBsaW5lX2hlaWdodF9wYWQ7XHJcbn1cclxuXHJcbi5ib3R0b21faW5uZXIge1xyXG5cdG1hcmdpbjowIC1AY29sX21hcjtcclxuXHRcclxuXHQmOmFmdGVyIHtcclxuXHRcdC5jbF9hZnRlcjtcclxuXHR9XHJcblxyXG5cdGFzaWRlIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0ZmxvYXQ6bGVmdDtcclxuXHRcdG1hcmdpbjowIEBjb2xfbWFyO1xyXG5cdH1cclxufVxyXG5cclxuLyogSW5zdGFncmFtICovXHJcbiNzYmlfbG9hZCB7XHJcblx0cGFkZGluZy10b3A6MCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIEljb25zICoqKioqKioqKioqKioqKioqKi9cclxuLyogR2xvYmFsICovXHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fY29tbWVudDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODdjJzsgfVxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX2xpa2U6YmVmb3JlIHsgY29udGVudDogJ1xcZTg4OSc7IH1cclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9zZWFyY2g6YmVmb3JlIHsgY29udGVudDogJ1xcZWFhYyc7IH1cclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9jYW5jZWw6YmVmb3JlIHsgXHJcblx0Y29udGVudDogJ1xcZTgzZic7IFxyXG5cclxuXHQjcGFnZSAme1xyXG5cdFx0Zm9udC1mYW1pbHk6IFwiZm9udGVsbG8tY3VzdG9tXCI7XHJcblx0fVxyXG5cclxufVxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3Jlc3BfbmF2OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU5MjUnOyB9XHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fcGVyc29uOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MTMnOyB9XHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25faW1hZ2U6YmVmb3JlIHsgY29udGVudDogJ1xcZTgzMSc7IH1cclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9jaGVjazpiZWZvcmUgeyBjb250ZW50OiAnXFxlYWJiJzsgfVxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3NwaW5uZXI6YmVmb3JlIHsgY29udGVudDogJ1xcZTlmZCc7IH1cclxuXHJcbi8qIEFycm93cyAqL1xyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3NsaWRlX3ByZXY6YmVmb3JlLCBcclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9wYWdpbmF0aW9uX3ByZXY6YmVmb3JlLCBcclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9jb21tZW50c19uYXZfcHJldjpiZWZvcmUsIFxyXG4uY21zbWFzdGVyc19wcmV2X2Fycm93IHNwYW46YmVmb3JlIHsgXHJcblx0Y29udGVudDogJ1xcZTg5ZCc7IFxyXG5cdGZvbnQtZmFtaWx5OiBcImZvbnRlbGxvLWN1c3RvbVwiICFpbXBvcnRhbnQ7IFxyXG59XHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fc2xpZGVfbmV4dDpiZWZvcmUsIFxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3BhZ2luYXRpb25fbmV4dDpiZWZvcmUsIFxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX2NvbW1lbnRzX25hdl9uZXh0OmJlZm9yZSwgXHJcbi5jbXNtYXN0ZXJzX25leHRfYXJyb3cgc3BhbjpiZWZvcmUgeyBcclxuXHRjb250ZW50OiAnXFxlODljJzsgXHJcblx0Zm9udC1mYW1pbHk6IFwiZm9udGVsbG8tY3VzdG9tXCIgIWltcG9ydGFudDsgXHJcbn1cclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9zbGlkZV90b3A6YmVmb3JlIHsgY29udGVudDogJ1xcZWIyMyc7IH1cclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9zbGlkZV9ib3R0b206YmVmb3JlIHsgY29udGVudDogJ1xcZWIyMCc7IH1cclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9yZXNwX25hdl9zbGlkZV91cDpiZWZvcmUgeyBjb250ZW50OiAnXFxlYjIzJzsgfVxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3Jlc3BfbmF2X3NsaWRlX2Rvd246YmVmb3JlIHsgY29udGVudDogJ1xcZWIyMCc7IH1cclxuXHJcbi8qIFdpZGdldCBBZGQgSW5mbyAqL1xyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3VzZXJfbWFpbDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODg1JzsgfVxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3VzZXJfd2Vic2l0ZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODM2JzsgfVxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3VzZXJfcGhvbmU6YmVmb3JlIHsgY29udGVudDogJ1xcZTgwNSc7IH1cclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl91c2VyX2FkZHJlc3M6YmVmb3JlIHsgY29udGVudDogJ1xcZTg5NSc7IH1cclxuXHJcbi8qIFR3aXR0ZXIgc3RyaXBlICovXHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fdXNlcl90d2l0dGVyOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGVhOTcnOyB9XHJcblxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBFbGVtZW50cyAqKioqKioqKioqKioqKioqKiovXHJcbi8qIEljb24gQXJyb3cgR2xvYmFsIFN0eWxlcyAqL1xyXG4uY21zbWFzdGVyc19wcmV2X2Fycm93LCBcclxuLmNtc21hc3RlcnNfbmV4dF9hcnJvdyB7XHJcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0LnRhYztcclxuXHRcclxuXHQmOmFmdGVyIHtcclxuXHRcdC52YWxpZ25fYWZ0ZXI7XHJcblx0fVxyXG5cdFxyXG5cdHNwYW4ge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cdFx0d2lkdGg6MjBweDtcclxuXHRcdGhlaWdodDoxNXB4O1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGZvbnQtZmFtaWx5Oidmb250ZWxsby1jdXN0b20nO1xyXG5cdFx0XHRmb250LXNpemU6MTVweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6MTVweDtcclxuXHRcdFx0dGV4dC1hbGlnbjpjZW50ZXI7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHNwZWFrOm5vbmU7XHJcblx0XHRcdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7XHJcblx0XHRcdC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3ByZXZfYXJyb3d7XHJcblx0c3BhbiB7XHJcblx0XHR0ZXh0LWluZGVudDogLTFweDtcclxuXHR9XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX25leHRfYXJyb3cge1xyXG5cdHNwYW4ge1xyXG5cdFx0dGV4dC1pbmRlbnQ6IDJweDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKiBQaXhlbCBBcnJvdyBHbG9iYWwgU3R5bGVzICovXHJcbi5jbXNtYXN0ZXJzX3ByZXZfYXJyb3dfcGl4ZWwsXHJcbi5jbXNtYXN0ZXJzX25leHRfYXJyb3dfcGl4ZWwge1xyXG5cdGJhY2tncm91bmQ6IzAwMDAwMDtcclxuXHQucG9zX2FicygxcHgsIDFweCwgMCwgYXV0byk7XHJcblxyXG5cdCY6YmVmb3JlLCBcclxuXHQmOmFmdGVyLCBcclxuXHRzcGFuOmJlZm9yZSwgXHJcblx0c3BhbjphZnRlciB7XHJcblx0XHRjb250ZW50OicnO1xyXG5cdFx0YmFja2dyb3VuZDp0cmFuc3BhcmVudDtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0d2lkdGg6MXB4O1xyXG5cdFx0LmJkdDtcclxuXHRcdC5iZGI7XHJcblx0fVxyXG5cdFxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdGhlaWdodDozcHg7XHJcblx0XHRsZWZ0OjFweDtcclxuXHRcdHRvcDotMXB4O1xyXG5cdH1cclxuXHRcclxuXHQmOmFmdGVyIHtcclxuXHRcdGhlaWdodDo1cHg7XHJcblx0XHRsZWZ0OjJweDtcclxuXHRcdHRvcDotMnB4O1xyXG5cdH1cclxuXHRcclxuXHRzcGFuOmJlZm9yZSB7XHJcblx0XHRoZWlnaHQ6N3B4O1xyXG5cdFx0bGVmdDozcHg7XHJcblx0XHR0b3A6LTNweDtcclxuXHR9XHJcblx0XHJcblx0c3BhbjphZnRlciB7XHJcblx0XHRoZWlnaHQ6OXB4O1xyXG5cdFx0bGVmdDo0cHg7XHJcblx0XHR0b3A6LTRweDtcclxuXHR9XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX25leHRfYXJyb3dfcGl4ZWwge1xyXG5cdHJpZ2h0OjA7XHJcblx0bGVmdDphdXRvO1xyXG5cdFxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdGxlZnQ6YXV0bztcclxuXHRcdHJpZ2h0OjFweDtcclxuXHR9XHJcblx0XHJcblx0JjphZnRlciB7XHJcblx0XHRsZWZ0OmF1dG87XHJcblx0XHRyaWdodDoycHg7XHJcblx0fVxyXG5cdFxyXG5cdHNwYW46YmVmb3JlIHtcclxuXHRcdGxlZnQ6YXV0bztcclxuXHRcdHJpZ2h0OjNweDtcclxuXHR9XHJcblx0XHJcblx0c3BhbjphZnRlciB7XHJcblx0XHRsZWZ0OmF1dG87XHJcblx0XHRyaWdodDo0cHg7XHJcblx0fVxyXG59XHJcblxyXG4uY21zbWFzdGVyc190b3BfYXJyb3dfcGl4ZWwsIFxyXG4uY21zbWFzdGVyc19ib3RfYXJyb3dfcGl4ZWwge1xyXG5cdGJhY2tncm91bmQ6IzAwMDAwMDtcclxuXHQucG9zX2FicygxcHgsIDFweCwgMCwgMCwgLTRweCk7XHJcblxyXG5cdCY6YmVmb3JlLCBcclxuXHQmOmFmdGVyLCBcclxuXHRzcGFuOmJlZm9yZSwgXHJcblx0c3BhbjphZnRlciB7XHJcblx0XHRjb250ZW50OicnO1xyXG5cdFx0YmFja2dyb3VuZDp0cmFuc3BhcmVudDtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0aGVpZ2h0OjFweDtcclxuXHRcdC5iZGw7XHJcblx0XHQuYmRyO1xyXG5cdH1cclxuXHJcblx0JjpiZWZvcmUge1xyXG5cdFx0d2lkdGg6M3B4O1xyXG5cdFx0dG9wOjFweDtcclxuXHRcdGxlZnQ6LTFweDtcclxuXHR9XHJcblxyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0d2lkdGg6NXB4O1xyXG5cdFx0dG9wOjJweDtcclxuXHRcdGxlZnQ6LTJweDtcclxuXHR9XHJcblxyXG5cdHNwYW46YmVmb3JlIHtcclxuXHRcdHdpZHRoOjdweDtcclxuXHRcdHRvcDozcHg7XHJcblx0XHRsZWZ0Oi0zcHg7XHJcblx0fVxyXG5cclxuXHRzcGFuOmFmdGVyIHtcclxuXHRcdHdpZHRoOjlweDtcclxuXHRcdHRvcDo0cHg7XHJcblx0XHRsZWZ0Oi00cHg7XHJcblx0fVxyXG59XHJcblxyXG4uY21zbWFzdGVyc19ib3RfYXJyb3dfcGl4ZWwge1xyXG5cdHRvcDo0cHg7XHJcblxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdHRvcDphdXRvO1xyXG5cdFx0Ym90dG9tOjFweDtcclxuXHR9XHJcblxyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0dG9wOmF1dG87XHJcblx0XHRib3R0b206MnB4O1xyXG5cdH1cclxuXHJcblx0c3BhbjpiZWZvcmUge1xyXG5cdFx0dG9wOmF1dG87XHJcblx0XHRib3R0b206M3B4O1xyXG5cdH1cclxuXHJcblx0c3BhbjphZnRlciB7XHJcblx0XHR0b3A6YXV0bztcclxuXHRcdGJvdHRvbTo0cHg7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyogUG9zdCBQYXNzd29yZCBGb3JtICovXHJcbi5wb3N0LXBhc3N3b3JkLWZvcm0ge1xyXG5cdHBhZGRpbmctdG9wOjQwcHg7XHJcblx0XHJcblx0cDpmaXJzdC1jaGlsZCB7XHJcblx0XHRmb250LXdlaWdodDpib2xkO1xyXG5cdH1cclxuXHRcclxuXHRsYWJlbCB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHZlcnRpY2FsLWFsaWduOmJvdHRvbTtcclxuXHR9XHJcblx0XHJcblx0aW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdIHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0fVxyXG5cdFxyXG5cdGlucHV0W3R5cGU9c3VibWl0XSB7XHJcblx0XHRsaW5lLWhlaWdodDpAaW5wdXRfaGVpZ2h0O1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRtYXJnaW46MCAwIDAgNXB4O1xyXG5cdFx0dmVydGljYWwtYWxpZ246Ym90dG9tO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIFByZWxvZGFlciAqL1xyXG4ucHJlbG9hZGVyIHtcclxuXHRkaXNwbGF5OmJsb2NrO1xyXG5cdHdpZHRoOjEwMCU7XHJcblx0aGVpZ2h0OjA7XHJcblx0cGFkZGluZy1ib3R0b206QHJlc3BfYmxvY2tzX3BhZDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQudGFjO1xyXG5cdFxyXG5cdC5mdWxsLXdpZHRoIHtcclxuXHRcdC5mdWxsd2lkdGhfaW5fYmxvY2s7XHJcblx0fVxyXG5cdFxyXG5cdCYuaGlnaEltZyB7XHJcblx0XHRoZWlnaHQ6YXV0bztcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdFxyXG5cdFx0LmZ1bGwtd2lkdGgge1xyXG5cdFx0XHRoZWlnaHQ6YXV0bztcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdHRvcDphdXRvO1xyXG5cdFx0XHRsZWZ0OmF1dG87XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyogUmVzaXphYmxlIEJsb2NrICovXHJcbi5yZXNpemFibGVfYmxvY2sge1xyXG5cdGRpc3BsYXk6YmxvY2s7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRoZWlnaHQ6MDtcclxuXHRwYWRkaW5nLWJvdHRvbTpAcmVzcF9ibG9ja3NfcGFkO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0LmZ1bGwtd2lkdGgge1xyXG5cdFx0LmZ1bGx3aWR0aF9pbl9ibG9jaztcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKiBJbWcgV3JhcHBlciAqL1xyXG4uY21zbWFzdGVyc19pbWdfd3JhcCB7XHJcblx0ZGlzcGxheTpibG9jaztcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQudGFjO1xyXG5cdC5vdmg7XHJcblxyXG5cdC5pbWdfcGxhY2Vob2xkZXIge1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRsZWZ0OjA7XHJcblx0XHR0b3A6MDtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRmb250LXNpemU6NDBweDtcclxuXHRcdFx0LnBvc19hYnM7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5oaWdoSW1nIHtcclxuXHRcdC5pbWdfcGxhY2Vob2xkZXIge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRwYWRkaW5nLWJvdHRvbTpAcmVzcF9ibG9ja3NfcGFkO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKiBJbWcgUm9sbG92ZXIgKi9cclxuLmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyX3dyYXAge1xyXG5cdGRpc3BsYXk6YmxvY2s7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHJcblx0LmltZ19wbGFjZWhvbGRlciB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdGxlZnQ6MDtcclxuXHRcdHRvcDowO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGZvbnQtc2l6ZTo0MHB4O1xyXG5cdFx0XHQucG9zX2FicztcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5oaWdoSW1nIHtcclxuXHRcdC5pbWdfcGxhY2Vob2xkZXIge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRwYWRkaW5nLWJvdHRvbTpAcmVzcF9ibG9ja3NfcGFkO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyIHtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0bGVmdDowO1xyXG5cdFx0dG9wOjA7XHJcblx0XHQudGFjO1xyXG5cdFx0Lm9wKDApO1xyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0LnZhbGlnbl9hZnRlcjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfb3Blbl9wb3N0X2xpbmsge1xyXG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX29wZW5fbGluaywgXHJcblx0XHQuY21zbWFzdGVyc19pbWFnZV9saW5rIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdHRvcDowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmOmhvdmVyIHtcclxuXHRcdC5jbXNtYXN0ZXJzX2ltZ19yb2xsb3ZlciB7XHJcblx0XHRcdC5vcCgwLjMpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIFBsYWNlaG9sZGVyIFNtYWxsICovXHJcbi5pbWdfcGxhY2Vob2xkZXJfc21hbGwge1xyXG5cdGhlaWdodDo2MHB4O1xyXG5cdHdpZHRoOjYwcHg7XHJcblx0ZGlzcGxheTpibG9jaztcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcclxuXHQmOmJlZm9yZSB7XHJcblx0XHRmb250LXNpemU6MThweDtcclxuXHRcdC5wb3NfYWJzO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIFZpZGVvIFdyYXBwZXIgKi9cclxuLndwLXZpZGVvLXNob3J0Y29kZSwgXHJcbi5tZWpzLWxheWVyIHtcclxuXHRtYXgtd2lkdGg6MTAwJTtcclxufVxyXG5cclxuLm1lanMtY29udGFpbmVyIHtcclxuXHQmLndwLXZpZGVvLXNob3J0Y29kZSwgXHJcblx0Ji53cC1hdWRpby1zaG9ydGNvZGUge1xyXG5cdFx0bWFyZ2luLWJvdHRvbTpAbGluZV9oZWlnaHRfcGFkO1xyXG5cdFx0bWF4LXdpZHRoOjEwMCU7XHJcblx0fVxyXG59XHJcblxyXG4uY21zbWFzdGVyc192aWRlb193cmFwIHtcclxuXHR3aWR0aDoxMDAlO1xyXG5cdG1heC13aWR0aDoxMDAlO1xyXG5cdGhlaWdodDowO1xyXG5cdHBhZGRpbmctYm90dG9tOkByZXNwX2Jsb2Nrc19wYWQ7XHJcblx0bWFyZ2luLWJvdHRvbTpAbGluZV9oZWlnaHRfcGFkO1xyXG5cdG92ZXJmbG93OmhpZGRlbjtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcclxuXHQ+IGRpdiB7XHJcblx0XHR3aWR0aDoxMDAlICFpbXBvcnRhbnQ7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0bGVmdDowO1xyXG5cdFx0dG9wOjA7XHJcblx0fVxyXG5cdFxyXG5cdGlmcmFtZSB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0bWF4LXdpZHRoOmF1dG87XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdG1hcmdpbi1ib3R0b206MDtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0bGVmdDowO1xyXG5cdFx0dG9wOjA7XHJcblx0fVxyXG5cdFxyXG5cdC53cC12aWRlby1zaG9ydGNvZGUsIFxyXG5cdC5tZWpzLWxheWVyIHtcclxuXHRcdHdpZHRoOjEwMCUgIWltcG9ydGFudDtcclxuXHRcdGhlaWdodDoxMDAlICFpbXBvcnRhbnQ7XHJcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdGxlZnQ6MDtcclxuXHRcdHRvcDowO1xyXG5cdFx0XHJcblx0XHQubWVqcy1vdmVybGF5LWJ1dHRvbiB7XHJcblx0XHRcdG1hcmdpbi10b3A6LTUwcHggIWltcG9ydGFudDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKiBTZWFyY2ggQmFyICovXHJcbi5zZWFyY2hfYmFyX3dyYXAge1xyXG5cdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdHdpZHRoOjEwMCU7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHJcblx0LnNlYXJjaF9maWVsZCB7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdGlucHV0IHtcclxuXHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHJcblx0XHRcdCNtaWRkbGUgJiwgXHJcblx0XHRcdCNib3R0b20gJiB7XHJcblx0XHRcdFx0cGFkZGluZy1sZWZ0OkBpbnB1dF9wYWQ7XHJcblx0XHRcdFx0cGFkZGluZy1yaWdodDo1NXB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5zZWFyY2hfYnV0dG9uIHtcclxuXHRcdHBhZGRpbmc6MXB4O1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHQucG9zX2Ficyg2MHB4LCAxMDAlLCBhdXRvLCAwKTtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdGJ1dHRvbiB7XHJcblx0XHRcdGJhY2tncm91bmQ6bm9uZTtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdGN1cnNvcjpwb2ludGVyO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0LmJkKDApO1xyXG5cdFx0XHQuYnhzaF9ub25lO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGZvbnQtc2l6ZToxNHB4O1xyXG5cdFx0XHRcdC5wb3NfYWJzO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyogU29jaWFsIEljb25zICovXHJcbi5zb2NpYWxfd3JhcCB7XHJcblx0ZGlzcGxheTpibG9jaztcclxuXHRoZWlnaHQ6MTAwJTtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdC5zb2NpYWxfd3JhcF9pbm5lciB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC52YWxpZ25fYWZ0ZXI7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdHVsIHtcclxuXHRcdGxpc3Qtc3R5bGU6bm9uZTtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0fVxyXG5cdFxyXG5cdGxpIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0bWFyZ2luOjAgMnB4IDAgMDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0XHJcblx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRkaXNwbGF5Om5vbmU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdGEge1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdHdpZHRoOjMwcHg7XHJcblx0XHRoZWlnaHQ6MzBweDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LmJkcnMoNTAlKTtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHQucG9zX2FicztcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKiBDb3JlIE93bCBDYXJvdXNlbCBDU1MgdjEuMy4yICovXHJcbi5jbXNtYXN0ZXJzX293bF9zbGlkZXI6bm90KC5vd2wtY2Fyb3VzZWwpIHtcclxuXHQ+IGRpdiB7XHJcblx0XHR3aWR0aDowO1xyXG5cdFx0aGVpZ2h0OjA7XHJcblx0XHR2aXNpYmlsaXR5OmhpZGRlbjtcclxuXHR9XHJcbn1cclxuXHJcbi5vd2wtY2Fyb3VzZWwge1xyXG5cdHdpZHRoOjEwMCU7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0LW1zLXRvdWNoLWFjdGlvbjpwYW4teTtcclxuXHQuZG47XHJcblx0XHJcblx0Lm93bC13cmFwcGVyLW91dGVyIHtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0XHJcblx0XHQmLmF1dG9IZWlnaHQge1xyXG5cdFx0XHQtd2Via2l0LXRyYW5zaXRpb246aGVpZ2h0IC41cyBlYXNlLWluLW91dDtcclxuXHRcdFx0LW1vei10cmFuc2l0aW9uOmhlaWdodCAuNXMgZWFzZS1pbi1vdXQ7XHJcblx0XHRcdC1tcy10cmFuc2l0aW9uOmhlaWdodCAuNXMgZWFzZS1pbi1vdXQ7XHJcblx0XHRcdC1vLXRyYW5zaXRpb246aGVpZ2h0IC41cyBlYXNlLWluLW91dDtcclxuXHRcdFx0dHJhbnNpdGlvbjpoZWlnaHQgLjVzIGVhc2UtaW4tb3V0O1xyXG5cdFx0fVxyXG5cdFxyXG5cdFx0Lm93bC13cmFwcGVyIHtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdC5kbjtcclxuXHRcdFx0XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdGNvbnRlbnQ6Jy4nO1xyXG5cdFx0XHRcdGxpbmUtaGVpZ2h0OjA7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHRoZWlnaHQ6MDtcclxuXHRcdFx0XHR2aXNpYmlsaXR5OmhpZGRlbjtcclxuXHRcdFx0XHQuY2w7XHJcblx0XHRcdH1cclxuXHRcdFxyXG5cdFx0XHQub3dsLWl0ZW0ge1xyXG5cdFx0XHRcdC5mbDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQub3dsLXdyYXBwZXIsIFxyXG5cdFx0Lm93bC1pdGVtIHtcclxuXHRcdFx0LXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtcclxuXHRcdFx0LW1vei1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtcclxuXHRcdFx0LW1zLWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO1xyXG5cdFx0XHQtd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7XHJcblx0XHRcdC1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTtcclxuXHRcdFx0LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5pZV9vbmx5ICYge1xyXG5cdFx0XHQub3dsLXdyYXBwZXIsIFxyXG5cdFx0XHQub3dsLWl0ZW0ge1xyXG5cdFx0XHRcdC1tcy1iYWNrZmFjZS12aXNpYmlsaXR5OnZpc2libGU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Lm93bC1jb250cm9scyB7XHJcblx0XHQtd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7XHJcblx0XHQta2h0bWwtdXNlci1zZWxlY3Q6bm9uZTtcclxuXHRcdC1tb3otdXNlci1zZWxlY3Q6bm9uZTtcclxuXHRcdC1tcy11c2VyLXNlbGVjdDpub25lO1xyXG5cdFx0dXNlci1zZWxlY3Q6bm9uZTtcclxuXHRcdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDApO1xyXG5cdH1cclxufVxyXG5cclxuLm93bC1wYWdpbmF0aW9uIHtcclxuXHRkaXNwbGF5OmJsb2NrO1xyXG5cdHdpZHRoOjEwMCU7XHJcblx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0dG9wOjA7XHJcblx0bGVmdDowO1xyXG5cdHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cdC50YWM7XHJcblx0XHJcblx0Lm93bC1wYWdlIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0cG9pbnRlci1ldmVudHM6IGF1dG87XHJcblx0XHR3aWR0aDoxMHB4O1xyXG5cdFx0aGVpZ2h0OjEwcHg7XHJcblx0XHRtYXJnaW46MCA3cHggMXB4O1xyXG5cdFx0dGV4dC1pbmRlbnQ6LTk5OTlweDtcclxuXHRcdGN1cnNvcjpwb2ludGVyO1xyXG5cdFx0LmJkcnMoNTAlKTtcclxuXHRcdG92ZXJmbG93OiBoaWRkZW47XHJcblx0XHRcclxuXHRcdCY6aG92ZXIsIFxyXG5cdFx0Ji5hY3RpdmUge1xyXG5cdFx0XHRvdXRsaW5lOm5vbmU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuYWN0aXZlIHtcclxuXHRcdFx0Y3Vyc29yOmRlZmF1bHQ7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4ub3dsLWJ1dHRvbnMge1xyXG5cdGRpc3BsYXk6YmxvY2s7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRsZWZ0OjA7XHJcblx0dG9wOjA7XHJcblx0LnRhYztcclxuXHRcclxuXHQ+IGRpdiB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdG1hcmdpbjowIDNweDtcclxuXHRcdGN1cnNvcjpwb2ludGVyO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdFx0LmJkcnMoNTAlKTtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKiBTbGlkZSBUb3AgQnV0dG9uICovXHJcbiNzbGlkZV90b3Age1xyXG5cdHRleHQtYWxpZ246Y2VudGVyO1xyXG5cdHdpZHRoOjUwcHg7XHJcblx0aGVpZ2h0OjUwcHg7XHJcblx0cG9zaXRpb246Zml4ZWQ7XHJcblx0Ym90dG9tOjUwcHg7XHJcblx0cmlnaHQ6MjBweDtcclxuXHR6LWluZGV4Ojk5OTk5O1xyXG5cdGFuaW1hdGlvbjogc2xpZGVfdG9wIDAuNXMgZWFzZTtcclxuXHQuZG47XHJcblx0XHJcblx0JjpiZWZvcmUge1xyXG5cdFx0Zm9udC1zaXplOjI1cHg7XHJcblx0XHRsaW5lLWhlaWdodDo1MHB4O1xyXG5cdH1cclxuXHRcclxuXHQ+IHNwYW4ge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHR0ZXh0LWluZGVudDotOTk5OXB4O1xyXG5cdH1cclxufVxyXG5cclxuLyogT3BlbmVkIEFydGljbGUgKi9cclxuQG9wZW5lZC1hcnRpY2xlLXBhZC1zaWRlOiAxMCU7XHJcblxyXG4ub3BlbmVkLWFydGljbGUge1xyXG5cdC5taWRkbGVfY29udGVudCAmIHtcclxuXHRcdHBhZGRpbmc6MCBAb3BlbmVkLWFydGljbGUtcGFkLXNpZGUgNTBweDtcclxuXHRcdFxyXG5cdFx0Ji5jbXNtYXN0ZXJzX3R0X3NpbmdsZV9ldmVudHtcclxuXHRcdFx0cGFkZGluZy1ib3R0b206IDA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYucG9ydGZvbGlvLCBcclxuXHRcdCYucHJvZmlsZXMge1xyXG5cdFx0XHRwYWRkaW5nLXRvcDozJTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG91dGxpbmU6bm9uZTtcclxufVxyXG5cclxuXHJcbi8qIExpa2VzIGFuZCBDb21tZW50cyAqL1xyXG4uY21zbWFzdGVyc19saWtlcywgXHJcbi5jbXNtYXN0ZXJzX2NvbW1lbnRzIHtcclxuXHRhIHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdGZvbnQtc2l6ZToxNHB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6MTZweDtcclxuXHRcdHBhZGRpbmc6MCAwIDAgMXB4O1xyXG5cdFx0Y3Vyc29yOnBvaW50ZXI7XHJcblx0XHRcclxuXHRcdCYuYWN0aXZlIHtcclxuXHRcdFx0Y3Vyc29yOmRlZmF1bHQ7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6OmJlZm9yZXtcclxuXHRcdFx0Zm9udC1zaXplOiAxNHB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdHNwYW4ge1xyXG5cdFx0XHRtYXJnaW46MCAwIDAgM3B4O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIEJ1dHRvbiAqL1xyXG4uYnV0dG9uLCBcclxuaW5wdXRbdHlwZT1zdWJtaXRdLCBcclxuaW5wdXRbdHlwZT1idXR0b25dLCBcclxuYnV0dG9uIHtcclxuXHQuZGVmYXVsdF9idXR0b24oKTtcclxufVxyXG5cclxuXHJcbi8qIEl0ZW1zIEZpbHRlciAqL1xyXG4uY21zbWFzdGVyc19pdGVtc19maWx0ZXJfd3JhcCB7XHJcblx0cGFkZGluZzowIDAgNDBweDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2l0ZW1zX2ZpbHRlciB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblxyXG5cdFx0LmJ1dHRvbiB7XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG5cdFx0XHRwYWRkaW5nOiAwO1xyXG5cclxuXHRcdFx0Jjpob3ZlcntcclxuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19pdGVtc19zb3J0X2Jsb2NrIHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5mcjtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2l0ZW1zX3NvcnRfYnV0IHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRtYXJnaW46MCAwIDAgNXB4O1xyXG5cdFx0LmZsO1xyXG5cdFx0XHJcblx0XHRzcGFue1xyXG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblx0XHR9XHJcblxyXG5cdFx0JltuYW1lPVwicHJvamVjdF9kYXRlXCJde1xyXG5cdFx0XHRtYXJnaW4tbGVmdDogMzBweDtcclxuXHRcdH1cclxuXHJcblx0XHQmLmN1cnJlbnR7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Y29udGVudDogJ1xcZWIyMCc7XHJcblx0XHRcdGZvbnQtZmFtaWx5OiBcImZvbnRlbGxvXCI7XHJcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHRcdFx0Zm9udC1zaXplOiAyM3B4O1xyXG5cdFx0XHR0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjNzIGVhc2UsICBvcGFjaXR5IC4zcyBlYXNlO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLnJldmVyc2VkIHtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xyXG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19pdGVtc19maWx0ZXJfYmxvY2sge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19pdGVtc19maWx0ZXJfYnV0IHtcclxuXHRcdGN1cnNvcjpwb2ludGVyO1xyXG5cdFx0LmZsO1xyXG5cdFx0ZGlzcGxheTogbm9uZTtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRjb250ZW50Om5vbmU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuY3VycmVudCB7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19pdGVtc19maWx0ZXJfbGlzdCB7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MCAyMHB4IDAgMDtcclxuXHRcdC50YWw7XHJcblx0XHRkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0bGkge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0bWFyZ2luOjAgMCAtNXB4O1xyXG5cdFx0XHRwYWRkaW5nOjAgNTBweCAwIDA7XHJcblx0XHRcdC5vdmg7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmOmxhc3QtY2hpbGR7XHJcblx0XHRcdFx0cGFkZGluZy1yaWdodDogMDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0YSB7XHJcblx0XHRcdFx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtcclxuXHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdFx0Y3Vyc29yOnBvaW50ZXI7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYuY3VycmVudCBhIHtcclxuXHRcdFx0XHRjdXJzb3I6ZGVmYXVsdDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIE1vcmUgSXRlbXMgTG9hZGVyIGFuZCBQYWdpbmF0aW9uICovXHJcbi5jbXNtYXN0ZXJzX3dyYXBfbW9yZV9pdGVtcyB7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19sb2FkaW5nIHtcclxuXHRcdG1pbi1oZWlnaHQ6NjBweDtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRmb250LXNpemU6MzBweDtcclxuXHRcdFx0LnBvc19hYnMoMWVtLCAxZW0sIDAsIDAsIGF1dG8sIDApO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfd3JhcF9pdGVtc19sb2FkZXIge1xyXG5cdHBhZGRpbmc6NDBweCAwIDA7XHJcblx0LnRhYztcclxuXHQub3ZoO1xyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2l0ZW1zX2xvYWRlciB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHR9XHJcbn1cclxuXHJcbmRpdi5zdWJwYWdlX25hdiB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHJcblx0PiBzdHJvbmcge1xyXG5cdFx0Zm9udC13ZWlnaHQ6Ym9sZDtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0cGFkZGluZzowIDVweCAwIDA7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0fVxyXG5cdFxyXG5cdD4gc3BhbixcclxuXHQ+IGEge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRwYWRkaW5nOjAgNXB4O1xyXG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfd3JhcF9wYWdpbmF0aW9uIHtcclxuXHRwYWRkaW5nOjQwcHggMCAwO1xyXG5cdC5vdmg7XHJcblx0LnRhYztcclxuXHRcclxuXHR1bCB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRwYWRkaW5nOjFweCAzcHg7XHJcblx0XHRcdC5mbDtcclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50Om5vbmU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5wYWdlLW51bWJlcnMge1xyXG5cdFx0XHRcdGxpbmUtaGVpZ2h0OjMycHggIWltcG9ydGFudDtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdG1pbi13aWR0aDozNHB4O1xyXG5cdFx0XHRcdGhlaWdodDozNHB4O1xyXG5cdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCY6ZW1wdHkge1xyXG5cdFx0LmRuO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIFBvc3QgTmF2aWdhdGlvbiAqL1xyXG4ucG9zdF9uYXYge1xyXG5cdHBhZGRpbmc6NzBweCAwO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblx0LmJkYjtcclxuXHRcclxuXHQ+IHNwYW4ge1xyXG5cdFx0d2lkdGg6IDUwJTtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdGEge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0cGFkZGluZzozcHggMDtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdHotaW5kZXg6MjtcclxuXHRcdFx0cGFkZGluZy10b3A6IDIwcHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdD4gc3BhbiB7XHJcblx0XHRcdG1hcmdpbjphdXRvICFpbXBvcnRhbnQ7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHR0b3A6MDtcclxuXHRcdFx0d2lkdGg6IDQ2cHg7XHJcblx0XHRcdGhlaWdodDogNDZweDtcclxuXHRcdFx0b3ZlcmZsb3c6IGhpZGRlbjtcclxuXHRcdFx0LmJkcnMoNTAlKTtcclxuXHRcdH1cclxuXHJcblx0XHQuY21zbWFzdGVyc19wYWdfcG9zdF9pbmZve1xyXG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdHRvcDogNXB4O1xyXG5cdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLmNtc21hc3RlcnNfcHJldl9wb3N0IHtcclxuXHRcdFx0LmZsO1xyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfcGFnX3Bvc3RfaW5mb3tcclxuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6NjdweDtcclxuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OjA7XHJcblxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRhIHtcclxuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6NjdweDtcclxuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OjIwcHg7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdD4gc3BhbiB7XHJcblx0XHRcdFx0bGVmdDoxcHg7XHJcblx0XHRcdFx0cmlnaHQ6YXV0bztcclxuXHRcdFx0XHR0ZXh0LWluZGVudDogMXB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuY21zbWFzdGVyc19uZXh0X3Bvc3Qge1xyXG5cdFx0XHR0ZXh0LWFsaWduOiByaWdodDtcclxuXHRcdFx0LmZyO1xyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfcGFnX3Bvc3RfaW5mb3tcclxuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6MHB4O1xyXG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6MHB4O1xyXG5cdFx0XHRcdHJpZ2h0OiA2N3B4O1xyXG5cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0YSB7XHJcblx0XHRcdFx0cGFkZGluZy1sZWZ0OjIwcHg7XHJcblx0XHRcdFx0cGFkZGluZy1yaWdodDo2N3B4O1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQ+IHNwYW4ge1xyXG5cdFx0XHRcdGxlZnQ6YXV0bztcclxuXHRcdFx0XHRyaWdodDoxcHg7XHJcblx0XHRcdFx0dGV4dC1pbmRlbnQ6IDNweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuYXNpZGV7XHJcblx0JjpsYXN0LWNoaWxke1xyXG5cdFx0LmJkYigwKTtcclxuXHRcdHBhZGRpbmctYm90dG9tOiAwO1xyXG5cdH1cclxufVxyXG4vKiBTaGFyZSBQb3N0cyAqL1xyXG4uc2hhcmVfcG9zdHMge1xyXG5cdHBhZGRpbmc6NDBweCAwIDA7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHRcclxuXHQuc2hhcmVfcG9zdHNfdGl0bGUge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG5cdH1cclxuXHRcclxuXHQuc2hhcmVfcG9zdHNfaW5uZXIge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cclxuXHRcdGF7XHJcblx0XHRcdGZvbnQtc2l6ZTogMDtcclxuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcclxuXHRcdFx0Jjo6YmVmb3Jle1xyXG5cdFx0XHRcdGZvbnQtZmFtaWx5OiBcImZvbnRlbGxvXCI7XHJcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmOm50aC1jaGlsZCgxKXtcclxuXHRcdFx0XHQmOjpiZWZvcmV7XHJcblx0XHRcdFx0XHRjb250ZW50OiAnXFxlYjljJztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCY6bnRoLWNoaWxkKDIpe1xyXG5cdFx0XHRcdCY6OmJlZm9yZXtcclxuXHRcdFx0XHRcdGZvbnQtZmFtaWx5OiBcImZvbnRlbGxvLWN1c3RvbVwiO1xyXG5cdFx0XHRcdFx0Y29udGVudDogJ1xcZjBkNSc7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmOm50aC1jaGlsZCgzKXtcclxuXHRcdFx0XHQmOjpiZWZvcmV7XHJcblx0XHRcdFx0XHRjb250ZW50OiAnXFxlYTk3JztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCY6bnRoLWNoaWxkKDQpe1xyXG5cdFx0XHRcdCY6OmJlZm9yZXtcclxuXHRcdFx0XHRcdGNvbnRlbnQ6ICdcXGVhN2MnO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHRhIHtcclxuXHRcdG1hcmdpbjowIDE4cHggMCAwO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcclxuXHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OjA7XHJcblx0XHRcdG1hcmdpbi1yaWdodDowO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIEFib3V0IEF1dGhvciAqL1xyXG4uYWJvdXRfYXV0aG9yIHtcclxuXHRwYWRkaW5nOjUwcHggMCAwO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdC5hYm91dF9hdXRob3JfaW5uZXIge1xyXG5cdFx0cGFkZGluZzozMHB4IDAwcHg7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuYWJvdXRfYXV0aG9yX2F2YXRhciB7XHJcblx0XHRtYXJnaW46MCAyNXB4IDAgMDtcclxuXHRcdHdpZHRoOiAxNzVweDtcclxuXHRcdC5mbDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdGltZyB7XHJcblx0XHRcdG91dGxpbmU6bm9uZTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmFib3V0X2F1dGhvcl9jb250IHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0cCB7XHJcblx0XHRcdHBhZGRpbmc6MCAwIDIwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5hYm91dF9hdXRob3JfY29udF90aXRsZSB7XHJcblx0XHRtYXJnaW46MCAwIDEwcHg7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyogU2luZ2xlIFBvc3QgU2xpZGVyICovXHJcbi5jbXNtYXN0ZXJzX3NpbmdsZV9zbGlkZXIge1xyXG5cdHBhZGRpbmc6IDEwJSAwIDA7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHRcclxuXHQucHJlbG9hZGVyIHtcclxuXHRcdHBhZGRpbmctYm90dG9tOkBwcmVsb2FkZXJfcG9zdHNfc2xpZGVyX3BhZDtcclxuXHRcdFxyXG5cdFx0Ji5oaWdoSW1nIHtcclxuXHRcdFx0aGVpZ2h0OmF1dG87XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfb3dsX3NsaWRlciB7XHJcblx0XHRwYWRkaW5nOiAzNXB4IDAgMDtcclxuXHRcdG91dGxpbmU6bm9uZTtcclxuXHJcblx0XHQub3dsLWJ1dHRvbnN7XHJcblx0XHRcdCNwYWdlICZ7XHJcblx0XHRcdFx0Ym90dG9tOiAxMDAlO1xyXG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IC0xNXB4O1xyXG5cdFx0XHRcdHRyYW5zZm9ybTogbm9uZTtcclxuXHRcdFx0XHR0b3A6IGF1dG87XHJcblx0XHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XHJcblxyXG5cdFx0XHRcdD4gZGl2e1xyXG5cdFx0XHRcdFx0cG9zaXRpb246IHN0YXRpYztcclxuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206IDBlbTtcclxuXHRcdFx0XHRcdGZsb2F0OiBub25lO1xyXG5cclxuXHRcdFx0XHRcdCY6Zmlyc3QtY2hpbGR7XHJcblx0XHRcdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xyXG5cdFx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDAuNWVtO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdCY6bGFzdC1jaGlsZHtcclxuXHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XHJcblx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDogMDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5jbXNtYXN0ZXJzX3NpbmdsZV9zbGlkZXJfdGl0bGUge1xyXG5cdFx0b3V0bGluZTpub25lO1xyXG5cdFx0cGFkZGluZzogMCAxMTVweCAwIDA7XHJcblx0XHRtYXJnaW46IDAgMCAwcHg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NpbmdsZV9zbGlkZXJfaW5uZXIge1xyXG5cdFx0bWFyZ2luOjAgLTEwcHg7XHJcblx0XHRcclxuXHRcdC5vd2wtYnV0dG9ucyB7XHJcblx0XHRcdHBhZGRpbmc6MCAxMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zaW5nbGVfc2xpZGVyX2l0ZW0ge1xyXG5cdFx0bWluLXdpZHRoOjIwMHB4O1xyXG5cdFx0cGFkZGluZzowIDEwcHg7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2luZ2xlX3NsaWRlcl9pdGVtX291dGVyIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2luZ2xlX3NsaWRlcl9pdGVtX2lubmVyIHtcclxuXHRcdHBhZGRpbmc6MTVweCAwcHggMHB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zaW5nbGVfc2xpZGVyX2l0ZW1fdGl0bGUge1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyogU2luZ2xlIFBpbmdzIExpc3QgKi9cclxuLmNtc21hc3RlcnNfcGluZ3NfbGlzdCB7XHJcblx0cGFkZGluZzo1MHB4IDAgMDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdC5waW5nc2xpc3Qge1xyXG5cdFx0LnBpbmdiYWNrIHtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdHBhZGRpbmc6OHB4IDUwcHggOHB4IDA7XHJcblx0XHRcdC5iZGI7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRcdC5iZGIoMCk7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5jb21tZW50LWJvZHkge1xyXG5cdFx0XHRcdGRpc3BsYXk6aW5saW5lO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5lZGl0LWxpbmsge1xyXG5cdFx0XHRcdFx0LnBvc19hYnMoYXV0byxhdXRvLGF1dG8sMCwwLDApO1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQmOmFmdGVyIHtcclxuXHRcdFx0XHRcdFx0LnZhbGlnbl9hZnRlcjtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0LmNvbW1lbnQtZWRpdC1saW5rIHtcclxuXHRcdFx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdFx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKiBQb3N0IENvbW1lbnRzICovXHJcbi5wb3N0X2NvbW1lbnRzIHtcclxuXHRwYWRkaW5nOjQ1cHggMCAwO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0LmNsX2FmdGVyO1xyXG5cdH1cclxuXHRcclxuXHQucG9zdF9jb21tZW50c190aXRsZSB7XHJcblx0XHRtYXJnaW46MCAwIDBweDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfY29tbWVudF9pdGVtX2NvbnRlbnQge1xyXG5cdFx0PiB1bCxcclxuXHRcdD4gb2wge1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfY29tbWVudHNfY2xvc2Vke1xyXG5cdHBhZGRpbmc6IDI1cHggMDtcclxuXHRtYXJnaW46IDA7XHJcbn1cclxuXHJcbi5jb21tZW50c19uYXYge1xyXG5cdHBhZGRpbmc6ODBweCAwIDA7XHJcblx0Lm92aDtcclxuXHJcblx0LmNvbW1lbnRfcGFnX2ZvbnR7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cdH1cclxuXHRcclxuXHQ+IHNwYW57XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG5cdFx0YXtcclxuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHRcdGhlaWdodDogNDZweDtcclxuXHJcblx0XHRcdCNwYWdlICZ7XHJcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDQ2cHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQmOjpiZWZvcmV7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0ei1pbmRleDogMDtcclxuXHRcdFx0d2lkdGg6IDQ2cHg7XHJcblx0XHRcdGhlaWdodDogNDZweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6IDQ2cHg7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblx0XHRcdC5iZHJzKDUwJSk7XHJcblx0XHRcdC5vdmg7XHJcblx0XHRcdC50YWM7XHJcblx0XHR9XHJcblx0fVxyXG5cdC5jb21tZW50c19uYXZfcHJldiB7XHJcblx0XHRhe1xyXG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDcwcHhcclxuXHRcdH1cclxuXHJcblx0XHQuZmw7XHJcblxyXG5cdFx0Jjo6YmVmb3Jle1xyXG5cdFx0XHRsZWZ0OiAwO1xyXG5cdFx0XHR0ZXh0LWluZGVudDogLTJweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNvbW1lbnRzX25hdl9uZXh0IHtcclxuXHRcdGF7XHJcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDcwcHhcclxuXHRcdH1cclxuXHJcblx0XHQuZnI7XHJcblxyXG5cdFx0Jjo6YmVmb3Jle1xyXG5cdFx0XHRmbG9hdDogcmlnaHQ7XHJcblx0XHRcdHJpZ2h0OiAwO1xyXG5cdFx0XHR0ZXh0LWluZGVudDogMnB4O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmNvbW1lbnRsaXN0IHtcclxuXHRsaXN0LXN0eWxlOm5vbmU7XHJcblx0bWFyZ2luOjA7XHJcblxyXG5cdD4gbGkge1xyXG5cdFx0cGFkZGluZy1ib3R0b206IDU1cHg7XHJcblx0XHQuYmRiO1xyXG5cdH1cclxuXHRcclxuXHQmOmFmdGVyIHtcclxuXHRcdC5jbF9hZnRlcjtcclxuXHR9XHJcblx0XHJcblx0LmNoaWxkcmVuIHtcclxuXHRcdGxpc3Qtc3R5bGU6bm9uZTtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0cGFkZGluZzowIDAgMCAyMHB4O1xyXG5cdH1cclxuXHRcclxuXHQuY29tbWVudCB7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmctdG9wOiA1NXB4O1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6bm9uZTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC5jbF9hZnRlcjtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCYgKyAuY29tbWVudHNfbmF2e1xyXG5cdFx0cGFkZGluZzogOTBweCAwIDcwcHg7XHJcblx0fVxyXG59XHJcblxyXG4uY21zbWFzdGVyc19jb21tZW50X2l0ZW0ge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0LmNsX2FmdGVyO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19jb21tZW50X2l0ZW1fZGF0ZSB7XHJcblx0XHRvdXRsaW5lOm5vbmU7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfY29tbWVudF9pdGVtX2F2YXRhciB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0bWFyZ2luLXJpZ2h0OiAzMHB4O1xyXG5cdFx0LmZsO1xyXG5cdFx0Lm92aDtcclxuXHJcblx0XHRpbWcge1xyXG5cdFx0XHRvdXRsaW5lOm5vbmU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2NvbW1lbnRfaXRlbV9jb250IHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblxyXG5cdC5jbXNtYXN0ZXJzX2NvbW1lbnRfaXRlbV9jb250X2luZm8ge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTogMTVweDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdD4gYSB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19jb21tZW50X2l0ZW1fdGl0bGUge1xyXG5cdFx0bWFyZ2luOi01cHggMCAycHg7XHJcblx0XHRwYWRkaW5nOjA7XHJcblxyXG5cdFx0LnByb2R1Y3QgJntcclxuXHRcdFx0ZmxvYXQ6IGxlZnQ7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuY21zbWFzdGVyc19jb21tZW50X2ludGVyZmFjZXtcclxuXHRcdGZsb2F0OiByaWdodDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfY29tbWVudF9pdGVtX2NvbnRlbnQge1xyXG5cdFx0PiAqOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOjA7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOjA7XHJcblx0XHR9XHJcblxyXG5cdFx0cGFkZGluZy1ib3R0b206IDIwcHg7XHJcblx0fVxyXG5cdC5jbXNtYXN0ZXJzX2NvbW1lbnRfaXRlbV9pbnRlcmZhY2V7XHJcblx0XHQ+ICp7XHJcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcclxuXHRcdFx0cGFkZGluZy1ib3R0b206IDA7XHJcblx0XHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0fVxyXG5cclxuXHRcdC5jb21tZW50LXJlcGx5LWxpbmt7XHJcblx0XHRcdG1hcmdpbi1yaWdodDogMTBweDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi8qIENvbW1lbnQgUmVzcG9uZCAqL1xyXG4uY29tbWVudC1yZXNwb25kIHtcclxuXHRwYWRkaW5nOjUlIDA7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHJcblx0JjphZnRlciB7XHJcblx0XHQuY2xfYWZ0ZXI7XHJcblx0fVxyXG5cdFxyXG5cdHRleHRhcmVhIHtcclxuXHRcdG1pbi1oZWlnaHQ6MjYwcHg7XHJcblx0fVxyXG5cdFxyXG5cdHAge1xyXG5cdFx0cGFkZGluZy1ib3R0b206N3B4O1xyXG5cclxuXHRcdCY6ZW1wdHl7XHJcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHR0ZXh0YXJlYVtuYW1lPWNvbW1lbnRde1xyXG5cdFx0d2lkdGg6IDEwMCU7XHJcblx0fVxyXG5cclxuXHQuY29tbWVudC1yZXBseS10aXRsZSB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XHJcblx0XHRcclxuXHRcdHNtYWxsIHtcclxuXHRcdFx0LmZyO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmNvbW1lbnQtZm9ybS1uYW1le1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcclxuXHRcdGNsZWFyOiBib3RoO1xyXG5cdH1cclxuXHRcclxuXHQuY29tbWVudC1mb3JtIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0LmNsX2FmdGVyO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY29tbWVudC1ub3RlcywgXHJcblx0LmxvZ2dlZC1pbi1hcyB7XHJcblx0XHRwYWRkaW5nLWJvdHRvbToyMHB4O1xyXG5cdFx0LmNsO1xyXG5cdH1cclxuXHRcclxuXHQuY29tbWVudC1mb3JtLWNvbW1lbnR7XHJcblx0XHRwYWRkaW5nLXJpZ2h0OjBweDtcclxuXHR9XHJcblxyXG5cdC5jb21tZW50LWZvcm0tYXV0aG9yLCBcclxuXHQuY29tbWVudC1mb3JtLWVtYWlsIHtcclxuXHRcdG1hcmdpbjogMDtcclxuXHR9XHJcblx0XHJcblx0LmNvbW1lbnQtZm9ybS1jb29raWVzLWNvbnNlbnQge1xyXG5cdFx0ZmxvYXQ6bm9uZTtcclxuXHRcdC5jbDtcclxuXHRcdFxyXG5cdFx0aW5wdXQsIFxyXG5cdFx0bGFiZWwge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRsYWJlbCB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OjVweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmZvcm0tc3VibWl0IHtcclxuXHRcdHBhZGRpbmctdG9wOjEwcHg7XHJcblx0XHQuY2w7XHJcblx0fVxyXG59XHJcblxyXG4ubm9jb21tZW50cyB7XHJcblx0bWFyZ2luOjUwcHggMCAwO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcbn1cclxuXHJcblxyXG5cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuLyogSGVhZGVyICsgQ2VudGVyZWQgKyBSaWdodCArIEZpeGVkIFZlcnNpb25zXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG4vKioqKioqKioqKioqKioqKiogSGVhZGVyICoqKioqKioqKioqKioqKioqKi9cclxuI2hlYWRlciB7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHR6LWluZGV4Ojk5OTk7XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogSGVhZGVyIFRvcCAqKioqKioqKioqKioqKioqKiovXHJcbi5oZWFkZXJfdG9wIHtcclxuXHRvdXRsaW5lOm5vbmU7XHJcblx0XHJcblx0LmhlYWRlcl90b3BfYnV0IHtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHRoZWlnaHQ6MzJweDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Y3Vyc29yOnBvaW50ZXI7XHJcblx0XHQuZG47XHJcblx0XHRcclxuXHRcdCYuY2xvc2VkIHtcclxuXHRcdFx0Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O1xyXG5cclxuXHRcdFx0LnJlc3BvbnNpdmVfdG9wX25hdntcclxuXHRcdFx0XHQmOjpiZWZvcmV7XHJcblx0XHRcdFx0XHRvcGFjaXR5OiAwO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Jjo6YWZ0ZXJ7XHJcblx0XHRcdFx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQ+IHNwYW4ge1xyXG5cdFx0XHRmb250LXNpemU6MjRweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6MjRweDtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMTUsIDAuOSk7XHJcblx0XHRcdHRyYW5zZm9ybTogc2NhbGUoMS4xNSwgMC45KTtcclxuXHRcdFx0LnBvc19hYnM7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5oZWFkZXJfdG9wX291dGVyIHtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0fVxyXG5cdFxyXG5cdC5oZWFkZXJfdG9wX2lubmVyIHtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0LmNsX2FmdGVyO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuc29jaWFsX3dyYXAge1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHQuZnI7XHJcblx0XHRcclxuXHRcdGxpIHtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OjFweDtcclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6MDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRhIHtcclxuXHRcdFx0Zm9udC1zaXplOjEzcHg7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OjEzcHg7XHJcblx0XHRcdHdpZHRoOjIycHg7XHJcblx0XHRcdGhlaWdodDoyMnB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQudG9wX25hdl93cmFwIHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdC5mcjtcclxuXHJcblx0XHRsaXtcclxuXHRcdFx0Ji5jdXJyZW50LW1lbnUtaXRlbXtcclxuXHRcdFx0XHQubmF2X2l0ZW1fd3JhcHtcclxuXHRcdFx0XHRcdHBhZGRpbmc6IDAgMHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Lm5hdl9pdGVtX3dyYXB7XHJcblx0XHRcdFx0cGFkZGluZzogMCAwcHg7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGF7XHJcblx0XHRcdFx0cGFkZGluZzogMHB4IDE4cHg7XHJcblx0XHRcdFx0bGV0dGVyLXNwYWNpbmc6IDA7XHJcblx0XHRcdH1cclxuXHRcdFx0LnN1Yi1tZW51e1xyXG5cdFx0XHRcdGF7XHJcblx0XHRcdFx0XHRwYWRkaW5nOiA1cHggMTZweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LnJlc3BvbnNpdmVfdG9wX25hdiB7XHJcblx0XHRmb250LXNpemU6MTZweDtcclxuXHRcdHdpZHRoOjMwcHg7XHJcblx0XHRoZWlnaHQ6MzBweDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LmRuO1xyXG5cdFx0Lm0wYTtcclxuXHRcdFxyXG5cdFx0Ji5hY3RpdmV7XHJcblx0XHRcdCY6YmVmb3Jle1xyXG5cdFx0XHRcdG9wYWNpdHk6IDA7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCY6YWZ0ZXJ7XHJcblx0XHRcdFx0b3BhY2l0eTogMTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdCY6YWZ0ZXJ7XHJcblx0XHRcdGNvbnRlbnQ6ICdcXGU4M2YnO1xyXG5cdFx0XHRmb250LWZhbWlseTogJ2ZvbnRlbGxvLWN1c3RvbSc7XHJcblx0XHRcdGZvbnQtc2l6ZTogMC44ZW07XHJcblx0XHRcdG9wYWNpdHk6IDA7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xyXG5cdFx0XHQucG9zX2FicztcclxuXHRcdFx0LnRyYW5zKH4nb3BhY2l0eSAuNHMgZWFzZSwgY29sb3IgLjNzIGVhc2UnKTtcclxuXHRcdH1cclxuXHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdC5wb3NfYWJzO1xyXG5cdFx0XHQudHJhbnMofidvcGFjaXR5IC40cyBlYXNlJyk7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5oZWFkZXJfdG9wX21ldGEge1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRwYWRkaW5nOjAgMjBweCAwIDA7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0LnZhbGlnbl9hZnRlcjtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Lm1ldGFfd3JhcCB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHJcblx0XHQ+ICoge1xyXG5cdFx0XHRtYXJnaW46MCAyNXB4IDAgMDtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmW2NsYXNzXj1cImNtc21hc3RlcnMtaWNvbi1cIl06YmVmb3JlLCBcclxuXHRcdFx0JltjbGFzcyo9XCIgY21zbWFzdGVycy1pY29uLVwiXTpiZWZvcmUsIFxyXG5cdFx0XHQmW2NsYXNzXj1cImNtc21hc3RlcnNfdGhlbWVfaWNvbl9cIl06YmVmb3JlLCBcclxuXHRcdFx0JltjbGFzcyo9XCIgY21zbWFzdGVyc190aGVtZV9pY29uX1wiXTpiZWZvcmUge1xyXG5cdFx0XHRcdG1hcmdpbi1sZWZ0OjA7XHJcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OjAuNWVtO1xyXG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQ+IHAge1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5hZHIge1xyXG5cdFx0XHR3aGl0ZS1zcGFjZTpub3dyYXA7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIEhlYWRlciBUb3AgTmF2aWdhdGlvbiAqKioqKioqKioqKioqKioqKiovXHJcbi50b3BfbGluZV9uYXYge1xyXG5cdHotaW5kZXg6MjA1O1xyXG5cdFxyXG5cdD4gbGl7XHJcblx0XHQuYmRsKDFweCk7XHJcblxyXG5cdFx0JjpsYXN0LWNoaWxke1xyXG5cdFx0XHQuYmRyKDFweCk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIEhlYWRlciBNaWQgKioqKioqKioqKioqKioqKioqL1xyXG4uaGVhZGVyX21pZCB7XHJcblx0LmNsO1xyXG5cclxuXHQuaGVhZGVyX21pZF9vdXRlciB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Ym9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHJcblx0XHQjcGFnZTpub3QoLmVuYWJsZV9oZWFkZXJfYm90dG9tKSAme1xyXG5cdFx0XHQuYmRiO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuaGVhZGVyX21pZF9pbm5lciB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC5jbF9hZnRlcjtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmxvZ29fd3JhcCB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LmZsO1xyXG5cdFx0XHJcblx0XHQuZW5hYmxlX2hlYWRlcl9jZW50ZXJlZCAmIHtcclxuXHRcdFx0ZmxvYXQ6bm9uZTtcclxuXHRcdFx0Lm0wYTtcclxuXHRcdFx0LnRhYztcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC52YWxpZ25fYWZ0ZXI7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5sb2dvX3RleHRfd3JhcCB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC50aXRsZSB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OjFlbTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnRpdGxlX3RleHQge1xyXG5cdFx0XHRwYWRkaW5nOjAgMCAwIDNweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmxvZ28ge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0d2lkdGg6YXV0bztcclxuXHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0XHRcclxuXHRcdFx0aW1nIHtcclxuXHRcdFx0XHRtYXgtaGVpZ2h0OjEwMCU7XHJcblx0XHRcdFx0LnBvc19hYnMoYXV0bywgYXV0bywgMCwgYXV0byk7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LmVuYWJsZV9oZWFkZXJfY2VudGVyZWQgJiB7XHJcblx0XHRcdFx0XHRsZWZ0OjA7XHJcblx0XHRcdFx0XHRyaWdodDowO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmxvZ29fcmV0aW5hIHtcclxuXHRcdFx0XHQuZG47XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5oZWFkZXJfaW50ZXJmYWNlX291dGVye1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0ZmxvYXQ6IHJpZ2h0O1xyXG5cclxuXHRcdCYgKyAuc2xvZ2FuX3dyYXAsXHJcblx0XHQmICsgLnNvY2lhbF93cmFwLHtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OiAzMHB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdCYgKyAubWlkX25hdl93cmFwe1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdC5oZWFkZXJfaW50ZXJmYWNlX3dyYXB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblxyXG5cdFx0PiAqOmxhc3QtY2hpbGR7XHJcblx0XHRcdCNwYWdlICZ7XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5yZXNwX21pZF9uYXZfd3JhcCB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdG1hcmdpbjowIDAgMCAwcHg7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5kbjtcclxuXHRcdC5mcjtcclxuXHRcdC5vdmg7XHJcblxyXG5cdFx0LnJlc3BfbWlkX25hdl9vdXRlciB7XHJcblx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0LnZhbGlnbl9hZnRlcjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQucmVzcF9taWRfbmF2IHtcclxuXHRcdFx0Zm9udC1zaXplOjE0cHg7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OjE0cHg7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdHdpZHRoOjI4cHg7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdC5wb3NfYWJzO1xyXG5cdFx0XHRcdC50cmFucyh+J29wYWNpdHkgLjNzIGVhc2UnKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Jjo6YWZ0ZXJ7XHJcblx0XHRcdFx0Y29udGVudDogJ1xcZTgzZic7XHJcblx0XHRcdFx0Zm9udC1mYW1pbHk6ICdmb250ZWxsby1jdXN0b20nO1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogMC44ZW07XHJcblx0XHRcdFx0b3BhY2l0eTogMDtcclxuXHRcdFx0XHRsaW5lLWhlaWdodDogMTtcclxuXHRcdFx0XHR3aWR0aDogMWVtO1xyXG5cdFx0XHRcdGhlaWdodDogMWVtO1xyXG5cdFx0XHRcdG1hcmdpbjogYXV0byAhaW1wb3J0YW50O1xyXG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHRsZWZ0OiAwO1xyXG5cdFx0XHRcdHJpZ2h0OiAwO1xyXG5cdFx0XHRcdHRvcDogMDtcclxuXHRcdFx0XHRib3R0b206IDA7XHJcblx0XHRcdFx0LnRyYW5zKH4nb3BhY2l0eSAuM3MgZWFzZScpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmOmhvdmVyLCBcclxuXHRcdFx0Ji5hY3RpdmUge1xyXG5cdFx0XHRcdG91dGxpbmU6bm9uZTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ji5hY3RpdmUge1xyXG5cdFx0XHRcdCY6OmFmdGVye1xyXG5cdFx0XHRcdFx0b3BhY2l0eTogMTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdCY6OmJlZm9yZXtcclxuXHRcdFx0XHRcdG9wYWNpdHk6IDAgIWltcG9ydGFudDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Lm1pZF9zZWFyY2hfYnV0X3dyYXAge1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRtYXJnaW46MCAwIDAgMHB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQuZnI7XHJcblx0XHRcclxuXHRcdCY6OmJlZm9yZXtcclxuXHRcdFx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG5cdFx0fVxyXG5cclxuXHRcdCYgKyAuY21zbWFzdGVyc19keW5hbWljX2NhcnRfd3JhcCB7XHJcblx0XHRcdG1hcmdpbi1yaWdodDogMjBweDtcclxuXHRcdFx0LmhlYWRlcl9lbGVtZW50X3NwbGl0O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0LnZhbGlnbl9hZnRlcjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Lm1pZF9zZWFyY2hfYnV0IHtcclxuXHRcdFx0Zm9udC1zaXplOjE0cHg7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OjE0cHg7XHJcblx0XHRcdHdpZHRoOjIwcHg7XHJcblx0XHRcdGhlaWdodDoyMHB4O1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0Y3Vyc29yOnBvaW50ZXI7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0XHQuYmQoMCk7XHJcblx0XHRcdFxyXG5cdFx0XHQmOjphZnRlcntcclxuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0LnBvc19hYnM7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LnNvY2lhbF93cmFwIHtcclxuXHRcdG91dGxpbmU6bm9uZTtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFxyXG5cdFx0JiArIC5oZWFkZXJfaW50ZXJmYWNlX3dyYXB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiA1cHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5zb2NpYWxfd3JhcF9pbm5lciB7XHJcblx0XHRcdC50YXI7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGxpIHtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OjdweDtcclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6MDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRhIHtcclxuXHRcdFx0Zm9udC1zaXplOjE4cHg7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OjE4cHg7XHJcblx0XHRcdHdpZHRoOjI2cHg7XHJcblx0XHRcdGhlaWdodDoyNnB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuc2xvZ2FuX3dyYXAge1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRmbG9hdDogcmlnaHQ7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQuc2xvZ2FuX3dyYXBfaW5uZXIge1xyXG5cdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0cGFkZGluZzowIDAgMCAyMHB4O1xyXG5cdFx0XHQudGFyO1xyXG5cdFx0XHRcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0LnZhbGlnbl9hZnRlcjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuc2xvZ2FuX3dyYXBfdGV4dCB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdFxyXG5cdFx0XHQ+ICoge1xyXG5cdFx0XHRcdG1hcmdpbjowIDEwcHggMCAwO1xyXG5cdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JltjbGFzc149XCJjbXNtYXN0ZXJzLWljb24tXCJdOmJlZm9yZSwgXHJcblx0XHRcdFx0JltjbGFzcyo9XCIgY21zbWFzdGVycy1pY29uLVwiXTpiZWZvcmUsIFxyXG5cdFx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVyc190aGVtZV9pY29uX1wiXTpiZWZvcmUsIFxyXG5cdFx0XHRcdCZbY2xhc3MqPVwiIGNtc21hc3RlcnNfdGhlbWVfaWNvbl9cIl06YmVmb3JlIHtcclxuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0OjA7XHJcblx0XHRcdFx0XHRtYXJnaW4tcmlnaHQ6MC41ZW07XHJcblx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQ+IHAge1xyXG5cdFx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmFkciB7XHJcblx0XHRcdFx0d2hpdGUtc3BhY2U6bm93cmFwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5taWRfbmF2X3dyYXAge1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5mcjtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogSGVhZGVyIE1pZCBOYXZpZ2F0aW9uICoqKioqKioqKioqKioqKioqKi9cclxuLm1pZF9uYXYge1xyXG5cdG91dGxpbmU6bm9uZTtcclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBIZWFkZXIgQm90ICoqKioqKioqKioqKioqKioqKi9cclxuLmhlYWRlcl9ib3Qge1xyXG5cclxuXHQuaGVhZGVyX2JvdF9vdXRlciB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdH1cclxuXHRcclxuXHQuaGVhZGVyX2JvdF9pbm5lciB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC5jbF9hZnRlcjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmVuYWJsZV9oZWFkZXJfY2VudGVyZWQgJiB7XHJcblx0XHRcdC50YWM7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5yZXNwX2JvdF9uYXZfd3JhcCB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LmRuO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0LnJlc3BfYm90X25hdl9vdXRlciB7XHJcblx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0LnZhbGlnbl9hZnRlcjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQucmVzcF9ib3RfbmF2IHtcclxuXHRcdFx0Zm9udC1zaXplOjE0cHg7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OjE0cHg7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdHdpZHRoOjI4cHg7XHJcblx0XHRcdGhlaWdodDoyOHB4O1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHQucG9zX2FicztcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Jjpob3ZlciwgXHJcblx0XHRcdCYuYWN0aXZlIHtcclxuXHRcdFx0XHRvdXRsaW5lOm5vbmU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmJvdF9uYXZfd3JhcCB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LmZsO1xyXG5cdFx0XHJcblx0XHQuZW5hYmxlX2hlYWRlcl9yaWdodCAmIHtcclxuXHRcdFx0LmZyO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuZW5hYmxlX2hlYWRlcl9jZW50ZXJlZCAmIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdGZsb2F0Om5vbmU7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIEhlYWRlciBCb3QgTmF2aWdhdGlvbiAqKioqKioqKioqKioqKioqKiovXHJcbi5ib3RfbmF2IHtcclxuXHRvdXRsaW5lOm5vbmU7XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogSGVhZGVyIFNlYXJjaCBGb3JtICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfaGVhZGVyX3NlYXJjaF9mb3JtIHtcclxuXHR3aWR0aDoxMDAlO1xyXG5cdGhlaWdodDoxMDAlO1xyXG5cdHZpc2liaWxpdHk6aGlkZGVuO1xyXG5cdHBvc2l0aW9uOmZpeGVkO1xyXG5cdHotaW5kZXg6OTk5OTk7XHJcblx0Lm9wKDApO1xyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19zaG93IHtcclxuXHRcdHZpc2liaWxpdHk6dmlzaWJsZTtcclxuXHRcdC5vcCgxKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaGVhZGVyX3NlYXJjaF9mb3JtX2Nsb3NlIHtcclxuXHRcdGZvbnQtc2l6ZToxOHB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6MThweDtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRjdXJzb3I6cG9pbnRlcjtcclxuXHRcdC5wb3NfYWJzKDMycHgsIDMycHgsIGF1dG8sIDUwcHgsIDUwcHgsIGF1dG8pO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdC5wb3NfYWJzO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19oZWFkZXJfc2VhcmNoX2Zvcm1fZmllbGQge1xyXG5cdFx0bWF4LXdpZHRoOjkwJTtcclxuXHRcdC5wb3NfYWJzKDgwMHB4LCAxMDBweCk7XHJcblx0fVxyXG5cdFxyXG5cdEB7aW5wdXRfdGV4dH0ge1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcblx0XHRwYWRkaW5nOjAgMzBweCAwIDMwcHg7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRsaW5lLWhlaWdodDo3NXB4ICFpbXBvcnRhbnQ7XHJcblx0XHQuYmQoMCk7XHJcblx0XHQudGFjO1xyXG5cclxuXHRcdCY6Oi1tcy1jbGVhcntcclxuXHRcdFx0ZGlzcGxheTogbm9uZTtcclxuXHRcdH1cclxuXHJcblx0XHQmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxyXG5cdFx0Jjo6cGxhY2Vob2xkZXIsXHJcblx0XHQmOi1tcy1pbnB1dC1wbGFjZWhvbGRlcixcclxuXHRcdCY6LW1vei1wbGFjZWhvbGRlcixcclxuXHRcdCY6Oi1tb3otcGxhY2Vob2xkZXJ7XHJcblx0XHRcdC50YWM7XHJcblx0XHRcdG9wYWNpdHk6IDE7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdGJ1dHRvbiB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O1xyXG5cdFx0Zm9udC1zaXplOjMycHg7XHJcblx0XHRsaW5lLWhlaWdodDozMnB4O1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdFx0LmJkKDApO1xyXG5cdFx0LnBvc19hYnMoOTBweCwgMTAwJSwgYXV0bywgMCk7XHJcblx0XHQuZG47XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0LnBvc19hYnM7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbi8qIEhlYWRsaW5lIFN0eWxlc1xyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxuYm9keSAuaGVhZGxpbmUge1xyXG5cdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX2JyZWFkY3J1bWJzIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2JyZWFkY3J1bWJzX2FsaWduZXIge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2JyZWFkY3J1bWJzX2lubmVyIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0cGFkZGluZy10b3A6MTBweDtcclxuXHRcdHBhZGRpbmctYm90dG9tOjEwcHg7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHQudGFjO1xyXG5cdFx0Lm92aDtcclxuXHJcblx0XHQuYnJlYWRjcnVtYnNfc2Vwe1xyXG5cdFx0XHRwYWRkaW5nOiAwIDJweDtcclxuXHRcdFx0Zm9udC1zaXplOiAxLjNlbTtcclxuXHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5oZWFkbGluZV9vdXRlciB7XHJcblx0YmFja2dyb3VuZC1wb3NpdGlvbjp0b3AgY2VudGVyO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdHotaW5kZXg6MTtcclxuXHRcclxuXHQmLmNtc21hc3RlcnNfaGVhZGxpbmVfZGlzYWJsZWQge1xyXG5cdFx0b3V0bGluZTpub25lO1xyXG5cdH1cclxuXHRcclxuXHQuaGVhZGxpbmVfY29sb3Ige1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRsZWZ0OjA7XHJcblx0XHR0b3A6MDtcclxuXHR9XHJcblx0XHJcblx0LmhlYWRsaW5lX2lubmVyIHtcclxuXHRcdHBhZGRpbmc6MCBAYmxvY2tzX2hvcl9wYWQ7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdHotaW5kZXg6MTtcclxuXHRcdC5vdmg7XHJcblxyXG5cdFx0Ji5hbGlnbmNlbnRlcntcclxuXHRcdFx0ZGlzcGxheTogdGFibGU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5oZWFkbGluZV9hbGlnbmVyIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmhlYWRsaW5lX3RleHQge1xyXG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0bGluZS1oZWlnaHQ6MWVtO1xyXG5cdFx0XHRcdC5wb3NfYWJzO1xyXG5cdFx0XHRcdHRvcDogM3B4O1xyXG5cdFx0XHRcdGJvdHRvbTogYXV0bztcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmVudHJ5LXRpdGxlIHtcclxuXHRcdFx0XHR3b3JkLXdyYXA6YnJlYWstd29yZDtcclxuXHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmVudHJ5LXN1YnRpdGxlIHtcclxuXHRcdFx0XHRtYXJnaW46OHB4IDNweCAwIDBweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdC5oZWFkbGluZV90ZXh0X3dyYXB7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5hbGlnbl9sZWZ0IHtcclxuXHRcdFx0LnRhbDtcclxuXHRcdFx0XHJcblx0XHRcdC5oZWFkbGluZV90ZXh0X3dyYXB7XHJcblx0XHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdFx0LnRhbDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0LmhlYWRsaW5lX3RleHQge1xyXG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cdFx0XHRcdHdpZHRoOiA1MCU7XHJcblx0XHRcdFx0LnRhbDtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRyaWdodDphdXRvO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfYnJlYWRjcnVtYnMge1xyXG5cdFx0XHRcdHdpZHRoOiA1MCU7XHJcblx0XHRcdFx0LmZyO1xyXG5cdFx0XHRcdC50YXI7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5hbGlnbl9yaWdodCB7XHJcblx0XHRcdC50YXI7XHJcblxyXG5cdFx0XHQuaGVhZGxpbmVfdGV4dF93cmFwe1xyXG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHRcdC50YXI7XHJcblxyXG5cdFx0XHRcdCY6OmJlZm9yZXtcclxuXHRcdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmhlYWRsaW5lX3RleHQge1xyXG5cdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cdFx0XHRcdHdpZHRoOiA1MCU7XHJcblx0XHRcdFx0LnRhcjtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19icmVhZGNydW1icyB7XHJcblx0XHRcdFx0d2lkdGg6IDUwJTtcclxuXHRcdFx0XHQuZmw7XHJcblx0XHRcdFx0LnRhbDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLmFsaWduX2NlbnRlciB7XHJcblx0XHRcdGRpc3BsYXk6IHRhYmxlO1xyXG5cdFx0XHQudGFjO1xyXG5cclxuXHRcdFx0LmhlYWRsaW5lX3RleHRfd3JhcHtcclxuXHRcdFx0XHRkaXNwbGF5OiB0YWJsZS1jZWxsO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQuaGVhZGxpbmVfdGV4dCB7XHJcblx0XHRcdFx0LnRhYztcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRib3R0b206YXV0bztcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Ji5oZWFkbGluZV9pY29uIHtcclxuXHRcdFx0XHRcdD4gKjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdFx0XHRcdHBhZGRpbmctdG9wOjE1cHg7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19icmVhZGNydW1icyB7XHJcblx0XHRcdFx0LnRhYztcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQuY21zbWFzdGVyc19icmVhZGNydW1ic19hbGlnbmVyIHtcclxuXHRcdFx0XHRcdGRpc3BsYXk6bm9uZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfYnJlYWRjcnVtYnNfaW5uZXIge1xyXG5cdFx0XHRcdFx0cGFkZGluZzoxOHB4IDAgMDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuQGtleWZyYW1lcyBhbmltentcclxuXHRmcm9te1xyXG5cdFx0dmVydGljYWwtYWxpZ246IG5vbmU7XHJcblx0fVxyXG5cdHRve1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdH1cclxufVxyXG5cclxuLmNvbnRlbnRfd3JhcCB7XHJcblx0ZGlzcGxheTpibG9jaztcclxuXHRtaW4td2lkdGg6aW5oZXJpdDtcclxufVxyXG5cclxuXHJcblxyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4vKiBCb3R0b20gKyBGb290ZXIgU3R5bGVzXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG4vKioqKioqKioqKioqKioqKiogQm90dG9tICoqKioqKioqKioqKioqKioqKi9cclxuLmJvdHRvbV9pbm5lciB7XHJcblx0LndpZGdldHRpdGxlIHtcclxuXHRcdG1hcmdpbi1ib3R0b206MzVweDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBGb290ZXIgKioqKioqKioqKioqKioqKioqL1xyXG4jZm9vdGVyIHtcclxuXHQub3ZoO1xyXG5cclxuXHQuZm9vdGVye1xyXG5cdH1cclxufVxyXG5cclxuLmZvb3Rlcl9pbm5lciB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHRcclxuXHQuZm9vdGVyX2xvZ29fd3JhcCB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdCYgKyAuZm9vdGVyX2NvcHlyaWdodCB7XHJcblx0XHRcdHBhZGRpbmctdG9wOiAxNXB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdC5mb290ZXJfbG9nbyB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcclxuXHRcdFx0PiAuZm9vdGVyX2xvZ29fcmV0aW5hIHtcclxuXHRcdFx0XHQuZG47XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogRm9vdGVyIERlZmF1bHQgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19mb290ZXJfZGVmYXVsdCB7XHJcblx0LmZvb3Rlcl9pbm5lciB7XHJcblx0XHRwYWRkaW5nLXRvcDoyNXB4O1xyXG5cdFx0cGFkZGluZy1ib3R0b206MjVweDtcclxuXHRcdFxyXG5cdFx0PiBkaXY6Zmlyc3QtY2hpbGQge1xyXG5cdFx0XHRwYWRkaW5nLXRvcDowO1xyXG5cdFx0fVxyXG5cclxuXHRcdD4gKjpudGgtbGFzdC1jaGlsZCgyKXtcclxuXHRcdFx0cGFkZGluZy10b3A6IDMuMiU7XHJcblx0XHRcdG1hcmdpbi10b3A6IDMuMiU7XHJcblx0XHRcdC5iZHQ7XHJcblxyXG5cdFx0XHQmLmZvb3Rlcl9sb2dvX3dyYXB7XHJcblx0XHRcdFx0LmJkdCgwKTtcclxuXHRcdFx0XHRwYWRkaW5nLXRvcDogMCU7XHJcblx0XHRcdFx0bWFyZ2luLXRvcDogMCU7XHJcblx0XHRcdFx0JiArICp7XHJcblx0XHRcdFx0XHRwYWRkaW5nLXRvcDogMy4yJTtcclxuXHRcdFx0XHRcdG1hcmdpbi10b3A6IDMuMiU7XHJcblx0XHRcdFx0XHQuYmR0O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuZm9vdGVyX2xvZ29fd3JhcHtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHR9XHJcblxyXG5cdC5mb290ZXJfY3VzdG9tX2h0bWxfd3JhcCB7XHJcblx0XHRwYWRkaW5nOjIwcHggMCAwO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQudGFjO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmZvb3Rlcl9jdXN0b21faHRtbCB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdC5vdmg7XHJcblx0XHQudGFjO1xyXG5cdH1cclxuXHRcclxuXHQuZm9vdGVyX25hdl93cmFwIHtcclxuXHRcdHBhZGRpbmc6My41JSAwIDA7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdGRpdiB7XHJcblx0XHRcdC50YWM7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5mb290ZXJfbmF2IHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0d2lkdGg6YXV0bztcclxuXHRcdFxyXG5cdFx0PiBsaSB7XHJcblx0XHRcdG1hcmdpbjowIDE1cHggMDtcclxuXHRcdFx0LmJkKDApO1xyXG5cdFx0XHRcclxuXHRcdFx0YXtcclxuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OiAwO1xyXG5cdFx0XHRcdHBhZGRpbmctbGVmdDogMDtcclxuXHRcdFx0fVxyXG5cdFx0XHR1bCB7XHJcblx0XHRcdFx0ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LnNvY2lhbF93cmFwIHtcclxuXHRcdHBhZGRpbmc6NDBweCAwIDA7XHJcblx0XHRcclxuXHRcdC5zb2NpYWxfd3JhcF9pbm5lciB7XHJcblx0XHRcdC50YWM7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGxpIHtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OjVweDtcclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6MDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRhIHtcclxuXHRcdFx0Zm9udC1zaXplOjE1cHg7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OjE1cHg7XHJcblx0XHRcdHdpZHRoOjMwcHg7XHJcblx0XHRcdGhlaWdodDozMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuZm9vdGVyX2NvcHlyaWdodCB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0cGFkZGluZzoyMHB4IDAgMDtcclxuXHRcdC50YWM7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIEZvb3RlciBTbWFsbCAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX2Zvb3Rlcl9zbWFsbCB7XHJcblx0LmZvb3Rlcl9pbm5lciB7XHJcblx0XHRwYWRkaW5nLXRvcDoyNXB4O1xyXG5cdFx0cGFkZGluZy1ib3R0b206MjVweDtcclxuXHRcdC5iZHQ7XHJcblx0XHRcclxuXHRcdD4gZGl2e1xyXG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblx0XHR9XHJcblxyXG5cdFx0LmZvb3Rlcl9sZWZ0e1xyXG5cdFx0XHR3aWR0aDogNDAlO1xyXG5cdFx0XHQudGFsO1xyXG5cdFx0fVxyXG5cdFx0LmZvb3Rlcl9yaWdodHtcclxuXHRcdFx0d2lkdGg6IDYwJTtcclxuXHRcdFx0LnRhcjtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmZvb3Rlcl9uYXZfd3JhcCB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuZm9vdGVyX25hdiB7XHJcblx0XHQ+IGxpIHtcclxuXHRcdFx0bWFyZ2luOjAgMjBweCAwIDA7XHJcblx0XHRcdC5iZCgwKTtcclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdHVsIHtcclxuXHRcdFx0XHRkaXNwbGF5Om5vbmUgIWltcG9ydGFudDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0YXtcclxuXHRcdFx0XHRwYWRkaW5nOiAwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5zb2NpYWxfd3JhcCB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OjA7XHJcblx0XHRcdG1hcmdpbi1yaWdodDoxMHB4O1xyXG5cdFx0XHRcclxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHRtYXJnaW4tbGVmdDowO1xyXG5cdFx0XHRcdG1hcmdpbi1yaWdodDowO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGEge1xyXG5cdFx0XHRmb250LXNpemU6MTZweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6MTZweDtcclxuXHRcdFx0d2lkdGg6MjJweDtcclxuXHRcdFx0aGVpZ2h0OjIycHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5mb290ZXJfY3VzdG9tX2h0bWxfd3JhcCB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5mcjtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5mb290ZXJfY29weXJpZ2h0IHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRwYWRkaW5nOjFweCAyMHB4IDFweCAwO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxufVxyXG5cclxuXHJcblxyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4vKiBCbG9nIChEZWZhdWx0LCBNYXNvbnJ5LCBUaW1lbGluZSkgKyBQb3N0IFN0eWxlc1xyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxuLyoqKioqKioqKioqKioqKioqIEJsb2cgKioqKioqKioqKioqKioqKioqL1xyXG4uYmxvZyB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHJcblx0JjphZnRlciB7XHJcblx0XHQuY2xfYWZ0ZXI7XHJcblx0fVxyXG5cdFxyXG5cdC5wb3N0IHtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHRtYXgtd2lkdGg6MTAwJTtcclxuXHRcdFxyXG5cdFx0LnByZWxvYWRlciB7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOkBwcmVsb2FkZXJfYmxvZ19kZWZhdWx0X3BhZDtcclxuXHRcdFx0XHJcblx0XHRcdCYuaGlnaEltZyB7XHJcblx0XHRcdFx0aGVpZ2h0OmF1dG87XHJcblx0XHRcdFx0cGFkZGluZy1ib3R0b206MDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3ZpZGVvX3dyYXAsIFxyXG5cdFx0LnJlc2l6YWJsZV9ibG9jayB7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOkBwcmVsb2FkZXJfYmxvZ19kZWZhdWx0X3BhZDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jb2x1bW5zIHtcclxuXHRcdG1hcmdpbjotNDBweCAtMTBweCAwO1xyXG5cdFx0XHJcblx0XHQucG9zdCB7XHJcblx0XHRcdG1pbi13aWR0aDoyODBweDtcclxuXHRcdFx0cGFkZGluZzo0MHB4IDEwcHggMDtcclxuXHRcdFx0LmZsO1xyXG5cdFx0XHQub3AoMCk7XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc180JiB7XHJcblx0XHRcdFx0d2lkdGg6MjUlO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc18zJiB7XHJcblx0XHRcdFx0d2lkdGg6MzMuMzMlO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc18yJiB7XHJcblx0XHRcdFx0d2lkdGg6NTAlO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLnNob3J0Y29kZV9hbmltYXRlZCB7XHJcblx0XHRcdFx0Lm9wKDEpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQucHJlbG9hZGVyIHtcclxuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTpAcHJlbG9hZGVyX2Jsb2dfbWFzb25yeV9wYWQ7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Ji5oaWdoSW1nIHtcclxuXHRcdFx0XHRcdGhlaWdodDphdXRvO1xyXG5cdFx0XHRcdFx0cGFkZGluZy1ib3R0b206MDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX3ZpZGVvX3dyYXAsIFxyXG5cdFx0XHQucmVzaXphYmxlX2Jsb2NrIHtcclxuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTpAcHJlbG9hZGVyX2Jsb2dfbWFzb25yeV9wYWQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji50aW1lbGluZSB7XHJcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdC5wb3NfYWJzKDFweCwgMTAwJSwgLTFweCk7XHJcblx0XHRcdHotaW5kZXg6IDEwMDtcclxuXHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdHZpc2liaWxpdHk6IHZpc2libGU7XHJcblx0XHRcdG92ZXJmbG93OiB2aXNpYmxlO1xyXG5cdFx0XHQuYmRsO1xyXG5cdFx0fVxyXG5cclxuXHRcdC5wb3N0IHtcclxuXHRcdFx0d2lkdGg6NTAlO1xyXG5cdFx0XHQub3AoMCk7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLmNtc21hc3RlcnNfdGltZWxpbmVfbGVmdCB7XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfdGltZWxpbmVfbWFyZ2luIHtcclxuXHRcdFx0XHRcdG1hcmdpbi1yaWdodDozMiU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLmNtc21hc3RlcnNfdGltZWxpbmVfcmlnaHQge1xyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX3RpbWVsaW5lX21hcmdpbiB7XHJcblx0XHRcdFx0XHRtYXJnaW4tbGVmdDozMiVcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYuc2hvcnRjb2RlX2FuaW1hdGVkIHtcclxuXHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5wcmVsb2FkZXIge1xyXG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOkBwcmVsb2FkZXJfYmxvZ190aW1lbGluZV9wYWQ7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Ji5oaWdoSW1nIHtcclxuXHRcdFx0XHRcdGhlaWdodDphdXRvO1xyXG5cdFx0XHRcdFx0cGFkZGluZy1ib3R0b206MDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX3ZpZGVvX3dyYXAsIFxyXG5cdFx0XHQucmVzaXphYmxlX2Jsb2NrIHtcclxuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTpAcHJlbG9hZGVyX2Jsb2dfdGltZWxpbmVfcGFkO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5vd2wtcGFnaW5hdGlvbiB7XHJcblx0XHR3aWR0aDphdXRvO1xyXG5cdFx0bGVmdDphdXRvO1xyXG5cdFx0cmlnaHQ6MTBweDtcclxuXHRcdHRvcDoxMHB4O1xyXG5cdFx0Ym90dG9tOmF1dG87XHJcblx0fVxyXG59XHJcblxyXG4uY21zbWFzdGVyc19wb3N0X2RlZmF1bHQsXHJcbi5jbXNtYXN0ZXJzX3Bvc3RfdGltZWxpbmUsXHJcbi5jbXNtYXN0ZXJzX29wZW5fcG9zdCxcclxuLmNtc21hc3RlcnNfb3Blbl9wcm9qZWN0LFxyXG4uY21zbWFzdGVyc19zaW5nbGVfc2xpZGVyLFxyXG4uY21zbWFzdGVyc19jbGllbnRzX3NsaWRlcl93cmFwLFxyXG4uY21zbWFzdGVyc19jb250ZW50X3NsaWRlcl93cmFwe1xyXG5cdC5jbXNtYXN0ZXJzX293bF9zbGlkZXIgIHtcclxuXHRcdFxyXG5cdFx0Lm93bC1wYWdpbmF0aW9ue1xyXG5cdFx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0fVxyXG5cclxuXHRcdC5vd2wtYnV0dG9uc3tcclxuXHRcdFx0dG9wOiA1MCU7XHJcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xyXG5cdFx0XHRwb2ludGVyLWV2ZW50czogbm9uZTsgXHJcblxyXG5cdFx0XHQ+IGRpdntcclxuXHRcdFx0XHRwb2ludGVyLWV2ZW50czogYXV0bzsgXHJcblx0XHRcdFx0d2lkdGg6IDQ2cHg7XHJcblx0XHRcdFx0aGVpZ2h0OiA0NnB4O1xyXG5cdFx0XHRcdGxpbmUtaGVpZ2h0OiA0OHB4O1xyXG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiA0JTtcclxuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6IDQlO1xyXG5cdFx0XHRcdC50YWM7XHJcblx0XHRcdFx0LnRyYW5zKH4nY29sb3IgLjNzIGVhc2UtaW4tb3V0LCBiYWNrZ3JvdW5kLWNvbG9yIC4zcyBlYXNlLWluLW91dCwgb3BhY2l0eSAuM3MgZWFzZS1pbi1vdXQnKTtcclxuXHJcblx0XHRcdFx0Ji5kaXNhYmxlZHtcclxuXHRcdFx0XHRcdG9wYWNpdHk6IDAuMjtcclxuXHRcdFx0XHRcdHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Lm93bC1wcmV2e1xyXG5cdFx0XHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0XHRcdHRleHQtaW5kZW50OiAtMXB4O1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQub3dsLW5leHR7XHJcblx0XHRcdFx0ZmxvYXQ6IHJpZ2h0O1xyXG5cdFx0XHRcdHRleHQtaW5kZW50OiAxcHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBCbG9nIERlZmF1bHQgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19wb3N0X2RlZmF1bHQge1xyXG5cdHBhZGRpbmc6MiUgMDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cclxuXHQuY21zbWFzdGVyc19wb3N0X2RlZmF1bHQgKyAme1xyXG5cdFx0bWFyZ2luLXRvcDogMyU7XHJcblx0XHRwYWRkaW5nLXRvcDo2JTtcclxuXHJcblx0XHQmOjpiZWZvcmV7XHJcblx0XHRcdGNvbnRlbnQ6IFwiXCI7XHJcblx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0dG9wOiAwO1xyXG5cdFx0XHRsZWZ0OiAwO1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0b3BhY2l0eTogMC4zNTtcclxuXHRcdFx0LmJkYjtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdFxyXG5cclxuXHJcblx0Ji5zdGlja3l7XHJcblx0XHQuY21zbWFzdGVyc19wb3N0X2NvbnR7XHJcblx0XHRcdCY6OmJlZm9yZXtcclxuXHRcdFx0XHRjb250ZW50OiAnXFxlOGEwJztcclxuXHRcdFx0XHRmb250LWZhbWlseTogXCJmb250ZWxsby1jdXN0b21cIjtcclxuXHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdFx0Zm9udC1zaXplOiAxOXB4O1xyXG5cdFx0XHRcdHRvcDogMzBweDtcclxuXHRcdFx0XHRyaWdodDogMzBweDtcclxuXHRcdFx0XHR6LWluZGV4OiAxMDtcclxuXHRcdFx0XHR3aWR0aDogNTVweDtcclxuXHRcdFx0XHRoZWlnaHQ6IDU1cHg7XHJcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDU1cHg7XHJcblx0XHRcdFx0LmJkcnMoNTAlKTtcclxuXHRcdFx0XHQudGFjO1xyXG5cdFx0XHRcdC5vdmg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCY6Zmlyc3QtY2hpbGQge1xyXG5cdFx0cGFkZGluZy10b3A6MDtcclxuXHR9XHJcblxyXG5cdCY6bGFzdC1jaGlsZHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDA7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTogMDtcclxuXHR9XHJcblx0XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9pbmZvIHtcclxuXHRcdG91dGxpbmU6bm9uZTtcclxuXHR9XHJcblx0XHJcblx0YSA+IHtcclxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfZGF0ZXtcclxuXHRcdFx0cGFkZGluZy1yaWdodDogMTBweDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfZGF0ZSB7XHJcblx0XHRvdXRsaW5lOm5vbmU7XHJcblx0XHRcclxuXHRcdCYgKyAuY21zbWFzdGVyc19wb3N0X2F1dGhvciB7XHJcblx0XHRcdHBhZGRpbmctbGVmdDogMTBweDtcclxuXHRcdH1cclxuXHJcblx0XHQucHVibGlzaGVkIHtcclxuXHRcdFx0b3V0bGluZTpub25lO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19kYXlfbW9uIHtcclxuXHRcdFx0b3V0bGluZTpub25lO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc195ZWFyIHtcclxuXHRcdFx0b3V0bGluZTpub25lO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2xpa2VzIHtcclxuXHRcdG91dGxpbmU6bm9uZTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9jb21tZW50cyB7XHJcblx0XHRvdXRsaW5lOm5vbmU7XHJcblxyXG5cdFx0JiArIC5jbXNtYXN0ZXJzX3Bvc3RfbGlrZXN7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAxMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2NvbnQge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19pbWdfd3JhcCB7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xyXG5cdFx0Lm92aDtcclxuXHJcblx0XHRhe1xyXG5cdFx0XHR3aWR0aDogYXV0bztcclxuXHJcblx0XHRcdGltZ3tcclxuXHRcdFx0XHR3aWR0aDogYXV0bztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19vd2xfc2xpZGVyIHtcclxuXHRcdG91dGxpbmU6bm9uZTtcclxuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XHJcblx0XHRcclxuXHRcdGZpZ3VyZSB7XHJcblx0XHRcdC5vdmg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2F1ZGlvIHtcclxuXHRcdG91dGxpbmU6bm9uZTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfdmlkZW9fd3JhcCB7XHJcblx0XHRvdXRsaW5lOm5vbmU7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfaGVhZGVyIHtcclxuXHRcdHBhZGRpbmc6MTFweCAwIDA7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfdGl0bGUge1xyXG5cdFx0XHR3b3JkLXdyYXA6YnJlYWstd29yZDtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfY29udF9pbmZvIHtcclxuXHRcdC5vdmg7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuXHJcblx0XHQ+IHNwYW4ge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHJcblx0XHRcdCYuY21zbWFzdGVyc19wb3N0X2NhdGVnb3J5e1xyXG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IDEzcHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfYXV0aG9ye1xyXG5cdFx0cGFkZGluZy1ib3R0b206IDIwcHg7XHJcblxyXG5cdFx0JiB+IC5jbXNtYXN0ZXJzX3Bvc3RfY2F0ZWdvcnl7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAwLjI1ZW07XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfY29udGVudCB7XHJcblx0XHRwYWRkaW5nLWJvdHRvbToxNXB4O1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0cCB7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfZm9vdGVyIHtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfcmVhZF9tb3JlIHtcclxuXHRcdC5yZWFkbW9yZSgpO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBCbG9nIE1hc29ucnkgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19wb3N0X21hc29ucnkge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfY29udCB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfb3dsX3NsaWRlciB7XHJcblx0XHRwYWRkaW5nLXRvcDogMzBweDtcclxuXHRcdHBhZGRpbmctYm90dG9tOiAxN3B4O1xyXG5cdFx0Lm93bC1idXR0b25ze1xyXG5cdFx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0fVxyXG5cdFx0Lm93bC1wYWdpbmF0aW9ue1xyXG5cdFx0XHR0b3A6IDA7XHJcblx0XHRcdGxlZnQ6IDA7XHJcblx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHQudGFsO1xyXG5cclxuXHRcdFx0Lm93bC1wYWdle1xyXG5cdFx0XHRcdCY6Zmlyc3QtY2hpbGR7XHJcblx0XHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdCY6bGFzdC1jaGlsZHtcclxuXHRcdFx0XHRcdG1hcmdpbi1yaWdodDogMDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5jbXNtYXN0ZXJzX2ltZ193cmFwe1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMThweDtcclxuXHR9XHJcblxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfZGF0ZSB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRvdXRsaW5lOm5vbmU7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAxM3B4O1xyXG5cdFx0XHJcblx0XHQmICsgLmNtc21hc3RlcnNfcG9zdF9hdXRob3Ige1xyXG5cdFx0XHRtYXJnaW4tbGVmdDogMTBweDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfYXV0aG9ye1xyXG5cdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMTNweDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfZGF0ZV9pbWdfd3JhcCB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFxyXG5cdFx0ZmlndXJlIHtcclxuXHRcdFx0Lm92aDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfcG9zdF9kYXRlIHtcclxuXHRcdFx0b3V0bGluZTpub25lO1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAxM3B4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc192aWRlb193cmFwIHtcclxuXHRcdG91dGxpbmU6bm9uZTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfYXVkaW8ge1xyXG5cdFx0b3V0bGluZTpub25lO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2hlYWRlciB7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfdGl0bGUge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9jb250X2luZm8ge1xyXG5cdFx0Lm92aDtcclxuXHRcdG1hcmdpbi1ib3R0b206IDEycHg7XHJcblx0XHRcclxuXHRcdD4gc3BhbiB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2NhdGVnb3J5e1xyXG5cdFx0cGFkZGluZy1yaWdodDogMTBweDtcclxuXHR9XHJcblxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfY29udGVudCB7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTogMTRweDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdHAge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2Zvb3RlciB7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQ+IHNwYW4ge1xyXG5cdFx0XHRvdXRsaW5lOm5vbmU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfcmVhZF9tb3JlIHtcclxuXHRcdC5yZWFkbW9yZSgpO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBCbG9nIFRpbWVsaW5lICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfcG9zdF90aW1lbGluZSB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0cGFkZGluZy1ib3R0b206IDQwcHg7XHJcblxyXG5cdCY6bGFzdC1jaGlsZHtcclxuXHRcdHBhZGRpbmctYm90dG9tOiAwO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2luZm8ge1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR6LWluZGV4OiAxMDE7XHJcblx0fVxyXG5cdFxyXG5cdC5vd2wtcGFnaW5hdGlvbntcclxuXHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0fVxyXG5cclxuXHQmLmNtc21hc3RlcnNfdGltZWxpbmVfbGVmdCB7XHJcblx0XHQuY21zbWFzdGVyc19wb3N0X2luZm8ge1xyXG5cdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdHJpZ2h0OjBweDtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsMCk7XHJcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSwwKTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX3RpbWVsaW5lX3JpZ2h0IHtcclxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfaW5mbyB7XHJcblx0XHRcdGxlZnQ6MHB4O1xyXG5cdFx0XHRyaWdodDphdXRvO1xyXG5cdFx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsMCk7XHJcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsMCk7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfZGF0ZSB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0d2lkdGg6NzJweDtcclxuXHRcdGhlaWdodDphdXRvO1xyXG5cdFx0LnRhYztcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdCY6OmJlZm9yZXtcclxuXHRcdFx0ZGlzcGxheTogbm9uZTtcclxuXHRcdH1cclxuXHJcblx0XHQucHVibGlzaGVkIHtcclxuXHRcdFx0b3V0bGluZTpub25lO1xyXG5cclxuXHRcdFx0LmRhdGUtaW5mb3tcclxuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdFx0XHRtYXJnaW46IDA7XHJcblx0XHRcdFx0bGluZS1oZWlnaHQ6IDE7XHJcblxyXG5cdFx0XHRcdCYuZGF5e1xyXG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogN3B4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19kYXlfbW9uIHtcclxuXHRcdFx0b3V0bGluZTpub25lO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc195ZWFyIHtcclxuXHRcdFx0b3V0bGluZTpub25lO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2NvbnQge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHJcblx0LmNtc21hc3RlcnNfb3dsX3NsaWRlciB7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAxN3B4O1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19pbWdfd3JhcHtcclxuXHRcdHBhZGRpbmctYm90dG9tOiAxN3B4O1xyXG5cdH1cclxuXHJcblx0ZmlndXJlIHtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3ZpZGVvX3dyYXAge1xyXG5cdFx0b3V0bGluZTpub25lO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19hdWRpbyB7XHJcblx0XHRvdXRsaW5lOm5vbmU7XHJcblx0fVxyXG5cclxuXHQuY21zbWFzdGVyc19wb3N0X2F1dGhvciB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2hlYWRlciB7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfdGl0bGUge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9jb250X2luZm8ge1xyXG5cdFx0Lm92aDtcclxuXHRcdG1hcmdpbi1ib3R0b206IDEzcHg7XHJcblx0XHRcclxuXHRcdD4gc3BhbiB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cclxuXHRcdFx0Ji5jbXNtYXN0ZXJzX3Bvc3RfY2F0ZWdvcnl7XHJcblx0XHRcdFx0cGFkZGluZy1yaWdodDogMTBweDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ji5jbXNtYXN0ZXJzX3Bvc3RfY29tbWVudHN7XHJcblx0XHRcdFx0cGFkZGluZy1yaWdodDogN3B4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfY29udGVudCB7XHJcblx0XHQub3ZoO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMTVweDtcclxuXHRcdFxyXG5cdFx0cCB7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfZm9vdGVyIHtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdD4gc3BhbiB7XHJcblx0XHRcdG91dGxpbmU6bm9uZTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9yZWFkX21vcmUge1xyXG5cdFx0LnJlYWRtb3JlKCk7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIEJsb2cgUG9zdCAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX29wZW5fcG9zdCB7XHJcblx0Lm92aDtcclxuXHRcclxuXHQucHJlbG9hZGVyIHtcclxuXHRcdHBhZGRpbmctYm90dG9tOkBwcmVsb2FkZXJfb3Blbl9wb3N0X3BhZDtcclxuXHRcdFxyXG5cdFx0Ji5oaWdoSW1nIHtcclxuXHRcdFx0aGVpZ2h0OmF1dG87XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfdmlkZW9fd3JhcCwgXHJcblx0LnJlc2l6YWJsZV9ibG9jayB7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTpAcHJlbG9hZGVyX29wZW5fcG9zdF9wYWQ7XHJcblx0fVxyXG5cdFxyXG5cdD4gZGl2OmZpcnN0LWNoaWxkIHtcclxuXHRcdG1hcmdpbi10b3A6MDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaW1nX3dyYXAge1xyXG5cdFx0Lm92aDtcclxuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX293bF9zbGlkZXIge1xyXG5cdFx0b3V0bGluZTpub25lO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcclxuXHRcdFxyXG5cdFx0ZmlndXJlIHtcclxuXHRcdFx0Lm92aDtcclxuXHRcdH1cclxuXHJcblx0XHQub3dsLXBhZ2luYXRpb257XHJcblx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3ZpZGVvX3dyYXAge1xyXG5cdFx0b3V0bGluZTpub25lO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19hdWRpbyB7XHJcblx0XHRvdXRsaW5lOm5vbmU7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfaGVhZGVyIHtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfcG9zdF90aXRsZSB7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmNtc21hc3RlcnNfcG9zdF9pbnRlcmZhY2V7XHJcblx0XHRwYWRkaW5nLWJvdHRvbToyNXB4O1xyXG5cclxuXHJcblx0XHQuY21zbWFzdGVyc19wb3N0X2NhdGVnb3J5e1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcblx0XHR9XHJcblxyXG5cdFx0LmNtc21hc3RlcnNfY29tbWVudHMge1xyXG5cdFx0XHRwYWRkaW5nLXJpZ2h0OiA1cHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfY29udF9pbmZvIHtcclxuXHRcdC5vdmg7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTogMTBweDtcclxuXHRcdFxyXG5cdFx0PiBzcGFuIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblxyXG5cdFx0XHQmLmNtc21hc3RlcnNfcG9zdF9kYXRlIHtcclxuXHRcdFx0XHQmICsgLmNtc21hc3RlcnNfcG9zdF9hdXRob3Ige1xyXG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDEwcHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfZGF0ZSB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9jb250ZW50IHtcclxuXHRcdHBhZGRpbmctYm90dG9tOiAxMHB4O1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0PiAqOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOjA7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfZm9vdGVyIHtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdD4gc3BhbiB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfdGFncyB7XHJcblx0XHRvdXRsaW5lOm5vbmU7XHJcblx0XHRwYWRkaW5nLXRvcDogMTBweDtcclxuXHR9XHJcblxyXG5cclxuXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbi8qIFBvcnRmb2xpbyAoR3JpZCwgUHV6emxlKSArIFByb2plY3QgU3R5bGVzXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG4vKioqKioqKioqKioqKioqKiogUG9ydGZvbGlvICoqKioqKioqKioqKioqKioqKi9cclxuLnBvcnRmb2xpbyB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHJcblx0JjphZnRlciB7XHJcblx0XHQuY2xfYWZ0ZXI7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfZ3JpZCxcclxuXHQuY21zbWFzdGVyc19wcm9qZWN0X3B1enpsZSB7XHJcblx0XHRtaW4td2lkdGg6MjAwcHg7XHJcblx0XHQub3ZoO1xyXG5cdFx0LmZsO1xyXG5cdFx0XHJcblx0XHQucHJlbG9hZGVyIHtcclxuXHRcdFx0cGFkZGluZy1ib3R0b206QHByZWxvYWRlcl9wb3J0Zm9saW9fZ3JpZF9wYWQ7XHJcblx0XHRcdFxyXG5cdFx0XHRcclxuXHRcdFx0Ji5oaWdoSW1nIHtcclxuXHRcdFx0XHRoZWlnaHQ6YXV0bztcclxuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQuY21zbWFzdGVyc19vcGVuX3Bvc3RfbGlua3tcclxuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmLnplcm9fZ2FwICB7XHJcblx0XHQucHJvamVjdCB7XHJcblx0XHRcdC5wcm9qZWN0X291dGVye1xyXG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOiAyMHB4O1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQucHJvamVjdF9pbm5lcntcclxuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6IDEwcHg7XHJcblx0XHRcdFx0cGFkZGluZy1yaWdodDogMTBweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmxhcmdlX2dhcCB7XHJcblx0XHRtYXJnaW46MCAtQGNvbF9tYXI7XHJcblxyXG5cdFx0LnByb2plY3Qge1xyXG5cdFx0XHRwYWRkaW5nLWxlZnQ6QGNvbF9tYXI7XHJcblx0XHRcdHBhZGRpbmctcmlnaHQ6QGNvbF9tYXI7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOkBjb2xfbWFyICogMjtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5zbWFsbF9nYXAge1xyXG5cdFx0cGFkZGluZzowcHggMHB4IDA7XHJcblx0XHRcclxuXHRcdC5wcm9qZWN0IHtcclxuXHRcdFx0b3ZlcmZsb3c6dmlzaWJsZTtcclxuXHRcdFx0XHJcblx0XHRcdC5wcm9qZWN0X291dGVyIHtcclxuXHRcdFx0XHRtYXJnaW4tbGVmdDowO1xyXG5cdFx0XHRcdG1hcmdpbi1yaWdodDoxcHg7XHJcblx0XHRcdFx0bWFyZ2luLWJvdHRvbToxcHg7XHJcblx0XHRcdFx0cGFkZGluZy1ib3R0b206MjBweDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0LnByb2plY3RfaW5uZXJ7XHJcblx0XHRcdFx0cGFkZGluZy1sZWZ0OiAxMHB4O1xyXG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5ncmlkLnBlcmZlY3QgLnByb2plY3Qge1xyXG5cdFx0ZmlndXJlIHtcclxuXHRcdFx0Lm9wKDApO1xyXG5cdFx0XHRwYWRkaW5nLWJvdHRvbTogMjBweDtcclxuXHRcdFx0aGVpZ2h0OiBhdXRvO1xyXG5cclxuXHRcdFx0aW1ne1xyXG5cdFx0XHRcdHBvc2l0aW9uOiBzdGF0aWM7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5zaG9ydGNvZGVfYW5pbWF0ZWQge1xyXG5cdFx0XHRmaWd1cmUge1xyXG5cdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmdyaWQubWFzb25yeSAucHJvamVjdCwgXHJcblx0Ji5wdXp6bGUgLnByb2plY3Qge1xyXG5cdFx0Lm9wKDApO1xyXG5cdFx0XHJcblx0XHQmLnNob3J0Y29kZV9hbmltYXRlZCB7XHJcblx0XHRcdC5vcCgxKTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzXzUgLnByb2plY3Qge1xyXG5cdFx0bWF4LXdpZHRoOjIwJTtcclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzXzQgLnByb2plY3Qge1xyXG5cdFx0bWF4LXdpZHRoOjI1JTtcclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzXzMgLnByb2plY3Qge1xyXG5cdFx0bWF4LXdpZHRoOjMzJTtcclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzXzIgLnByb2plY3Qge1xyXG5cdFx0bWF4LXdpZHRoOjUwJTtcclxuXHR9XHJcblx0XHJcblx0Ji5pc290b3BlLmNtc21hc3RlcnNfNSAucHJvamVjdCwgXHJcblx0Ji5pc290b3BlLmNtc21hc3RlcnNfNCAucHJvamVjdCwgXHJcblx0Ji5pc290b3BlLmNtc21hc3RlcnNfMyAucHJvamVjdCwgXHJcblx0Ji5pc290b3BlLmNtc21hc3RlcnNfMiAucHJvamVjdCB7XHJcblx0XHRtYXgtd2lkdGg6bm9uZTtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogUG9ydGZvbGlvIEdyaWQgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19wcm9qZWN0X2dyaWQge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdC5wcm9qZWN0X291dGVyIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblxyXG5cdC5jbXNtYXN0ZXJzX293bF9zbGlkZXIge1xyXG5cdFx0cGFkZGluZy10b3A6IDMwcHg7XHJcblx0XHQub3dsLWJ1dHRvbnN7XHJcblx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0XHR9XHJcblxyXG5cdFx0Lm93bC1wYWdpbmF0aW9ue1xyXG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdHRvcDogMDtcclxuXHRcdFx0bGVmdDogMDtcclxuXHRcdFx0Ym90dG9tOiBhdXRvO1xyXG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQucHJvamVjdF9pbm5lciB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfaGVhZGVyIHtcclxuXHRcdHBhZGRpbmc6MCAwIDEwcHg7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Byb2plY3RfdGl0bGUge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvamVjdF9jb250X2luZm8ge1xyXG5cdFx0cGFkZGluZy1ib3R0b206IDE1cHg7XHJcblx0XHQub3ZoO1xyXG5cclxuXHRcdC5jbXNtYXN0ZXJzX3Byb2plY3RfY2F0ZWdvcnl7XHJcblx0XHRcdHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfY29udGVudCB7XHJcblx0XHQub3ZoO1xyXG5cdFx0cGFkZGluZy1ib3R0b206IDIwcHg7XHJcblx0XHRcclxuXHRcdHAge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wcm9qZWN0X2Zvb3RlciB7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQ+IHNwYW4ge1xyXG5cdFx0XHRvdXRsaW5lOm5vbmU7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuY21zbWFzdGVyc19wcm9qZWN0X3JlYWRfbW9yZXtcclxuXHRcdC5yZWFkbW9yZSgpO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBQb3J0Zm9saW8gUHV6emxlICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfcHJvamVjdF9wdXp6bGUge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdC5wcm9qZWN0X291dGVyIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHJcblx0XHRpbWd7XHJcblx0XHRcdHRyYW5zaXRpb246IHRyYW5zZm9ybSAuOHMgZWFzZTtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gLjhzIGVhc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdGltZyB7XHJcblx0XHRcdFx0b3V0bGluZTpub25lO1xyXG5cdFx0XHRcdHRyYW5zZm9ybTogc2NhbGUoMS4xNSk7XHJcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuMTUpO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19pbWdfcm9sbG92ZXIge1xyXG5cdFx0XHRcdC5vcCgwLjcpO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQucHJvamVjdF9pbm5lciB7XHJcblx0XHRcdFx0Ym90dG9tOmF1dG8gIWltcG9ydGFudDtcclxuXHRcdFx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9qZWN0X2lubmVyIHtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHRoZWlnaHQ6IDEwMCU7XHJcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdHRvcDogMDtcclxuXHRcdGxlZnQ6MDsgXHJcblx0XHRkaXNwbGF5OiBmbGV4O1xyXG5cdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG5cdFx0Ym90dG9tOmF1dG8gIWltcG9ydGFudDtcclxuXHRcdHBhZGRpbmc6IDAgNDBweCAyNXB4O1xyXG5cdFx0b3BhY2l0eTogMDtcclxuXHRcdC5vdmg7XHJcblx0XHQudGFjO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wcm9qZWN0X2hlYWRlciB7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Byb2plY3RfdGl0bGUge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0cGFkZGluZy10b3A6IDI1cHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfY29udF9pbmZvIHtcclxuXHRcdC50YWM7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wcm9qZWN0X2Zvb3RlciB7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQ+IHNwYW4ge1xyXG5cdFx0XHRvdXRsaW5lOm5vbmU7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFBvcnRmb2xpbyBPcGVuIFByb2plY3QgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19vcGVuX3Byb2plY3Qge1xyXG5cdHBhZGRpbmc6MCAwIDQwcHg7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHRcclxuXHQucHJlbG9hZGVyIHtcclxuXHRcdHBhZGRpbmctYm90dG9tOkBwcmVsb2FkZXJfb3Blbl9wcm9qZWN0X3BhZDtcclxuXHRcdFxyXG5cdFx0Ji5oaWdoSW1nIHtcclxuXHRcdFx0aGVpZ2h0OmF1dG87XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfdmlkZW9fd3JhcCwgXHJcblx0LnJlc2l6YWJsZV9ibG9jayB7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTpAcHJlbG9hZGVyX29wZW5fcHJvamVjdF9wYWQ7XHJcblx0fVxyXG5cdFxyXG5cdC5vd2wtcGFnaW5hdGlvbiB7XHJcblx0XHR3aWR0aDphdXRvO1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRsZWZ0OmF1dG87XHJcblx0XHRyaWdodDoxMHB4O1xyXG5cdFx0dG9wOjEwcHg7XHJcblx0XHRib3R0b206YXV0bztcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvamVjdF9saWtlcywgXHJcblx0LmNtc21hc3RlcnNfcHJvamVjdF9jb21tZW50cyB7XHJcblx0XHRvdXRsaW5lOm5vbmU7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfaGVhZGVyIHtcclxuXHRcdHBhZGRpbmc6MHB4IDAgMzBweDtcclxuXHRcdC5vdmg7XHJcblx0XHQuY2w7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Byb2plY3RfdGl0bGUge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LnByb2plY3RfY29udGVudCB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0cGFkZGluZzo0M3B4IDAgMDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdCYud2l0aF9zaWRlYmFyIHtcclxuXHRcdFx0d2lkdGg6KEBjb250ZW50X3dpZHRoIC0gNyk7XHJcblx0XHRcdC5mbDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfZ2FsbGVyeV9yb3cge1xyXG5cdFx0XHRtYXJnaW46MCAtQGNvbF9tYXI7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRcclxuXHRcdFx0ZmlndXJlIHtcclxuXHRcdFx0XHQub3ZoO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQub25lX3RoaXJkLCBcclxuXHRcdFx0Lm9uZV9oYWxmLCBcclxuXHRcdFx0Lm9uZV9maXJzdCB7XHJcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTooQGNvbF9tYXIgKiAyKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Lm9uZV90aGlyZCwgXHJcblx0XHRcdC5vbmVfaGFsZiB7XHJcblx0XHRcdFx0LnByZWxvYWRlciB7XHJcblx0XHRcdFx0XHRwYWRkaW5nLWJvdHRvbTpAcHJlbG9hZGVyX3BvcnRmb2xpb19ncmlkX3BhZDtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0Ji5oaWdoSW1nIHtcclxuXHRcdFx0XHRcdFx0aGVpZ2h0OmF1dG87XHJcblx0XHRcdFx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0PiAuY21zbWFzdGVyc19pbWdfd3JhcCB7XHJcblx0XHRcdC5vdmg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdD4gLmNtc21hc3RlcnNfb3dsX3NsaWRlciB7XHJcblx0XHRcdG91dGxpbmU6bm9uZTtcclxuXHRcdFx0XHJcblx0XHRcdGZpZ3VyZSB7XHJcblx0XHRcdFx0Lm92aDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQ+IC5jbXNtYXN0ZXJzX3ZpZGVvX3dyYXAge1xyXG5cdFx0XHRvdXRsaW5lOm5vbmU7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQuY21zbWFzdGVyc19wcm9qZWN0X2NvbnRlbnQge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQucHJvamVjdF9zaWRlYmFyX3dyYXB7XHJcblx0XHRwYWRkaW5nOiAzMHB4IDI1cHg7XHJcblx0fVxyXG5cclxuXHQucHJvamVjdF9zaWRlYmFyIHtcclxuXHRcdHdpZHRoOihAc2lkZWJhcl93aWR0aCArIDcpO1xyXG5cdFx0cGFkZGluZzo1MHB4IDAgMCAzNXB4O1xyXG5cdFx0LmZyO1xyXG5cdFx0XHJcblx0XHQ+IGRpdiB7XHJcblx0XHRcdG91dGxpbmU6bm9uZTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LnByb2plY3RfZGV0YWlscywgXHJcblx0LnByb2plY3RfZmVhdHVyZXMge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH0gXHJcblx0LnByb2plY3RfZmVhdHVyZXN7XHJcblx0XHRwYWRkaW5nLXRvcDogMzBweDtcclxuXHR9XHJcblx0XHJcblx0LnByb2plY3RfZGV0YWlsc190aXRsZSwgXHJcblx0LnByb2plY3RfZmVhdHVyZXNfdGl0bGUge1xyXG5cdFx0bWFyZ2luOjAgMCAyM3B4O1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdH1cclxuXHRcclxuXHQucHJvamVjdF9kZXRhaWxzX2l0ZW0sIFxyXG5cdC5wcm9qZWN0X2ZlYXR1cmVzX2l0ZW0ge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTogMnB4O1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LnByb2plY3RfZGV0YWlsc19pdGVtX3RpdGxlLCBcclxuXHQucHJvamVjdF9mZWF0dXJlc19pdGVtX3RpdGxlIHtcclxuXHRcdG1heC13aWR0aDo1MCU7XHJcblx0XHRwYWRkaW5nLXRvcDogM3B4O1xyXG5cdFx0LmZsO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LnByb2plY3RfZGV0YWlsc19vbmVfaXRlbSAucHJvamVjdF9kZXRhaWxzX2l0ZW1fdGl0bGUsIFxyXG5cdC5wcm9qZWN0X2ZlYXR1cmVzX29uZV9pdGVtIC5wcm9qZWN0X2ZlYXR1cmVzX2l0ZW1fdGl0bGUge1xyXG5cdFx0bWF4LXdpZHRoOjEwMCU7XHJcblx0XHRmbG9hdDpub25lO1xyXG5cdH1cclxuXHRcclxuXHQucHJvamVjdF9kZXRhaWxzX2l0ZW1fZGVzYywgXHJcblx0LnByb2plY3RfZmVhdHVyZXNfaXRlbV9kZXNjIHtcclxuXHRcdHBhZGRpbmc6MCAwIDAgMTVweDtcclxuXHRcdHdvcmQtd3JhcDpicmVhay13b3JkO1xyXG5cdFx0LnRhcjtcclxuXHRcdC5vdmg7XHJcblxyXG5cdFx0c3BhbntcclxuXHRcdFx0YXtcclxuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5wcm9qZWN0X2RldGFpbHNfb25lX2l0ZW0gLnByb2plY3RfZGV0YWlsc19pdGVtX2Rlc2MsIFxyXG5cdC5wcm9qZWN0X2ZlYXR1cmVzX29uZV9pdGVtIC5wcm9qZWN0X2ZlYXR1cmVzX2l0ZW1fZGVzYyB7XHJcblx0XHRwYWRkaW5nLWxlZnQ6MDtcclxuXHRcdHBhZGRpbmctcmlnaHQ6MDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG5cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuLyogUG9zdHMgU2xpZGVyIFN0eWxlc1xyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxuLyoqKioqKioqKioqKioqKioqIFBvc3RzIFNsaWRlciAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX3Bvc3RzX3NsaWRlciB7XHJcblx0bWFyZ2luOjAgLTEwcHg7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0cGFkZGluZy1ib3R0b206IDMwcHg7XHJcblx0Lm92aDtcclxuXHJcblx0Ji5jbXNtYXN0ZXJzX3Bvc3RzX3NsaWRlcl90eXBlX3Byb2plY3R7XHJcblx0XHRwYWRkaW5nLXRvcDogNTBweDtcclxuXHRcdHBhZGRpbmctYm90dG9tOiAwcHg7XHJcblx0fVxyXG5cdFxyXG5cdC5vd2wtYnV0dG9ucyB7XHJcblx0XHRkaXNwbGF5OiBub25lO1xyXG5cdH1cclxuXHJcblx0Lm93bC1wYWdpbmF0aW9ue1xyXG5cdFx0dG9wOiBhdXRvO1xyXG5cdFx0Ym90dG9tOiAtMjVweDtcclxuXHJcblx0XHQuY21zbWFzdGVyc19wb3N0c19zbGlkZXJfdHlwZV9wcm9qZWN0JntcclxuXHRcdFx0Ym90dG9tOiBhdXRvO1xyXG5cdFx0XHR0b3A6IC01MHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQucHJlbG9hZGVyIHtcclxuXHRcdHBhZGRpbmctYm90dG9tOkBwcmVsb2FkZXJfcG9zdHNfc2xpZGVyX3BhZDtcclxuXHRcdFxyXG5cdFx0Ji5oaWdoSW1nIHtcclxuXHRcdFx0aGVpZ2h0OmF1dG87XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfb3dsX3NsaWRlciB7XHJcblx0XHRwYWRkaW5nOjBweCAwIDA7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX293bF9zbGlkZXJfaXRlbSB7XHJcblx0XHRtaW4td2lkdGg6MjAwcHg7XHJcblx0XHRtYXgtd2lkdGg6MTAwJTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Bvc3QsIFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0IHtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHRwYWRkaW5nOjAgMTBweCAyMHB4O1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBQb3N0cyBTbGlkZXIgQmxvZyAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX3NsaWRlcl9wb3N0IHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcG9zdF9vdXRlciB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wb3N0X2RhdGVfaW1nX3dyYXAge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cclxuXHRcdCYgKyAuY21zbWFzdGVyc19zbGlkZXJfcG9zdF9pbm5lcntcclxuXHRcdFx0bWFyZ2luLXRvcDogMjBweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Bvc3RfZGF0ZSB7XHJcblx0XHRvdXRsaW5lOm5vbmU7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wb3N0X2lubmVyIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wb3N0X2RhdGUge1xyXG5cdFx0cGFkZGluZy1yaWdodDogMTVweDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Bvc3RfaGVhZGVyIHtcclxuXHRcdHBhZGRpbmc6MTBweCAwIDA7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3NsaWRlcl9wb3N0X3RpdGxlIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wb3N0X2NvbnRfaW5mbyB7XHJcblx0XHQub3ZoO1xyXG5cdFx0cGFkZGluZy1ib3R0b206IDE1cHg7XHJcblx0XHRcclxuXHRcdD4gc3BhbiB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0fVxyXG5cclxuXHR9XHJcblxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wb3N0X2NhdGVnb3J5e1xyXG5cdFx0cGFkZGluZy1yaWdodDogMTVweDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Bvc3RfY29udGVudCB7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTogMTVweDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdHAge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcG9zdF9mb290ZXIge1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0PiBzcGFuIHtcclxuXHRcdFx0b3V0bGluZTpub25lO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcG9zdF9yZWFkX21vcmUge1xyXG5cdFx0LnJlYWRtb3JlKCk7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFBvc3RzIFNsaWRlciBQb3J0Zm9saW8gKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19zbGlkZXJfcHJvamVjdCB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Byb2plY3Rfb3V0ZXIge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cclxuXHRcdC5jbXNtYXN0ZXJzX2ltZ19yb2xsb3Zlcl93cmFwe1xyXG5cdFx0XHRoZWlnaHQ6IGF1dG87XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOiAyMHB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdGltZ3tcclxuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHRoZWlnaHQ6IGF1dG87XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQub3dsLXBhZ2luYXRpb257XHJcblx0XHRkaXNwbGF5OiBub25lO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcHJvamVjdF9pbm5lciB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0X2hlYWRlciB7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0X3RpdGxlIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0X2NvbnRfaW5mbyB7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTogMTVweDtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcHJvamVjdF9jYXRlZ29yeXtcclxuXHRcdHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0X2NvbnRlbnQge1xyXG5cdFx0Lm92aDtcclxuXHRcdHBhZGRpbmctYm90dG9tOiAxNXB4O1xyXG5cdFx0XHJcblx0XHRwIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Byb2plY3RfZm9vdGVyIHtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdD4gc3BhbiB7XHJcblx0XHRcdG91dGxpbmU6bm9uZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfcmVhZF9tb3JlLFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wb3N0X3JlYWRfbW9yZXtcclxuXHRcdC5yZWFkbW9yZSgpO1xyXG5cdH1cclxufVxyXG5cclxuXHJcblxyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4vKiBQcm9maWxlcyArIFByb2ZpbGUgU3R5bGVzXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG4vKioqKioqKioqKioqKioqKiogUHJvZmlsZXMgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19wcm9maWxlIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdCYuaG9yaXpvbnRhbCB7XHJcblx0XHRtYXJnaW46LTQwcHggLUBjb2xfbWFyIDA7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Byb2ZpbGVfaG9yaXpvbnRhbCB7XHJcblx0XHRcdG1hcmdpbi10b3A6NDBweDtcclxuXHRcdFx0XHJcblx0XHRcdCYub25lX2hhbGY6bnRoLWNoaWxkKDJuKzEpLFxyXG5cdFx0XHQmLm9uZV90aGlyZDpudGgtY2hpbGQoM24rMSksXHJcblx0XHRcdCYub25lX2ZvdXJ0aDpudGgtY2hpbGQoNG4rMSkge1xyXG5cdFx0XHRcdGNsZWFyOmxlZnQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogUHJvZmlsZXMgSG9yaXpvbnRhbCAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX3Byb2ZpbGVfaG9yaXpvbnRhbCB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHJcblx0LnByb2ZpbGVfb3V0ZXIge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cclxuXHRcdCY6aG92ZXJ7XHJcblx0XHRcdC5jbXNtYXN0ZXJzX2ltZ193cmFwIHtcclxuXHRcdFx0XHQmICsgLnByb2ZpbGVfc29jaWFsX2ljb25ze1xyXG5cdFx0XHRcdFx0b3BhY2l0eTogMTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LnByb2ZpbGVfd3JhcF9maWd1cmVfc29je1xyXG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19pbWdfd3JhcCB7XHJcblx0XHQudGFjO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0aW1nIHtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdG91dGxpbmU6bm9uZTtcclxuXHRcdH1cclxuXHJcblx0XHQmICsgLnByb2ZpbGVfc29jaWFsX2ljb25ze1xyXG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdHRvcDogMDtcclxuXHRcdFx0bGVmdDogMDtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdGhlaWdodDogMTAwJTtcclxuXHRcdFx0b3BhY2l0eTogMDtcclxuXHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAuM3MgZWFzZTtcclxuXHRcdFx0XHJcblx0XHRcdC5wcm9maWxlX3NvY2lhbF9pY29uc19saXN0e1xyXG5cdFx0XHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuXHRcdFx0XHR0b3A6IDUwJTtcclxuXHRcdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0XHRtYXJnaW4tdG9wOiAtMC41ZW07XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5jbXNtYXN0ZXJzX3Byb2ZpbGVfY29udF9pbmZve1xyXG5cdFx0Ly9wYWRkaW5nLWJvdHRvbTogMTVweDtcclxuXHR9XHJcblxyXG5cdC5wcm9maWxlX2lubmVyIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0cGFkZGluZzogMTZweCAzMHB4IDE0cHg7XHJcblx0XHQub3ZoO1xyXG5cdFx0LnRhYztcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvZmlsZV9oZWFkZXIge1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19wcm9maWxlX3RpdGxlIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Byb2ZpbGVfc3VidGl0bGUge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5jbXNtYXN0ZXJzX3Byb2ZpbGVfc3VidGl0bGV7XHJcblx0XHQmICsgLmNtc21hc3RlcnNfcHJvZmlsZV9jYXRlZ29yeXtcclxuXHRcdFx0Jjo6YmVmb3Jle1xyXG5cdFx0XHRcdGNvbnRlbnQ6IFwiIC0gXCI7XHJcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdG1hcmdpbjogMCAzcHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0LmNtc21hc3RlcnNfcHJvZmlsZV9jb250X2luZm97XHJcblx0XHRwYWRkaW5nLXRvcDogM3B4O1xyXG5cdFx0LnRhYztcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvZmlsZV9jb250ZW50IHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0cGFkZGluZy10b3A6IDZweDtcclxuXHRcdC50YWM7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHRwIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LnByb2ZpbGVfc29jaWFsX2ljb25zIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LnByb2ZpbGVfc29jaWFsX2ljb25zX2xpc3Qge1xyXG5cdFx0bGlzdC1zdHlsZTpub25lO1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdFx0LnRhYztcclxuXHRcdFxyXG5cdFx0bGkge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0XHRtYXJnaW46MCAxNXB4IDAgMDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRkaXNwbGF5Om5vbmU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0YSB7XHJcblx0XHRcdGZvbnQtc2l6ZToyMHB4O1xyXG5cdFx0XHRsaW5lLWhlaWdodDoyMHB4O1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogUHJvZmlsZXMgVmVydGljYWwgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19wcm9maWxlX3ZlcnRpY2FsIHtcclxuXHRtYXJnaW46MCAwIDMwcHg7XHJcblx0cGFkZGluZzowIDAlIDAgMDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcclxuXHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0fVxyXG5cclxuXHQucHJvZmlsZV9vdXRlciB7XHJcblx0XHRwYWRkaW5nOjBweCAwcHg7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2ltZ193cmFwIHtcclxuXHRcdHdpZHRoOiAzMCU7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdGZsb2F0OiBsZWZ0O1xyXG5cclxuXHRcdGltZyB7XHJcblx0XHRcdG91dGxpbmU6bm9uZTtcclxuXHRcdFx0d2lkdGg6IGF1dG87XHJcblx0XHRcdGhlaWdodDogYXV0bztcclxuXHRcdFx0bWF4LXdpZHRoOiBub25lO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQucHJvZmlsZV9pbm5lciB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdHBhZGRpbmc6IDM1cHggNDVweCA4NXB4O1xyXG5cdFx0ZmxvYXQ6IGxlZnQ7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2ltZ193cmFwICsgLnByb2ZpbGVfaW5uZXIge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG5cdFx0d2lkdGg6NzAlO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wcm9maWxlX2hlYWRlciB7XHJcblx0XHRwYWRkaW5nOjAgMCAwcHg7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Byb2ZpbGVfdGl0bGUge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvZmlsZV9jb250X2luZm97XHJcblx0XHRwYWRkaW5nOjAgMCAzMHB4O1xyXG5cdH1cclxuXHJcblx0LmNtc21hc3RlcnNfcHJvZmlsZV9zdWJ0aXRsZSB7XHJcblx0XHRtYXJnaW46MDtcclxuXHJcblx0XHQmICsgLmNtc21hc3RlcnNfcHJvZmlsZV9jYXRlZ29yeXtcclxuXHRcdFx0Jjo6YmVmb3Jle1xyXG5cdFx0XHRcdGNvbnRlbnQ6IFwiIC0gXCI7XHJcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdG1hcmdpbjogMCAzcHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvZmlsZV9jb250ZW50IHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0cCB7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9maWxlX3NvY2lhbF9pY29ucyB7XHJcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdGJvdHRvbTogMzVweDtcclxuXHRcdGxlZnQ6IGF1dG87XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9maWxlX3NvY2lhbF9pY29uc19saXN0IHtcclxuXHRcdGxpc3Qtc3R5bGU6bm9uZTtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdFxyXG5cdFx0bGkge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0bWFyZ2luOjAgMTVweCAwIDA7XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRkaXNwbGF5Om5vbmU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0YSB7XHJcblx0XHRcdGZvbnQtc2l6ZToyMHB4O1xyXG5cdFx0XHRsaW5lLWhlaWdodDoyMHB4O1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRtYXJnaW46IDA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBQcm9maWxlcyBPcGVuIFByb2ZpbGUgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19vcGVuX3Byb2ZpbGUge1xyXG5cdHBhZGRpbmc6MCAwIDBweDtcclxuXHRtYXJnaW46IDBweCAtQG9wZW5lZC1hcnRpY2xlLXBhZC1zaWRlO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblxyXG5cdCYgfiAqe1xyXG5cdFx0bWFyZ2luOiAwcHggLUBvcGVuZWQtYXJ0aWNsZS1wYWQtc2lkZTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvZmlsZV9saWtlcywgXHJcblx0LmNtc21hc3RlcnNfcHJvZmlsZV9jb21tZW50cyB7XHJcblx0XHRvdXRsaW5lOm5vbmU7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2ZpbGVfaGVhZGVyIHtcclxuXHRcdHBhZGRpbmc6NDBweCAwIDA7XHJcblx0XHQub3ZoO1xyXG5cdFx0LmNsO1xyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19wcm9maWxlX3RpdGxlIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Byb2ZpbGVfc3VidGl0bGUge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LnByb2ZpbGVfY29udGVudCB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0cGFkZGluZzozMHB4IDAgMDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdCYud2l0aF9zaWRlYmFyIHtcclxuXHRcdFx0d2lkdGg6KEBjb250ZW50X3dpZHRoIC0gNik7XHJcblx0XHRcdC5mbDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvZmlsZV9jb250ZW50IHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LnByb2ZpbGVfc2lkZWJhciB7XHJcblx0XHR3aWR0aDooQHNpZGViYXJfd2lkdGggKyA2KTtcclxuXHRcdHBhZGRpbmc6MzBweCAwIDAgMzBweDtcclxuXHRcdC5mcjtcclxuXHRcdFxyXG5cdFx0PiBkaXYge1xyXG5cdFx0XHRvdXRsaW5lOm5vbmU7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQucHJvZmlsZV9zaWRlYmFyX3dyYXB7XHJcblx0XHRwYWRkaW5nOiAzMHB4IDI1cHg7XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9maWxlX2RldGFpbHMsIFxyXG5cdC5wcm9maWxlX2ZlYXR1cmVzIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LnByb2ZpbGVfZGV0YWlsc190aXRsZSwgXHJcblx0LnByb2ZpbGVfZmVhdHVyZXNfdGl0bGUge1xyXG5cdFx0bWFyZ2luOjAgMCAyM3B4O1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdH1cclxuXHRcclxuXHQucHJvZmlsZV9kZXRhaWxzX2l0ZW0sIFxyXG5cdC5wcm9maWxlX2ZlYXR1cmVzX2l0ZW0ge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTogNXB4O1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogNnB4O1xyXG5cdFx0LmJkYigxcHgpO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LnByb2ZpbGVfZGV0YWlsc19pdGVtX3RpdGxlLCBcclxuXHQucHJvZmlsZV9mZWF0dXJlc19pdGVtX3RpdGxlIHtcclxuXHRcdG1heC13aWR0aDo1MCU7XHJcblx0XHRwYWRkaW5nLXRvcDogMXB4O1xyXG5cdFx0LmZsO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LnByb2ZpbGVfZGV0YWlsc19vbmVfaXRlbSAucHJvZmlsZV9kZXRhaWxzX2l0ZW1fdGl0bGUsIFxyXG5cdC5wcm9maWxlX2ZlYXR1cmVzX29uZV9pdGVtIC5wcm9maWxlX2ZlYXR1cmVzX2l0ZW1fdGl0bGUge1xyXG5cdFx0bWF4LXdpZHRoOjEwMCU7XHJcblx0XHRmbG9hdDpub25lO1xyXG5cdH1cclxuXHRcclxuXHQucHJvZmlsZV9kZXRhaWxzX2l0ZW1fZGVzYywgXHJcblx0LnByb2ZpbGVfZmVhdHVyZXNfaXRlbV9kZXNjIHtcclxuXHRcdHBhZGRpbmc6MCAwIDAgMTBweDtcclxuXHRcdHdvcmQtd3JhcDpicmVhay13b3JkO1xyXG5cdFx0LnRhcjtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9maWxlX2RldGFpbHNfb25lX2l0ZW0gLnByb2ZpbGVfZGV0YWlsc19pdGVtX2Rlc2MsIFxyXG5cdC5wcm9maWxlX2ZlYXR1cmVzX29uZV9pdGVtIC5wcm9maWxlX2ZlYXR1cmVzX2l0ZW1fZGVzYyB7XHJcblx0XHRwYWRkaW5nLWxlZnQ6MDtcclxuXHRcdHBhZGRpbmctcmlnaHQ6MDtcclxuXHR9XHJcblx0XHJcblx0LnByb2ZpbGVfc29jaWFsX2ljb25zIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LnByb2ZpbGVfc29jaWFsX2ljb25zX3RpdGxlIHtcclxuXHRcdG1hcmdpbjowIDAgMjBweDtcclxuXHRcdHBhZGRpbmc6MThweCAwIDA7XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9maWxlX3NvY2lhbF9pY29uc19saXN0IHtcclxuXHRcdGxpc3Qtc3R5bGU6bm9uZTtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdFxyXG5cdFx0bGkge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0XHRtYXJnaW46MCAxNXB4IDAgMDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRkaXNwbGF5Om5vbmU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0YSB7XHJcblx0XHRcdGZvbnQtc2l6ZToxNXB4O1xyXG5cdFx0XHRsaW5lLWhlaWdodDoxNXB4O1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRtYXJnaW46IDA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG5cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuLyogU2hvcnRjb2RlcyBTdHlsZXNcclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBEaXZpZGVyICoqKioqKioqKioqKioqKioqKi9cclxuaHIge1xyXG5cdGJvcmRlcjowO1xyXG5cdGJvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7XHJcblx0bWFyZ2luOihAbGluZV9oZWlnaHRfcGFkICogMikgMDtcclxufVxyXG5cclxuaHIsIFxyXG4uY21zbWFzdGVyc193aWRnZXRfZGl2aWRlcixcclxuLmNtc21hc3RlcnNfZGl2aWRlciB7XHJcblx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtcclxuXHRib3JkZXItYm90dG9tLXdpZHRoOjFweDtcclxuXHR3aWR0aDoxMDAlO1xyXG5cdGhlaWdodDoxcHg7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0LmNsO1xyXG59XHJcblxyXG4uY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciB7XHJcblx0bWFyZ2luOjAgQGNvbF9tYXIgKEBsaW5lX2hlaWdodF9wYWQgKiAyKTtcclxuXHR3aWR0aDpyb3VuZCgxMDAlIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG59XHJcblxyXG4uY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciB7XHJcblx0Ji5zb2xpZCB7XHJcblx0XHRib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO1xyXG5cdH1cclxuXHRcclxuXHQmLmRhc2hlZCB7XHJcblx0XHRib3JkZXItYm90dG9tLXN0eWxlOmRhc2hlZDtcclxuXHR9XHJcblx0XHJcblx0Ji5kb3R0ZWQge1xyXG5cdFx0Ym9yZGVyLWJvdHRvbS1zdHlsZTpkb3R0ZWQ7XHJcblx0fVxyXG5cdFxyXG5cdCYudHJhbnNwYXJlbnQge1xyXG5cdFx0Ym9yZGVyLWJvdHRvbS13aWR0aDowO1xyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfZGl2aWRlciB7XHJcblx0Ji5jbXNtYXN0ZXJzX2RpdmlkZXJfd2lkdGhfc2hvcnQge1xyXG5cdFx0d2lkdGg6OCU7XHJcblxyXG5cdFx0Ji5jbXNtYXN0ZXJzX2RpdmlkZXJfcG9zX2NlbnRlciB7XHJcblx0XHRcdGxlZnQ6NDAlO1xyXG5cdFx0fVxyXG5cclxuXHRcdCYuY21zbWFzdGVyc19kaXZpZGVyX3Bvc19yaWdodCB7XHJcblx0XHRcdGxlZnQ6ODAlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfZGl2aWRlcl93aWR0aF9tZWRpdW0ge1xyXG5cdFx0d2lkdGg6MzAlO1xyXG5cdFx0XHJcblx0XHQmLmNtc21hc3RlcnNfZGl2aWRlcl9wb3NfY2VudGVyIHtcclxuXHRcdFx0bGVmdDozMCU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuY21zbWFzdGVyc19kaXZpZGVyX3Bvc19yaWdodCB7XHJcblx0XHRcdGxlZnQ6NjAlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfZGl2aWRlcl93aWR0aF9sb25nIHtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFNwZWNpYWwgSGVhZGluZyAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX2hlYWRpbmdfd3JhcCB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaGVhZGluZ19kaXZpZGVyIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0aGVpZ2h0OjJweDtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0dG9wOjUwJTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaGVhZGluZ19kaXZpZGVyX2xlZnRfd3JhcCwgXHJcblx0LmNtc21hc3RlcnNfaGVhZGluZ19kaXZpZGVyX3JpZ2h0X3dyYXAge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHR3aWR0aDowO1xyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfaGVhZGluZ19kaXZpZGVyX3Nob3J0IHtcclxuXHRcdC5jbXNtYXN0ZXJzX2hlYWRpbmdfZGl2aWRlciB7XHJcblx0XHRcdHdpZHRoOjEwJTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfaGVhZGluZ19kaXZpZGVyX2xlZnQge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDotMTAlO1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2hlYWRpbmdfZGl2aWRlcl9tZWRpdW0ge1xyXG5cdFx0LmNtc21hc3RlcnNfaGVhZGluZ19kaXZpZGVyIHtcclxuXHRcdFx0d2lkdGg6MjAlO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19oZWFkaW5nX2RpdmlkZXJfbGVmdCB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0Oi0yMCU7XHJcblx0XHRcdG1hcmdpbi1yaWdodDowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfaGVhZGluZ19kaXZpZGVyX2xvbmcge1xyXG5cdFx0LmNtc21hc3RlcnNfaGVhZGluZ19kaXZpZGVyIHtcclxuXHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfaGVhZGluZ19kaXZpZGVyX2xlZnQge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDotMTAwJTtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19oZWFkaW5nX2RpdmlkZXJfc2hvcnQsIFxyXG5cdCYuY21zbWFzdGVyc19oZWFkaW5nX2RpdmlkZXJfbWVkaXVtLCBcclxuXHQmLmNtc21hc3RlcnNfaGVhZGluZ19kaXZpZGVyX2xvbmcge1xyXG5cdFx0LmNtc21hc3RlcnNfaGVhZGluZyB7XHJcblx0XHRcdG1heC13aWR0aDo4MCU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2hlYWRpbmcge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUsIFxyXG5cdFx0YTpiZWZvcmUge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDowO1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6MC41ZW07XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIEZlYXR1cmVkIEJsb2NrICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfZmVhdHVyZWRfYmxvY2sge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblxyXG5cdC5mZWF0dXJlZF9ibG9ja19saW5rIHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdGxlZnQ6MDtcclxuXHRcdHRvcDowO1xyXG5cdFx0ei1pbmRleDoxO1xyXG5cdH1cclxuXHJcblx0LmZlYXR1cmVkX2Jsb2NrX2lubmVyIHtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHRwYWRkaW5nOjIwcHggMjBweCAwO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBUYWJsZSAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX3dyYXBfdGFibGUge1xyXG5cdG92ZXJmbG93OmF1dG87XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3RhYmxlIHtcclxuXHR3aWR0aDoxMDAlO1xyXG5cdFxyXG5cdGNhcHRpb24ge1xyXG5cdFx0b3V0bGluZTpub25lO1xyXG5cdH1cclxuXHRcclxuXHR0ciB7XHJcblx0XHR0ZCwgXHJcblx0XHR0aCB7XHJcblx0XHRcdHBhZGRpbmc6MTVweCAzMHB4O1xyXG5cdFx0XHQuYmQ7XHJcblx0XHRcdFxyXG5cdFx0XHQmLmNtc21hc3RlcnNfdGFibGVfY2VsbF9hbGlnbmNlbnRlciB7XHJcblx0XHRcdFx0dGV4dC1hbGlnbjpjZW50ZXI7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYuY21zbWFzdGVyc190YWJsZV9jZWxsX2FsaWdubGVmdCB7XHJcblx0XHRcdFx0dGV4dC1hbGlnbjpsZWZ0O1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLmNtc21hc3RlcnNfdGFibGVfY2VsbF9hbGlnbnJpZ2h0IHtcclxuXHRcdFx0XHR0ZXh0LWFsaWduOnJpZ2h0O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIE5vdGljZSAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX25vdGljZSB7XHJcblx0ZGlzcGxheTpibG9jaztcclxuXHR3aWR0aDoxMDAlO1xyXG5cdHBhZGRpbmc6MCAyMHB4O1xyXG5cdG1hcmdpbi1ib3R0b206QGxpbmVfaGVpZ2h0X3BhZDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQuYmQ7XHJcblx0XHJcblx0JjphZnRlciB7XHJcblx0XHQuY2xfYWZ0ZXI7XHJcblx0fVxyXG5cdFxyXG5cdCZbY2xhc3MqPVwiIGNtc21hc3RlcnMtaWNvbi1cIl0sIFxyXG5cdCZbY2xhc3MqPVwiIGNtc21hc3RlcnNfdGhlbWVfaWNvbl9cIl0ge1xyXG5cdFx0cGFkZGluZy1sZWZ0OjgwcHg7XHJcblx0fVxyXG5cclxuXHQmOmJlZm9yZSB7XHJcblx0XHRmb250LXNpemU6MzJweDtcclxuXHRcdC5wb3NfYWJzKDFlbSwgMWVtLCAyMHB4LCBhdXRvKTtcclxuXHR9XHJcblx0XHJcblx0Lm5vdGljZV9jb250ZW50IHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0cGFkZGluZzpAbGluZV9oZWlnaHRfcGFkIDAgMDtcclxuXHR9XHJcblx0XHJcblx0Lm5vdGljZV9jbG9zZSB7XHJcblx0XHRmb250LXNpemU6OHB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6N3B4O1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdC5wb3NfYWJzKDE4cHgsIDE4cHgsIGF1dG8sIC0xMHB4LCAtMTBweCwgYXV0byk7XHJcblx0XHQuYmQ7XHJcblx0XHQuYmRycyg1MCUpO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdC5wb3NfYWJzO1xyXG5cdFx0XHR0ZXh0LWluZGVudDogMC41cHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19ub3RpY2Vfc3VjY2VzcyB7XHJcblx0XHRjb2xvcjojZmZmZmZmO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjojZmRmZmY5O1xyXG5cdFx0Ym9yZGVyLWNvbG9yOiAjZDBlNGE4O1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGNvbG9yOiAjOGJjMzRhO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfbm90aWNlX2Vycm9yIHtcclxuXHRcdGNvbG9yOiNmZmZmZmY7XHJcblx0XHRib3JkZXItY29sb3I6ICNmN2QxZDE7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiNmZmZkZmQ7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX2dvb2dsZV9tYXAgJntcclxuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHR3aWR0aDogYXV0bztcclxuXHRcdFx0bWFyZ2luLXRvcDogMjAwcHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Y29sb3I6I2VhNTE1MTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX25vdGljZV9pbmZvIHtcclxuXHRcdGNvbG9yOiNmZmZmZmY7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiNmYWZjZmY7XHJcblx0XHRib3JkZXItY29sb3I6ICNkNWRkZTk7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Y29sb3I6IzZlOTVkMTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX25vdGljZV93YXJuaW5nIHtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6ICNmZmZkZjk7XHJcblx0XHRib3JkZXItY29sb3I6I2YxY2ViNztcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRjb2xvcjogI2ZkYjU0MztcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX25vdGljZV9kb3dubG9hZCB7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZjlmZmZhO1xyXG5cdFx0Ym9yZGVyLWNvbG9yOiNjOWUwY2Q7XHJcblxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRjb2xvcjojNjNiNjk4O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBJY29uICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfaWNvbl93cmFwIHtcclxuXHRhIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zaW1wbGVfaWNvbl90aXRsZSB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jazsgXHJcblx0XHRtYXJnaW4tbGVmdDo4cHg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NpbXBsZV9pY29uIHtcclxuXHRcdGJvcmRlci1zdHlsZTpzb2xpZDtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBJY29uIExpc3QgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbXMge1xyXG5cdGxpc3Qtc3R5bGU6bm9uZTtcclxuXHRwYWRkaW5nOjA7XHJcblx0bWFyZ2luOjA7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHJcblx0bGl7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAwcHg7XHJcblx0fVxyXG5cclxuXHRsaTpiZWZvcmUge1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtIHtcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0dG9wOiAwO1xyXG5cdFx0XHRsZWZ0OjUwcHg7XHJcblx0XHRcdHJpZ2h0OmF1dG87XHJcblx0XHRcdHdpZHRoOiAxLjVlbTtcclxuXHRcdFx0aGVpZ2h0OiAxLjVlbTtcclxuXHRcdFx0bGluZS1oZWlnaHQ6IDEuNWVtO1xyXG5cdFx0XHRtYXJnaW46IDA7XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pY29uIHtcclxuXHRcdFx0d2lkdGg6MTAwcHg7XHJcblx0XHRcdGhlaWdodDoxMDBweDtcclxuXHRcdFx0bWFyZ2luOjFweDtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0Zm9udC1zaXplOjMycHg7XHJcblx0XHRcdFx0bGluZS1oZWlnaHQ6ODBweDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0XHRib3JkZXItd2lkdGg6MTBweDtcclxuXHRcdFx0XHRib3JkZXItc3R5bGU6c29saWQ7XHJcblx0XHRcdFx0d2lkdGg6MTAycHg7XHJcblx0XHRcdFx0aGVpZ2h0OjEwMnB4O1xyXG5cdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdHRvcDotMXB4O1xyXG5cdFx0XHRcdGxlZnQ6LTFweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbV90aXRsZSB7XHJcblx0XHRcdHdvcmQtd3JhcDpicmVhay13b3JkO1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOjEwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19jb2xvcl90eXBlX2ljb24ge1xyXG5cdFx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW0ge1xyXG5cdFx0XHQub3ZoO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfaWNvbl9saXN0X3Bvc19yaWdodCB7XHJcblx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbSB7XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdFx0cmlnaHQ6NTBweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfaWNvbl9saXN0X3R5cGVfbGlzdCB7XHJcblx0XHRwYWRkaW5nLWxlZnQ6MzBweDtcclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW0ge1xyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0bGVmdDotMzJweDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0PiAqIHtcclxuXHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2ljb25fbGlzdF90eXBlX2Jsb2NrIHtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbSB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdHBhZGRpbmc6MCAwIDUwcHg7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHQub3ZoO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHR3aWR0aDoxcHg7XHJcblx0XHRcdFx0aGVpZ2h0OjA7XHJcblx0XHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdHRvcDo0MHB4O1xyXG5cdFx0XHRcdHotaW5kZXg6MTtcclxuXHRcdFx0XHQub3AoMCk7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdC5jbF9hZnRlcjtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xyXG5cdFx0XHRcdG1hcmdpbi1ib3R0b206MDtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHQuZG47XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLmNtc21hc3RlcnNfaWNvbl90eXBlX2ltYWdlIHtcclxuXHRcdFx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaWNvbiB7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6Y292ZXI7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaWNvbiB7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHR0ZXh0LWFsaWduOmNlbnRlcjtcclxuXHRcdFx0XHR6LWluZGV4OjI7XHJcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLjUpO1xyXG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKC41KTtcclxuXHRcdFx0XHR0cmFuc2Zvcm06c2NhbGUoLjUpO1xyXG5cdFx0XHRcdC5vcCguMyk7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYuc2hvcnRjb2RlX2FuaW1hdGVkIHtcclxuXHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2ljb24ge1xyXG5cdFx0XHRcdFx0Lm9wKDEpO1xyXG5cdFx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHRcdHRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW1fY29udGVudCB7XHJcblx0XHRcdC5vdmg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuY21zbWFzdGVyc19pY29uX2xpc3RfcG9zX2xlZnQge1xyXG5cdFx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbV9jb250ZW50IHtcclxuXHRcdFx0XHQudGFsO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtX3RleHQge1xyXG5cdFx0XHRcdFx0LnRhbDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pY29uX3dyYXAge1xyXG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6MzBweDtcclxuXHRcdFx0XHQuZmw7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5jbXNtYXN0ZXJzX2ljb25fbGlzdF9wb3NfcmlnaHQge1xyXG5cdFx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbV9jb250ZW50IHtcclxuXHRcdFx0XHQudGFyO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtX3RleHQge1xyXG5cdFx0XHRcdFx0LnRhcjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pY29uX3dyYXAge1xyXG5cdFx0XHRcdHBhZGRpbmctbGVmdDozMHB4O1xyXG5cdFx0XHRcdC5mcjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBJY29uIEJveCAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX2ljb25fYm94IHtcclxuXHRib3JkZXItc3R5bGU6c29saWQ7XHJcblx0Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdCY6YmVmb3JlLCBcclxuXHQuaWNvbl9ib3hfaGVhZGluZzpiZWZvcmUge1xyXG5cdFx0Ym9yZGVyLXN0eWxlOnNvbGlkO1xyXG5cdFx0dGV4dC1hbGlnbjpjZW50ZXI7XHJcblx0fSBcclxuXHJcblx0Lmljb25fYm94X2lubmVyIHtcclxuXHRcdC5kaXNwbGF5X2ZsZXg7XHJcblx0XHRqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuXHRcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcblx0fVxyXG5cclxuXHQuaGVhZGluZ3tcclxuXHRcdG1hcmdpbjogMDtcclxuXHR9XHJcblxyXG5cdC5pY29uX2JveF9oZWFkaW5nOmJlZm9yZSB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHR0b3A6IDA7XHJcblx0XHRsZWZ0OiAwO1xyXG5cdH1cclxuXHRcclxuXHQmLmJveF9pY29uX3R5cGVfaW1hZ2UsIFxyXG5cdCYuYm94X2ljb25fdHlwZV9udW1iZXIge1xyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7XHJcblx0XHRcdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcclxuXHRcdFx0YmFja2dyb3VuZC1zaXplOmNvdmVyO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLmNtc21hc3RlcnNfaWNvbl9oZWFkaW5nX2xlZnQge1xyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuaWNvbl9ib3hfaGVhZGluZyB7XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0Y29udGVudDonXFwwMGEwJztcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQtc2l6ZTpjb3ZlcjtcclxuXHRcdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdFx0LnRhYztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2ljb25fdG9wIHtcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Zm9udC1zaXplOjA7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OjUwJTtcclxuXHRcdFx0dG9wOjMwcHg7XHJcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDApO1xyXG5cdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgwKTtcclxuXHRcdFx0dHJhbnNmb3JtOnNjYWxlKDApO1xyXG5cdFx0XHQub3AoMCk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuc2hvcnRjb2RlX2FuaW1hdGVkIHtcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdHRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Lmljb25fYm94X2lubmVyIHtcclxuXHRcdFx0LnRhYztcclxuXHRcdFx0XHJcblx0XHRcdC5pY29uX2JveF90ZXh0IHtcclxuXHRcdFx0XHQudGFjO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19pY29uX2JveF90b3Age1xyXG5cdFx0Ym9yZGVyLXdpZHRoOjFweDtcclxuXHRcdHBhZGRpbmc6MjBweCAyMHB4IDMwcHg7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Zm9udC1zaXplOjA7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OjUwJTtcclxuXHRcdFx0dG9wOjM1cHg7XHJcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDApO1xyXG5cdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgwKTtcclxuXHRcdFx0dHJhbnNmb3JtOnNjYWxlKDApO1xyXG5cdFx0XHQub3AoMCk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCZbY2xhc3MqPVwiIGNtc21hc3RlcnMtaWNvbi1cIl0sIFxyXG5cdFx0JltjbGFzcyo9XCIgY21zbWFzdGVyc190aGVtZV9pY29uX1wiXSB7XHJcblx0XHRcdHBhZGRpbmctdG9wOjEyMHB4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLnNob3J0Y29kZV9hbmltYXRlZCB7XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHR0cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0Lm9wKDEpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5pY29uX2JveF9pbm5lciB7XHJcblx0XHRcdC50YWM7XHJcblx0XHRcdFxyXG5cdFx0XHQuaWNvbl9ib3hfdGV4dCB7XHJcblx0XHRcdFx0LnRhYztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfaWNvbl9ib3hfbGVmdCB7XHJcblx0XHRib3JkZXItd2lkdGg6MXB4O1xyXG5cdFx0cGFkZGluZzoyMHB4IDIwcHggMzBweDtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRmb250LXNpemU6MjRweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6NDVweDtcclxuXHRcdFx0d2lkdGg6NDVweDtcclxuXHRcdFx0aGVpZ2h0OjQ1cHg7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0bGVmdDowO1xyXG5cdFx0XHR0b3A6NTAlO1xyXG5cdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwKTtcclxuXHRcdFx0LW1vei10cmFuc2Zvcm06c2NhbGUoMCk7XHJcblx0XHRcdHRyYW5zZm9ybTpzY2FsZSgwKTtcclxuXHRcdFx0LnRhYztcclxuXHRcdFx0Lm9wKDApO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLnNob3J0Y29kZV9hbmltYXRlZCB7XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHR0cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0Lm9wKDEpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19pY29uX2JveF9sZWZ0X3RvcCB7XHJcblx0XHRwYWRkaW5nLWxlZnQ6NjBweDtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRmb250LXNpemU6MjRweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6NDVweDtcclxuXHRcdFx0d2lkdGg6NDVweDtcclxuXHRcdFx0aGVpZ2h0OjQ1cHg7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0bGVmdDowO1xyXG5cdFx0XHR0b3A6MDtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMCk7XHJcblx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDApO1xyXG5cdFx0XHR0cmFuc2Zvcm06c2NhbGUoMCk7XHJcblx0XHRcdC50YWM7XHJcblx0XHRcdC5vcCgwKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5zaG9ydGNvZGVfYW5pbWF0ZWQge1xyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0dHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfaWNvbl9oZWFkaW5nX2xlZnQge1xyXG5cdFx0aDEsIFxyXG5cdFx0aDIsIFxyXG5cdFx0aDMsIFxyXG5cdFx0aDQsIFxyXG5cdFx0aDUsIFxyXG5cdFx0aDYge1xyXG5cdFx0XHRkaXNwbGF5OmZsZXg7XHJcblx0XHRcdGFsaWduLWl0ZW1zOmNlbnRlcjtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6MTVweDtcclxuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjppbmhlcml0O1xyXG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDApO1xyXG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDApO1xyXG5cdFx0XHRcdHRyYW5zZm9ybTpzY2FsZSgwKTtcclxuXHRcdFx0XHQub3AoMCk7IFxyXG5cdFx0XHRcdC5wb3NfYWJzKGF1dG8sYXV0bywwLGF1dG8sMCwwKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLnNob3J0Y29kZV9hbmltYXRlZCB7XHJcblx0XHRcdGgxLCBcclxuXHRcdFx0aDIsIFxyXG5cdFx0XHRoMywgXHJcblx0XHRcdGg0LCBcclxuXHRcdFx0aDUsIFxyXG5cdFx0XHRoNiB7XHJcblx0XHRcdFx0ZGlzcGxheTpmbGV4O1xyXG5cdFx0XHRcdGFsaWduLWl0ZW1zOmNlbnRlcjtcclxuXHRcdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHRwYWRkaW5nLXRvcDogMC4xMmVtO1xyXG5cdFx0XHRcclxuXHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdFx0dHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdFx0Lm9wKDEpO1xyXG5cdFx0XHRcdFx0LnBvc19hYnMoYXV0byxhdXRvLDAsYXV0bywwLDApO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuaWNvbl9ib3hfdGV4dCB7XHJcblx0XHRwe1xyXG5cdFx0XHQmOmxhc3QtY2hpbGR7XHJcblx0XHRcdFx0cGFkZGluZy1ib3R0b206IDA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogVG9nZ2xlcyAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX3RvZ2dsZXMge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3RvZ2dsZXNfZmlsdGVyIHtcclxuXHRcdHBhZGRpbmc6MCAwIDE1cHg7XHJcblx0XHRmb250LXNpemU6IDA7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFxyXG5cdFx0YSB7XHJcblx0XHRcdGN1cnNvcjpwb2ludGVyO1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDMwcHg7XHJcblxyXG5cdFx0XHQmOmxhc3QtY2hpbGR7XHJcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLmN1cnJlbnRfZmlsdGVyIHtcclxuXHRcdFx0XHRjdXJzb3I6ZGVmYXVsdDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc190b2dnbGVfd3JhcCB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHJcblx0XHQmLmN1cnJlbnRfdG9nZ2xle1xyXG5cdFx0XHQuY21zbWFzdGVyc190b2dnbGVfcGx1c192ZXJ0OjpiZWZvcmV7XHJcblx0XHRcdFx0dHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc190b2dnbGVfdGl0bGUge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcclxuXHRcdGEge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0ei1pbmRleDoyO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc190b2dnbGVfcGx1cyB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0ei1pbmRleDoxO1xyXG5cdFx0LnBvc19hYnMoYXV0bywgMjVweCk7XHJcblx0XHRcclxuXHRcdHNwYW4ge1xyXG5cdFx0XHRcclxuXHRcdFx0Ji5jbXNtYXN0ZXJzX3RvZ2dsZV9wbHVzX3ZlcnQge1xyXG5cclxuXHRcdFx0XHQmOjpiZWZvcmV7XHJcblx0XHRcdFx0XHRjb250ZW50OiAnXFxlOGE0JztcclxuXHRcdFx0XHRcdGZvbnQtZmFtaWx5OiAnZm9udGVsbG8tY3VzdG9tJztcclxuXHRcdFx0XHRcdGZvbnQtc2l6ZTogNnB4O1xyXG5cdFx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdFx0LnRyYW5zKH4ndHJhbnNmb3JtIC4zcyBlYXNlLCBjb2xvciAuM3MgZWFzZScpO1xyXG5cclxuXHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3RvZ2dsZSB7XHJcblx0XHRwYWRkaW5nOiAyNXB4IDAgMDtcclxuXHRcdC5kbjtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfdG9nZ2xlX2lubmVyIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0PiAqOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOjA7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOjA7XHJcblx0XHR9XHJcblxyXG5cdFx0PiB1bHtcclxuXHRcdFx0bGl7XHJcblx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHRcdHBhZGRpbmc6IDAgMCBAbGluZV9oZWlnaHRfcGFkO1xyXG5cclxuXHRcdFx0XHQmOjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0Y29udGVudDogXCJcIjtcclxuXHRcdFx0XHRcdHBvc2l0aW9uOiBzdGF0aWM7XHJcblx0XHRcdFx0XHR3aWR0aDogNXB4O1xyXG5cdFx0XHRcdFx0aGVpZ2h0OiA1cHg7XHJcblx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG5cdFx0XHRcdFx0bWFyZ2luOjAgMTBweCAwIDA7XHJcblx0XHRcdFx0XHRsaW5lLWhlaWdodDogMTtcclxuXHRcdFx0XHRcdC5iZHJzKDUwJSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3RvZ2dsZV93cmFwLmN1cnJlbnRfdG9nZ2xlIHtcclxuXHRcdD4gLmNtc21hc3RlcnNfdG9nZ2xlIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji50b2dnbGVzX21vZGVfdG9nZ2xlIHtcclxuXHRcdC5jbXNtYXN0ZXJzX3RvZ2dsZV93cmFwIHtcclxuXHRcdFx0bWFyZ2luOjAgMCAxcHg7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3RvZ2dsZV90aXRsZSBhIHtcclxuXHRcdFx0cGFkZGluZzoxNXB4IDYwcHggMTVweCAyMHB4O1xyXG5cdFx0XHQuYmQ7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3RvZ2dsZV9wbHVzIHtcclxuXHRcdFx0bGVmdDphdXRvO1xyXG5cdFx0XHRyaWdodDoxNXB4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc190b2dnbGVfaW5uZXIge1xyXG5cdFx0XHRwYWRkaW5nOjVweCAyMHB4IDM1cHg7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmLnRvZ2dsZXNfbW9kZV9hY2NvcmRpb24ge1xyXG5cdFx0LmNtc21hc3RlcnNfdG9nZ2xlX3dyYXAge1xyXG5cdFx0XHRvdXRsaW5lOm5vbmU7XHJcblx0XHR9XHJcblxyXG5cdFx0LmNtc21hc3RlcnNfdG9nZ2xlX3RpdGxlIGEge1xyXG5cdFx0XHRwYWRkaW5nOjIwcHggNjBweCAyMHB4IDA7XHJcblx0XHRcdC5iZGI7XHJcblx0XHR9XHJcblxyXG5cdFx0LmNtc21hc3RlcnNfdG9nZ2xlX3BsdXMge1xyXG5cdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdHJpZ2h0OjA7XHJcblx0XHR9XHJcblxyXG5cdFx0LmNtc21hc3RlcnNfdG9nZ2xlX2lubmVyIHtcclxuXHRcdFx0cGFkZGluZzowIDAgMzVweDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogVGFicyAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX3RhYnMge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdC5wcm9kdWN0ICZ7XHJcblx0XHQuY21zbWFzdGVyc190YWJzX2xpc3R7XHJcblx0XHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuXHRcdFx0ei1pbmRleDogNTtcclxuXHRcdFx0bWFyZ2luOiAwO1xyXG5cdFx0XHRhbGlnbi1pdGVtczogZmxleC1lbmQ7XHJcblx0XHRcdC5kaXNwbGF5X2ZsZXg7XHJcblxyXG5cdFx0XHQ+IGxpe1xyXG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHRcdG1heC13aWR0aDogMjUwcHg7XHJcblx0XHRcdFx0dGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxuXHRcdFx0XHRhe1xyXG5cdFx0XHRcdFx0cGFkZGluZzozM3B4IDEwcHggMjVweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCYudGFic19wb3NfbGVmdCxcclxuXHQmLnRhYnNfcG9zX3JpZ2h0e1xyXG5cdFx0LmNtc21hc3RlcnNfdGFic19saXN0e1xyXG5cdFx0XHRsaSB7XHJcblx0XHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQmOmFmdGVyIHtcclxuXHRcdC5jbF9hZnRlcjtcclxuXHR9XHJcblxyXG5cdC5jbXNtYXN0ZXJzX3RhYnNfbGlzdCB7XHJcblx0XHRsaXN0LXN0eWxlOm5vbmU7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdHotaW5kZXg6IDI7XHJcblx0XHQuZGlzcGxheV9mbGV4O1xyXG5cdFx0YWxpZ24taXRlbXM6IGZsZXgtZW5kO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC5jbF9hZnRlcjtcclxuXHRcdH1cclxuXHJcblx0XHQ+IGxpe1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdFx0bWF4LXdpZHRoOiAyNTBweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdH1cclxuXHJcblx0LmNtc21hc3RlcnNfdGFic19saXN0X2l0ZW0ge1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdFx0bWFyZ2luLWxlZnQ6IC0xcHg7XHJcblx0XHRwZXJzcGVjdGl2ZTogMXB4O1xyXG5cdFx0LXdlYmtpdC1wZXJzcGVjdGl2ZTogMXB4O1xyXG5cdFx0LmJkcnMoMTBweCAyNXB4IDBweCAwcHgpO1xyXG5cdFx0Lm92aDtcclxuXHRcdC5iZDtcclxuXHJcblx0XHQudGFic19wb3NfbGVmdCZ7XHJcblx0XHRcdC5iZHJzKDEwcHggMCAwcHggMTBweCk7XHJcblx0XHRcdG1hcmdpbjogMCAwIC0xcHg7XHJcblx0XHR9XHJcblxyXG5cdFx0LnRhYnNfcG9zX3JpZ2h0JntcclxuXHRcdFx0LmJkcnMoMHB4IDEwcHggMTBweCAwcHgpO1xyXG5cdFx0XHRtYXJnaW46IDAgMCAtMXB4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdC5kbjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0YSB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHBhZGRpbmc6MzBweCAyMHB4IDI4cHg7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRjdXJzb3I6cG9pbnRlcjtcclxuXHRcdFx0LnRhYztcclxuXHJcblx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVycy1pY29uLVwiXSwgXHJcblx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVyc190aGVtZV9pY29uX1wiXSB7XHJcblx0XHRcdFx0cGFkZGluZzozMHB4IDQwcHggMjhweCA3MHB4O1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQudGFic19wb3NfbGVmdCZ7XHJcblx0XHRcdFx0JltjbGFzc149XCJjbXNtYXN0ZXJzLWljb24tXCJdLCBcclxuXHRcdFx0XHQmW2NsYXNzXj1cImNtc21hc3RlcnNfdGhlbWVfaWNvbl9cIl0ge1xyXG5cdFx0XHRcdFx0cGFkZGluZzozMHB4IDQwcHggMjhweCA3MHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGZvbnQtc2l6ZToxOHB4O1xyXG5cdFx0XHRcdGxpbmUtaGVpZ2h0OjIwcHg7XHJcblx0XHRcdFx0LnBvc19hYnMoMWVtLCAxZW0sIDQwcHgsIGF1dG8pO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQ+IHNwYW57XHJcblx0XHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdC50YWw7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5jdXJyZW50X3RhYiwgXHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0YSB7XHJcblx0XHRcdFx0b3V0bGluZTpub25lO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3RhYnNfd3JhcCB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdG1hcmdpbi10b3A6IC0xcHg7XHJcblx0XHRwYWRkaW5nOiA1MHB4O1xyXG5cdFx0LmJkO1xyXG5cdFx0LmJkYig2cHgpO1xyXG5cclxuXHRcdC50YWJzX3Bvc19sZWZ0JntcclxuXHRcdFx0bGVmdDogLTFweDtcclxuXHRcdFx0LmJkYigxcHgpO1xyXG5cdFx0XHQuYmRyKDZweCk7XHJcblx0XHR9XHJcblxyXG5cdFx0LnRhYnNfcG9zX3JpZ2h0JntcclxuXHRcdFx0cmlnaHQ6IC0xcHg7XHJcblx0XHRcdC5iZGIoMXB4KTtcclxuXHRcdFx0LmJkbCg2cHgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc190YWIge1xyXG5cdFx0LmRuO1xyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0LmNsX2FmdGVyO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLmFjdGl2ZV90YWIge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc190YWJfaW5uZXIge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQ+ICo6bGFzdC1jaGlsZCB7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206MDtcclxuXHRcdFx0cGFkZGluZy1ib3R0b206MDtcclxuXHRcdH1cclxuXHJcblx0XHRpbWd7XHJcblx0XHRcdHdpZHRoOiBhdXRvO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLnRhYnNfbW9kZV90YWIge1xyXG5cdFx0LmNtc21hc3RlcnNfdGFic19saXN0X2l0ZW0ge1xyXG5cdFx0XHQuYmQ7XHJcblx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0dmVydGljYWwtYWxpZ246IGJvdHRvbTtcclxuXHRcdFx0XHJcblx0XHRcdCY6Zmlyc3QtY2hpbGQge1xyXG5cdFx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3RhYl9pbm5lciB7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYudGFic19tb2RlX3RvdXIge1xyXG5cdFx0ZGlzcGxheTp0YWJsZTtcclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfdGFic19saXN0IHtcclxuXHRcdFx0ZGlzcGxheTp0YWJsZS1jZWxsO1xyXG5cdFx0XHR3aWR0aDoyNSU7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOnRvcDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfdGFic19saXN0X2l0ZW0ge1xyXG5cdFx0XHRcclxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc190YWJzX3dyYXAge1xyXG5cdFx0XHRkaXNwbGF5OnRhYmxlLWNlbGw7XHJcblx0XHRcdHdpZHRoOjc1JTtcclxuXHRcdFx0dmVydGljYWwtYWxpZ246dG9wO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc190YWJfaW5uZXIge1xyXG5cdFx0XHRwYWRkaW5nOjAgMCAwIDBweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji50YWJzX3Bvc19yaWdodCB7XHJcblx0XHRcdGRpcmVjdGlvbjpydGw7XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc190YWJzX2xpc3Qge1xyXG5cdFx0XHRcdHRleHQtYWxpZ246cmlnaHQ7XHJcblx0XHRcdFx0ZGlyZWN0aW9uOmx0cjtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfdGFic19saXN0X2l0ZW0ge1xyXG5cdFx0XHRcdGEge1xyXG5cdFx0XHRcdFx0JltjbGFzc149XCJjbXNtYXN0ZXJzLWljb24tXCJdLCBcclxuXHRcdFx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVyc190aGVtZV9pY29uX1wiXSB7XHJcblx0XHRcdFx0XHRcdHBhZGRpbmc6MzBweCA3MHB4IDI4cHggNDBweDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdFx0XHRcdHJpZ2h0OjQwcHg7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc190YWJzX3dyYXAge1xyXG5cdFx0XHRcdGRpcmVjdGlvbjpsdHI7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX3RhYl9pbm5lciB7XHJcblx0XHRcdFx0cGFkZGluZzowIDMwcHggMCAwO1xyXG5cdFx0XHRcdC50YXI7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogU3RhdHMgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19zdGF0cyB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0LnRhYztcclxuXHRcclxuXHQmOmFmdGVyIHtcclxuXHRcdC5jbF9hZnRlcjtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc3RhdF93cmFwIHtcclxuXHRcdC5jbXNtYXN0ZXJzX3N0YXQge1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfaW5uZXIge1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5zdGF0c19tb2RlX2JhcnMge1xyXG5cdFx0LmNtc21hc3RlcnNfc3RhdF93cmFwIHtcclxuXHRcdFx0LmNtc21hc3RlcnNfc3RhdF9jb250YWluZXIge1xyXG5cdFx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdFx0aGVpZ2h0OjIyMHB4O1xyXG5cdFx0XHRcdG1hcmdpbjowIDAgN3B4O1xyXG5cdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRcdC5vdmg7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX3N0YXQge1xyXG5cdFx0XHRcdHdpZHRoOjA7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfc3RhdF9pbm5lciB7XHJcblx0XHRcdFx0XHQmW2NsYXNzXj1cImNtc21hc3RlcnMtaWNvbi1cIl0sIFxyXG5cdFx0XHRcdFx0JltjbGFzcyo9XCIgY21zbWFzdGVycy1pY29uLVwiXSwgXHJcblx0XHRcdFx0XHQmW2NsYXNzXj1cImNtc21hc3RlcnNfdGhlbWVfaWNvbl9cIl0sIFxyXG5cdFx0XHRcdFx0JltjbGFzcyo9XCIgY21zbWFzdGVyc190aGVtZV9pY29uX1wiXSB7XHJcblx0XHRcdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0XHRmb250LXNpemU6MjNweDtcclxuXHRcdFx0XHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0XHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0XHRcdFx0XHRsZWZ0OjE1cHg7XHJcblx0XHRcdFx0XHRcdFx0dG9wOjEwcHg7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0LmNtc21hc3RlcnNfc3RhdF90aXRsZSB7XHJcblx0XHRcdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdFx0XHRsZWZ0OjE1cHg7XHJcblx0XHRcdFx0XHRcdHRvcDoxMHB4O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X2NvdW50ZXJfd3JhcCB7XHJcblx0XHRcdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdFx0XHRcdHJpZ2h0OjE1cHg7XHJcblx0XHRcdFx0XHRcdHRvcDoxMHB4O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHRjYW52YXMge1xyXG5cdFx0XHRcdFx0LmRuO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLnN0YXRzX3R5cGVfdmVydGljYWwge1xyXG5cdFx0XHRtYXJnaW46MCAtQGNvbF9tYXI7XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19zdGF0X3dyYXAge1xyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXQge1xyXG5cdFx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHRcdGhlaWdodDowO1xyXG5cdFx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0XHRib3R0b206MDtcclxuXHRcdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHRcdC5vdmg7XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfaW5uZXIge1xyXG5cdFx0XHRcdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0XHRcdFx0LnRhYztcclxuXHRcdFx0XHRcdFx0LmJkcnM7XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOjQwcHg7XHJcblx0XHRcdFx0XHRcdFx0bGluZS1oZWlnaHQ6NDBweDtcclxuXHRcdFx0XHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdFx0XHRcdFx0cG9zaXRpb246c3RhdGljO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQmOmFmdGVyIHtcclxuXHRcdFx0XHRcdFx0XHQudmFsaWduX2FmdGVyO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X3RpdGxlX2NvdW50ZXJfd3JhcCB7XHJcblx0XHRcdFx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHRcdFx0XHRwYWRkaW5nOjAgMCAxM3B4O1xyXG5cdFx0XHRcdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHRcdFx0XHRib3R0b206MTAwJTtcclxuXHRcdFx0XHRcdFx0XHQub3ZoO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X3RpdGxlIHtcclxuXHRcdFx0XHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdFx0XHRcdHBhZGRpbmc6MCAxMHB4IDAgMDtcclxuXHRcdFx0XHRcdFx0XHRwb3NpdGlvbjpzdGF0aWM7XHJcblx0XHRcdFx0XHRcdFx0Lm92aDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0LmNtc21hc3RlcnNfc3RhdF9jb3VudGVyX3dyYXAge1xyXG5cdFx0XHRcdFx0XHRcdC5mcjtcclxuXHRcdFx0XHRcdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHRcdFx0XHR0b3A6IDEwcHg7XHJcblx0XHRcdFx0XHRcdFx0cmlnaHQ6IDEwcHg7XHJcblx0XHRcdFx0XHRcdFx0ei1pbmRleDogNTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X3N1YnRpdGxlIHtcclxuXHRcdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuc3RhdHNfdHlwZV9ob3Jpem9udGFsIHtcclxuXHRcdFx0LmNtc21hc3RlcnNfc3RhdF93cmFwIHtcclxuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbToxNXB4O1xyXG5cdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRcdC5vdmg7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOjA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHRcdGhlaWdodDoxMHB4O1xyXG5cdFx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0XHR0b3A6MzJweDtcclxuXHRcdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHRcdC5iZHJzO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0LmNtc21hc3RlcnNfc3RhdCB7XHJcblx0XHRcdFx0XHRtaW4taGVpZ2h0OjQwcHg7XHJcblxyXG5cdFx0XHRcdFx0LmNtc21hc3RlcnNfc3RhdF9pbm5lciB7XHJcblx0XHRcdFx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdFx0XHRcdGhlaWdodDo4cHg7XHJcblx0XHRcdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdFx0XHRib3R0b206MDtcclxuXHRcdFx0XHRcdFx0bGVmdDowO1xyXG5cclxuXHRcdFx0XHRcdFx0Jjo6YWZ0ZXJ7XHJcblx0XHRcdFx0XHRcdFx0Y29udGVudDogXCJcIjtcclxuXHRcdFx0XHRcdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XHJcblx0XHRcdFx0XHRcdFx0d2lkdGg6IEBjb250X3dpZHRoX2xhcmdlO1xyXG5cdFx0XHRcdFx0XHRcdGhlaWdodDogMTAwJTtcclxuXHRcdFx0XHRcdFx0XHRsZWZ0OiAwO1xyXG5cdFx0XHRcdFx0XHRcdHRvcDogMDtcclxuXHRcdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xyXG5cdFx0XHRcdFx0XHRcdG9wYWNpdHk6IDAuMjtcclxuXHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0LmNtc21hc3RlcnNfc3RhdF9jb3VudGVyX3dyYXAge1xyXG5cdFx0XHRcdFx0XHRcdGxlZnQ6YXV0bztcclxuXHRcdFx0XHRcdFx0XHRyaWdodDowO1xyXG5cdFx0XHRcdFx0XHRcdHRvcDphdXRvO1xyXG5cdFx0XHRcdFx0XHRcdGJvdHRvbToxNnB4O1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQmOmJlZm9yZSwgXHJcblx0XHRcdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfdGl0bGUge1xyXG5cdFx0XHRcdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHRcdFx0XHR0b3A6YXV0bztcclxuXHRcdFx0XHRcdFx0XHRib3R0b206MTZweDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0JltjbGFzc149XCJjbXNtYXN0ZXJzLWljb24tXCJdLCBcclxuXHRcdFx0XHRcdFx0JltjbGFzcyo9XCIgY21zbWFzdGVycy1pY29uLVwiXSwgXHJcblx0XHRcdFx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVyc190aGVtZV9pY29uX1wiXSwgXHJcblx0XHRcdFx0XHRcdCZbY2xhc3MqPVwiIGNtc21hc3RlcnNfdGhlbWVfaWNvbl9cIl0ge1xyXG5cdFx0XHRcdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfdGl0bGUge1xyXG5cdFx0XHRcdFx0XHRcdFx0bGVmdDozMHB4O1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X3N1YnRpdGxlIHtcclxuXHRcdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdFx0cGFkZGluZzoyMHB4IDAgNXB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLnN0YXRzX21vZGVfY2lyY2xlcyB7XHJcblx0XHRtYXJnaW4tdG9wOi00MHB4O1xyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19zdGF0X3dyYXAge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0ZmxvYXQ6bm9uZTtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdHBhZGRpbmc6NDBweCAxMHB4IDA7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOnRvcDtcclxuXHRcdFx0LnRhYztcclxuXHRcdFx0XHJcblx0XHRcdCYub25lX2ZpZnRoIHtcclxuXHRcdFx0XHR3aWR0aDoyMCU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYub25lX2ZvdXJ0aCB7XHJcblx0XHRcdFx0d2lkdGg6MjUlO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLm9uZV90aGlyZCB7XHJcblx0XHRcdFx0d2lkdGg6MzMuMyU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYub25lX2hhbGYge1xyXG5cdFx0XHRcdHdpZHRoOjUwJTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ji5vbmVfZmlyc3Qge1xyXG5cdFx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX3N0YXQge1xyXG5cdFx0XHRcdHdpZHRoOiAyMDRweDtcclxuXHRcdFx0XHRoZWlnaHQ6IDIwNHB4O1xyXG5cdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdG1hcmdpbjowIDAgMzBweDtcclxuXHJcblx0XHRcdFx0Jjo6YWZ0ZXJ7XHJcblx0XHRcdFx0XHRjb250ZW50OiBcIlwiO1xyXG5cdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHRcdFx0dG9wOiAwO1xyXG5cdFx0XHRcdFx0bGVmdDogMDtcclxuXHRcdFx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0XHRcdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdFx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRcdFx0XHQuYmQoOHB4KTtcclxuXHRcdFx0XHRcdC5iZHJzKDUwJSk7XHJcblx0XHRcdFx0XHRvcGFjaXR5OiAwLjI7XHJcblx0XHRcdFx0XHR6LWluZGV4OiAwO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X2lubmVyIHtcclxuXHRcdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHRcdFx0XHR0b3A6NTAlO1xyXG5cdFx0XHRcdFx0ei1pbmRleDoyO1xyXG5cdFx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcclxuXHRcdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xyXG5cdFx0XHRcdFx0LnRhYztcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRmb250LXNpemU6NDRweDtcclxuXHRcdFx0XHRcdFx0bGluZS1oZWlnaHQ6NDRweDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0LmNtc21hc3RlcnNfc3RhdF9jb3VudGVyX3dyYXAge1xyXG5cdFx0XHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdFx0XHQudGFjO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHRjYW52YXMge1xyXG5cdFx0XHRcdFx0d2lkdGg6MjA0cHggIWltcG9ydGFudDtcclxuXHRcdFx0XHRcdGhlaWdodDoyMDRweCAhaW1wb3J0YW50O1xyXG5cdFx0XHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdFx0XHR6LWluZGV4OjE7XHJcblx0XHRcdFx0XHRtYXJnaW46IDAgYXV0bztcclxuXHRcdFx0XHRcdC5iZHJzKDUwJSk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQmLnN0YXRfaGFzX3RpdGxlaWNvbiB7XHJcblx0XHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X2lubmVyIHtcclxuXHRcdFx0XHRcdFx0LmNtc21hc3RlcnNfc3RhdF9jb3VudGVyX3dyYXAge1xyXG5cdFx0XHRcdFx0XHRcdHBhZGRpbmc6MHB4IDAgMjVweDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfc3RhdF90aXRsZSB7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdFx0LnRhYztcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfc3RhdF9zdWJ0aXRsZSB7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHRwYWRkaW5nOjE1cHggMCAwO1xyXG5cdFx0XHRcdC50YWM7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogQ291bnRlcnMgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19jb3VudGVycyB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0LnRhYztcclxuXHRcclxuXHQmOmFmdGVyIHtcclxuXHRcdC5jbF9hZnRlcjtcclxuXHR9XHJcblx0XHJcblx0Y2FudmFzIHtcclxuXHRcdC5kbjtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfY291bnRlcl93cmFwIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0cGFkZGluZzowIDJweDtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0ZmxvYXQ6bm9uZTtcclxuXHRcdHZlcnRpY2FsLWFsaWduOnRvcDtcclxuXHRcdC50YWM7XHJcblx0XHRcclxuXHRcdCYub25lX2ZpZnRoIHtcclxuXHRcdFx0d2lkdGg6MjAlO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLm9uZV9mb3VydGgge1xyXG5cdFx0XHR3aWR0aDoyNSU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYub25lX3RoaXJkIHtcclxuXHRcdFx0d2lkdGg6MzMuMyU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYub25lX2hhbGYge1xyXG5cdFx0XHR3aWR0aDo1MCU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYub25lX2ZpcnN0IHtcclxuXHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfY291bnRlciB7XHJcblx0XHRcdG1pbi1oZWlnaHQ6MTAwcHg7XHJcblx0XHRcdHBhZGRpbmc6MCAyMHB4O1xyXG5cdFx0XHRtYXJnaW46MCAwIEBsaW5lX2hlaWdodF9wYWQ7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHQub3ZoO1xyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfY291bnRlcl9pbm5lciB7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHRtYXJnaW46MjBweCAwIDA7XHJcblx0XHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0Ym9yZGVyLXN0eWxlOnNvbGlkO1xyXG5cdFx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0XHRsZWZ0OjA7XHJcblx0XHRcdFx0XHR0b3A6MDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfY291bnRlcl90aXRsZV93cmFwIHtcclxuXHRcdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfdGl0bGUge1xyXG5cdFx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDogMTVweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfY291bnRlcl9jb3VudGVyX3dyYXAge1xyXG5cdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdFx0XHRsZXR0ZXItc3BhY2luZzogLTEuOHB4O1xyXG5cdFx0XHRcdFx0cGFkZGluZy1sZWZ0OiAxNXB4O1xyXG5cdFx0XHRcdFx0cGFkZGluZy10b3A6IDhweDtcclxuXHRcdFx0XHRcdCNwYWdlICZ7XHJcblx0XHRcdFx0XHRcdGxpbmUtaGVpZ2h0OiAxO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQuY291bnRlcnNfdHlwZV9ob3Jpem9udGFsJntcclxuXHRcdFx0XHRcdFx0Jjo6YmVmb3Jle1xyXG5cdFx0XHRcdFx0XHRcdGNvbnRlbnQ6IFwiXCI7XHJcblx0XHRcdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHRcdFx0XHRcdHRvcDogMDtcclxuXHRcdFx0XHRcdFx0XHRib3R0b206IDA7XHJcblx0XHRcdFx0XHRcdFx0bGVmdDogMHB4O1xyXG5cdFx0XHRcdFx0XHRcdG1hcmdpbjogYXV0bztcclxuXHRcdFx0XHRcdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCA1MCUpO1xyXG5cdFx0XHRcdFx0XHRcdGhlaWdodDogMjBweDtcclxuXHRcdFx0XHRcdFx0XHRib3JkZXItbGVmdC13aWR0aDogMnB4O1xyXG5cdFx0XHRcdFx0XHRcdGJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ji5jb3VudGVyX2hhc19pY29uIHtcclxuXHRcdFx0XHQuY21zbWFzdGVyc19jb3VudGVyX2lubmVyIHtcclxuXHRcdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0XHRcdFx0bWFyZ2luLXJpZ2h0OjA7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLmNvdW50ZXJfaGFzX2ltYWdlIHtcclxuXHRcdFx0XHQuY21zbWFzdGVyc19jb3VudGVyX2lubmVyIHtcclxuXHRcdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXIgY2VudGVyO1xyXG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XHJcblx0XHRcdFx0XHRcdGJhY2tncm91bmQtc2l6ZTpjb3ZlcjtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfY291bnRlcl9zdWJ0aXRsZSB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOjIwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY291bnRlcnNfdHlwZV92ZXJ0aWNhbCB7XHJcblx0XHQuY21zbWFzdGVyc19jb3VudGVyX3dyYXAge1xyXG5cdFx0XHQuY21zbWFzdGVyc19jb3VudGVyIHtcclxuXHRcdFx0XHQudGFjO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfaW5uZXIge1xyXG5cdFx0XHRcdFx0LnRhYztcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRsZWZ0OjUwJTtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQuY21zbWFzdGVyc19jb3VudGVyX2NvdW50ZXJ7XHJcblx0XHRcdFx0XHRcdGxldHRlci1zcGFjaW5nOiAtMS44cHg7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfY291bnRlcl93cmFwIHtcclxuXHRcdFx0XHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xyXG5cdFx0XHRcdFx0XHRwYWRkaW5nOjEwcHggMCAwO1xyXG5cdFx0XHRcdFx0XHRsZXR0ZXItc3BhY2luZzogLTEuOHB4O1xyXG5cclxuXHRcdFx0XHRcdFx0Jjo6YmVmb3Jle1xyXG5cdFx0XHRcdFx0XHRcdGNvbnRlbnQ6IFwiXCI7XHJcblx0XHRcdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHRcdFx0XHRcdHRvcDogMDtcclxuXHRcdFx0XHRcdFx0XHRsZWZ0OiAwO1xyXG5cdFx0XHRcdFx0XHRcdHJpZ2h0OiAwO1xyXG5cdFx0XHRcdFx0XHRcdG1hcmdpbjogYXV0bztcclxuXHRcdFx0XHRcdFx0XHR3aWR0aDogMjBweDtcclxuXHRcdFx0XHRcdFx0XHRib3JkZXItdG9wLXdpZHRoOiAycHg7XHJcblx0XHRcdFx0XHRcdFx0Ym9yZGVyLXRvcC1zdHlsZTogc29saWQ7XHJcblx0XHRcdFx0XHRcdFx0Y29sb3I6IGluaGVyaXQ7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0LmNtc21hc3RlcnNfY291bnRlcl90aXRsZSB7XHJcblx0XHRcdFx0XHRcdHBhZGRpbmc6MHB4IDAgMDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfc3VidGl0bGUge1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0LnRhYztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNvdW50ZXJzX3R5cGVfaG9yaXpvbnRhbCB7XHJcblx0XHQuY21zbWFzdGVyc19jb3VudGVyX3dyYXAge1xyXG5cdFx0XHQuY21zbWFzdGVyc19jb3VudGVyIHtcclxuXHRcdFx0XHQuY21zbWFzdGVyc19jb3VudGVyX2lubmVyIHtcclxuXHRcdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0bGVmdDowO1xyXG5cdFx0XHRcdFx0XHRyaWdodDphdXRvO1xyXG5cdFx0XHRcdFx0XHR0b3A6MDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0XHRcdC52YWxpZ25fYWZ0ZXI7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfdGl0bGVfd3JhcCB7XHJcblx0XHRcdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfc3VidGl0bGUge1xyXG5cdFx0XHRcdFx0bWFyZ2luLXRvcDotNXB4O1xyXG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDE1cHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIENNU01BU1RFUlMgQnV0dG9uICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfYnV0dG9uIHtcclxuXHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRwYWRkaW5nOjAgMjdweDtcclxuXHRsZXR0ZXItc3BhY2luZzogLTAuMTVweDtcclxuXHRjdXJzb3I6cG9pbnRlcjtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHR3aGl0ZS1zcGFjZTpub3dyYXA7XHJcblx0LmJkcnMoMjVweCk7XHJcblx0LnRhYztcclxuXHQuYmQoMCk7XHJcblx0XHJcblx0XHJcblx0JjpiZWZvcmUge1xyXG5cdFx0bGluZS1oZWlnaHQ6aW5oZXJpdCAhaW1wb3J0YW50O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHR6LWluZGV4OjEwO1xyXG5cdH1cclxuXHRcclxuXHRzcGFuIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0ei1pbmRleDoxMDtcclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9jbGVhcl9zdHlsZXMge1xyXG5cdFx0YmFja2dyb3VuZDpub25lO1xyXG5cdFx0Ym9yZGVyOjA7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MCBAbGluZV9oZWlnaHRfcGFkO1xyXG5cdFx0LmJkcnMoMCk7XHJcblx0XHQub3ZoO1xyXG5cdFx0LmJ4c2hfbm9uZTtcclxuXHRcdFxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHQuYnhzaF9ub25lO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfYmdfaG92ZXIge1xyXG5cdFx0LmJkO1xyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2JkX3VuZGVybGluZSB7XHJcblx0XHQuYmRsKDApO1xyXG5cdFx0LmJkcigwKTtcclxuXHRcdC5iZHQoMCk7XHJcblx0XHQuYmRiO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdCNwYWdlICYge1xyXG5cdFx0XHRcdC50cmFucyh+J25vbmUnKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2JnX3NsaWRlX2xlZnQge1xyXG5cdFx0LmJkO1xyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdGxlZnQ6LTEwMCU7XHJcblx0XHRcdHRvcDowO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0bGVmdDowJTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2JnX3NsaWRlX3JpZ2h0IHtcclxuXHRcdC5iZDtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRyaWdodDotMTAwJTtcclxuXHRcdFx0dG9wOjA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHQmOmFmdGVyIHtcclxuXHRcdFx0XHRyaWdodDowJTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2JnX3NsaWRlX3RvcCB7XHJcblx0XHQuYmQ7XHJcblx0XHRcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRoZWlnaHQ6MDtcclxuXHRcdFx0bGVmdDowO1xyXG5cdFx0XHR0b3A6MDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfYmdfc2xpZGVfYm90dG9tIHtcclxuXHRcdC5iZDtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdGhlaWdodDowO1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdGJvdHRvbTowO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9iZ19leHBhbmRfdmVydCB7XHJcblx0XHQuYmQ7XHJcblx0XHRcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHR3aWR0aDowO1xyXG5cdFx0XHRoZWlnaHQ6MTA1JTtcclxuXHRcdFx0bGVmdDo1MCU7XHJcblx0XHRcdHRvcDo1MCU7XHJcblx0XHRcdC5vcCgwKTtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xyXG5cdFx0XHQtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XHJcblx0XHRcdC1vLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XHJcblx0XHRcdC1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xyXG5cdFx0XHR0cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0d2lkdGg6OTAlO1xyXG5cdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2JnX2V4cGFuZF9ob3Ige1xyXG5cdFx0LmJkO1xyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0d2lkdGg6MTA1JTtcclxuXHRcdFx0aGVpZ2h0OjA7XHJcblx0XHRcdGxlZnQ6NTAlO1xyXG5cdFx0XHR0b3A6NTAlO1xyXG5cdFx0XHQub3AoMCk7XHJcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcclxuXHRcdFx0LW1vei10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xyXG5cdFx0XHQtby10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xyXG5cdFx0XHQtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcclxuXHRcdFx0dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdGhlaWdodDo3NSU7XHJcblx0XHRcdFx0Lm9wKDEpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfYmdfZXhwYW5kX2RpYWcge1xyXG5cdFx0LmJkO1xyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0d2lkdGg6NTAwJTtcclxuXHRcdFx0aGVpZ2h0OjA7XHJcblx0XHRcdGxlZnQ6NTAlO1xyXG5cdFx0XHR0b3A6NTAlO1xyXG5cdFx0XHQub3AoMCk7XHJcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xyXG5cdFx0XHQtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcclxuXHRcdFx0LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcclxuXHRcdFx0dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0aGVpZ2h0OjE3MCU7XHJcblx0XHRcdFx0Lm9wKDEpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfc2hhZG93IHtcclxuXHRcdHBhZGRpbmctYm90dG9tOjNweDtcclxuXHRcdC5ieHNoaSgwLCAtM3B4LCAwLCAwLCAuMik7XHJcblx0XHRcclxuXHRcdCNwYWdlICYge1xyXG5cdFx0XHQudHJhbnMofidub25lJyk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xyXG5cdFx0XHRtYXJnaW4tdG9wOjNweDtcclxuXHRcdFx0LmJ4c2hpKDAsIDAsIDAsIDAsIC4wMik7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9kYXJrX2JnLCBcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fbGlnaHRfYmcsIFxyXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9kaXZpZGVyLCBcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25faW52ZXJzZSB7XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdG1hcmdpbjphdXRvICFpbXBvcnRhbnQ7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdHRvcDowO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsIDAsIDAsIC4yKTtcclxuXHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdHRvcDowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fZGFya19iZywgXHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2xpZ2h0X2JnLCBcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fZGl2aWRlciB7XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEuMyk7XHJcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06c2NhbGUoMS4zKTtcclxuXHRcdFx0XHQtbXMtdHJhbnNmb3JtOnNjYWxlKDEuMyk7XHJcblx0XHRcdFx0LW8tdHJhbnNmb3JtOnNjYWxlKDEuMyk7XHJcblx0XHRcdFx0dHJhbnNmb3JtOnNjYWxlKDEuMyk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2xpZ2h0X2JnIHtcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgLjIpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fZGl2aWRlciB7XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtcclxuXHRcdFx0LmJkcjtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2ludmVyc2Uge1xyXG5cdFx0LmJkO1xyXG5cdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9zbGlkZV9sZWZ0LCBcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fc2xpZGVfcmlnaHQge1xyXG5cdFx0cGFkZGluZy1sZWZ0OihAbGluZV9oZWlnaHRfcGFkICogMik7XHJcblx0XHRwYWRkaW5nLXJpZ2h0OihAbGluZV9oZWlnaHRfcGFkICogMik7XHJcblx0XHQuYmQ7XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9zbGlkZV9sZWZ0IHtcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0LnBvc19hYnMoKEBsaW5lX2hlaWdodF9wYWQgKiAyKSwgYXV0bywgLShAbGluZV9oZWlnaHRfcGFkICogMiksIGF1dG8pO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fc2xpZGVfcmlnaHQge1xyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHQucG9zX2FicygoQGxpbmVfaGVpZ2h0X3BhZCAqIDIpLCBhdXRvLCBhdXRvLCAtKEBsaW5lX2hlaWdodF9wYWQgKiAyKSk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0cmlnaHQ6MDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25faG92ZXJfc2xpZGVfbGVmdCwgXHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2hvdmVyX3NsaWRlX3JpZ2h0LCBcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25faG92ZXJfc2xpZGVfdG9wLCBcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25faG92ZXJfc2xpZGVfYm90dG9tIHtcclxuXHRcdC5iZDtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHQucG9zX2FicygxMDAlLCBhdXRvKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0c3BhbiB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHQudHJhbnMofidhbGwgLjNzIGVhc2UtaW4tb3V0Jyk7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9ob3Zlcl9zbGlkZV9sZWZ0IHtcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0bGVmdDotMjAwJTtcclxuXHRcdH1cclxuXHRcclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0bGVmdDowO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHRzcGFuIHtcclxuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDIwMCUpO1xyXG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjAwJSk7XHJcblx0XHRcdFx0LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKDIwMCUpO1xyXG5cdFx0XHRcdC1vLXRyYW5zZm9ybTp0cmFuc2xhdGVYKDIwMCUpO1xyXG5cdFx0XHRcdHRyYW5zZm9ybTp0cmFuc2xhdGVYKDIwMCUpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9ob3Zlcl9zbGlkZV9yaWdodCB7XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdHJpZ2h0Oi0yMDAlO1xyXG5cdFx0fVxyXG5cdFxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRyaWdodDowO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHRzcGFuIHtcclxuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAlKTtcclxuXHRcdFx0XHQtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAlKTtcclxuXHRcdFx0XHQtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTIwMCUpO1xyXG5cdFx0XHRcdC1vLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAlKTtcclxuXHRcdFx0XHR0cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjAwJSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2hvdmVyX3NsaWRlX3RvcCB7XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdHRvcDotMjAwJTtcclxuXHRcdH1cclxuXHRcclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0dG9wOjA7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdHNwYW4ge1xyXG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjAwJSk7XHJcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06dHJhbnNsYXRlWSgyMDAlKTtcclxuXHRcdFx0XHQtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjAwJSk7XHJcblx0XHRcdFx0LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjAwJSk7XHJcblx0XHRcdFx0dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjAwJSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2hvdmVyX3NsaWRlX2JvdHRvbSB7XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdHRvcDoyMDAlO1xyXG5cdFx0fVxyXG5cdFxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHR0b3A6MDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0c3BhbiB7XHJcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjAwJSk7XHJcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjAwJSk7XHJcblx0XHRcdFx0LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0yMDAlKTtcclxuXHRcdFx0XHQtby10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjAwJSk7XHJcblx0XHRcdFx0dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTIwMCUpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIENvbnRhY3QgRm9ybSA3ICoqKioqKioqKioqKioqKioqKi9cclxuLndwY2Y3LWZvcm0ge1xyXG5cdEB7aW5wdXRfdGV4dH0sXHJcblx0c2VsZWN0LCBcclxuXHR0ZXh0YXJlYSxcclxuXHRvcHRpb24ge1xyXG5cdFx0bWluLXdpZHRoOjEwMHB4O1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogSG92ZXIgc2xpZGVyICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfaG92ZXJfc2xpZGVyIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdGxpOmJlZm9yZSB7XHJcblx0XHQuZG47XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2hvdmVyX3NsaWRlcl9pdGVtcyB7XHJcblx0XHRsaXN0LXN0eWxlOm5vbmU7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0aGVpZ2h0OjFweDtcclxuXHRcdHBhZGRpbmc6MCAwIEByZXNwX2Jsb2Nrc19wYWQ7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdGxpc3Qtc3R5bGU6bm9uZTtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0dmlzaWJpbGl0eTpoaWRkZW47XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdHRvcDowO1xyXG5cdFx0XHQub3AoMCk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX2hvdmVyX3NsaWRlcl9mdWxsX2ltZyB7XHJcblx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdG1heC13aWR0aDoxMDAlO1xyXG5cdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0bWF4LWhlaWdodDoxMDAlO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRpbWcge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRtYXgtd2lkdGg6MTAwJTtcclxuXHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdG1heC1oZWlnaHQ6MTAwJTtcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2hvdmVyX3NsaWRlcl90aHVtYnMge1xyXG5cdFx0Zm9udC1zaXplOjA7XHJcblx0XHRsaW5lLWhlaWdodDowO1xyXG5cdFx0bWFyZ2luOjAgLTVweDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdHdvcmQtc3BhY2luZzotMXB4O1xyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdHdvcmQtc3BhY2luZzpub3JtYWw7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRkaXNwbGF5Oi1tb3otaW5saW5lLXN0YWNrO1xyXG5cdFx0XHRwYWRkaW5nOjEwcHggNXB4IDA7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOnRvcDtcclxuXHRcdFx0XHJcblx0XHRcdCYuc2hvcnRjb2RlX2FuaW1hdGVkIGEge1xyXG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdHRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYuaG92ZXJlZF9pdGVtIGE6YmVmb3JlIHtcclxuXHRcdFx0XHQub3AoLjkpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGEge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLjUpO1xyXG5cdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSguNSk7XHJcblx0XHRcdHRyYW5zZm9ybTpzY2FsZSguNSk7XHJcblx0XHRcdC5vdmg7XHJcblx0XHRcdC5vcCguMyk7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0dG9wOjA7XHJcblx0XHRcdFx0bGVmdDowO1xyXG5cdFx0XHRcdC5vcCgwKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Jjpob3ZlcjpiZWZvcmUge1xyXG5cdFx0XHRcdC5vcCguOSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0aW1nIHtcclxuXHRcdFx0aW1hZ2UtcmVuZGVyaW5nOmF1dG87XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHdpZHRoOjEwMHB4O1xyXG5cdFx0XHRoZWlnaHQ6YXV0bztcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5qc19ib2R5IC5jbXNtYXN0ZXJzX2hvdmVyX3NsaWRlcl9pdGVtcyA+IGxpID4gZmlndXJlLmNtc21hc3RlcnNfaG92ZXJfc2xpZGVyX2Z1bGxfaW1nIGltZyB7XHJcblx0cG9zaXRpb246YWJzb2x1dGU7XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogQ29udGVudCBzbGlkZXIgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19jb250ZW50X3NsaWRlciB7XHJcblx0bWFyZ2luLWJvdHRvbToyMHB4O1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0aW1nIHtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0fVxyXG5cdFxyXG5cdC5vd2wtcGFnaW5hdGlvbiB7XHJcblx0XHRib3R0b206NXB4O1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBHYWxsZXJ5ICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfZ2FsbGVyeSB7XHJcblx0bWFyZ2luOjAgMCAwIC0xMHB4O1xyXG5cdHBhZGRpbmc6MDtcclxuXHRcclxuXHQuY21zbWFzdGVyc19nYWxsZXJ5X2l0ZW0ge1xyXG5cdFx0bWluLXdpZHRoOjE4MHB4O1xyXG5cdFx0cGFkZGluZzowIDAgMTBweCAxMHB4O1xyXG5cdFx0LmZsO1xyXG5cdFx0Lm9wKDApO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGRpc3BsYXk6bm9uZTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0aW1nIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5zaG9ydGNvZGVfYW5pbWF0ZWQge1xyXG5cdFx0XHQub3AoMSk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuY21zbWFzdGVyc19jYXB0aW9uIHtcclxuXHRcdFx0ZmlndXJlIHtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdHBhZGRpbmc6MjBweCAyMHB4IDE1cHg7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdGZpZ2NhcHRpb24ge1xyXG5cdFx0XHRcdHBhZGRpbmc6MTVweCAwIDA7XHJcblx0XHRcdFx0LnRhYztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmlsaWdodGJveC10aHVtYm5haWxzLmRhcmsgLmlsaWdodGJveC10aHVtYm5haWxzLWdyaWQgLmlsaWdodGJveC10aHVtYm5haWwgaW1nIHtcclxuXHRpbWFnZS1yZW5kZXJpbmc6YXV0bztcclxufVxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFF1b3RlcyAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX3F1b3Rlc19zbGlkZXIge1xyXG5cdHBhZGRpbmc6MzVweCAwIDA7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHRcclxuXHQub3dsLWJ1dHRvbnMge1xyXG5cdFx0dmlzaWJpbGl0eTpoaWRkZW47XHJcblx0XHQuZG47XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3F1b3RlIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcXVvdGVfaW5uZXIge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRwYWRkaW5nOiAwIDE4JTtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3F1b3RlX2ltYWdlIHtcclxuXHRcdHBhZGRpbmctdG9wOiAxMHB4O1xyXG5cdFx0bWFyZ2luOjAgMCAyNXB4O1xyXG5cdFx0LnRhYztcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdGltZyB7XHJcblx0XHRcdHdpZHRoOjEyMHB4O1xyXG5cdFx0XHQuYmRycyg1MCUpO1xyXG5cdFx0XHQub3ZoO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19xdW90ZV9oZWFkZXIge1xyXG5cdFx0cGFkZGluZzowIDAgNHB4O1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcXVvdGVfdGl0bGUge1xyXG5cdFx0bWFyZ2luOjAgMCAwIDA7XHJcblx0XHQudGFjO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19xdW90ZV9zdWJ0aXRsZV93cmFwIHtcclxuXHRcdC50YWM7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19xdW90ZV9zdWJ0aXRsZSB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdG1hcmdpbjowO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19xdW90ZV9zaXRlIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19xdW90ZV9zdWJ0aXRsZSArIC5jbXNtYXN0ZXJzX3F1b3RlX3NpdGU6YmVmb3JlIHtcclxuXHRcdGNvbnRlbnQ6J1xcMDAyRCc7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdG1hcmdpbjowIDRweDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcXVvdGVfY29udGVudCB7XHJcblx0XHRtYXJnaW46MjBweCAwIDIwcHg7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC50YWM7XHJcblx0XHQub3ZoO1xyXG5cclxuXHRcdHA6OmJlZm9yZXtcclxuXHRcdFx0Y29udGVudDogXCLigJxcIjtcclxuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0fVxyXG5cclxuXHRcdHA6OmFmdGVye1xyXG5cdFx0XHRjb250ZW50OiBcIuKAnVwiO1xyXG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdD4gKjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTowO1xyXG5cdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfcXVvdGVzX2dyaWQge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcXVvdGVzX3ZlcnQge1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHR0b3A6MDtcclxuXHRcdHotaW5kZXg6MTtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUsXHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0d2lkdGg6MXB4O1xyXG5cdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdHRvcDowO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRzcGFuIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0d2lkdGg6MXB4O1xyXG5cdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdHRvcDowO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQucXVvdGVfZm91ciYge1xyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0bGVmdDoyNSU7XHJcblx0XHRcdFx0cmlnaHQ6YXV0bztcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0bGVmdDo3NSU7XHJcblx0XHRcdFx0cmlnaHQ6YXV0bztcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0c3BhbiB7XHJcblx0XHRcdFx0bGVmdDo1MCU7XHJcblx0XHRcdFx0cmlnaHQ6YXV0bztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQucXVvdGVfdGhyZWUmIHtcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGxlZnQ6MzMuMzMlO1xyXG5cdFx0XHRcdHJpZ2h0OmF1dG87XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdGxlZnQ6NjYuNjYlO1xyXG5cdFx0XHRcdHJpZ2h0OmF1dG87XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdHNwYW4ge1xyXG5cdFx0XHRcdC5kbjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQucXVvdGVfdHdvJiB7XHJcblx0XHRcdCY6YmVmb3JlLCBcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHRzcGFuIHtcclxuXHRcdFx0XHRsZWZ0OjUwJTtcclxuXHRcdFx0XHRyaWdodDphdXRvO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5xdW90ZV9vbmUmIHtcclxuXHRcdFx0LmRuO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19xdW90ZXNfbGlzdCB7XHJcblx0XHRwYWRkaW5nOjAgMCAwO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHR6LWluZGV4OjI7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTogMzBweDsgXHJcblxyXG5cdFx0LnF1b3RlX3RocmVlJixcclxuXHRcdC5xdW90ZV90d28me1xyXG5cdFx0XHRtYXJnaW46IDAgLTE1cHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5xdW90ZV9mb3VyJntcclxuXHRcdFx0cGFkZGluZy1ib3R0b206IDBweDsgXHJcblxyXG5cdFx0XHQmICsgLmNtc21hc3RlcnNfcXVvdGVzX2xpc3R7XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfcXVvdGVfaW5uZXJ7XHJcblx0XHRcdFx0XHQuYmR0KDApO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdGhlaWdodDoxcHg7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdGJvdHRvbToxcHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6bGFzdC1jaGlsZDpiZWZvcmUge1xyXG5cdFx0XHRjb250ZW50Om5vbmU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6bGFzdC1jaGlsZCwgXHJcblx0XHQucXVvdGVfdGhyZWUmLCBcclxuXHRcdC5xdW90ZV9vbmUmIHtcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3F1b3RlIHtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5mbDtcclxuXHJcblx0XHQmICsgLmNtc21hc3RlcnNfcXVvdGV7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAtMXB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdC5xdW90ZV9mb3VyJiB7XHJcblx0XHRcdHdpZHRoOjI1JTtcclxuXHRcdH1cclxuXHJcblx0XHQucXVvdGVfdGhyZWUmIHtcclxuXHRcdFx0d2lkdGg6MzMuMzMlO1xyXG5cdFx0XHRwYWRkaW5nOiAwIDE1cHg7XHJcblx0XHR9XHJcblxyXG5cdFx0LnF1b3RlX3R3byYge1xyXG5cdFx0XHR3aWR0aDo1MCU7XHJcblx0XHRcdHBhZGRpbmc6IDAgMTVweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnF1b3RlX29uZSYge1xyXG5cdFx0XHRmbG9hdDpub25lO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19xdW90ZV9pbm5lciB7XHJcblx0XHRwYWRkaW5nOjQwcHggNDVweCA1MHB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQuYmQ7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19xdW90ZV9pbWdfaW5mb193cmFwIHtcclxuXHRcdHBhZGRpbmc6MCAwIDQwcHg7XHJcblx0XHQub3ZoO1xyXG5cclxuXHRcdC5jbXNtYXN0ZXJzX3F1b3RlX21hcmt7XHJcblx0XHRcdG1hcmdpbi1yaWdodDogMjBweDtcclxuXHRcdFx0cGFkZGluZy1sZWZ0OiAxNXB4O1xyXG5cdFx0XHRwYWRkaW5nLXRvcDogMTBweDtcclxuXHRcdFx0aGVpZ2h0OiA4MHB4O1xyXG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1xyXG5cdFx0XHRmb250LXNpemU6IDk0cHg7XHJcblx0XHRcdGZsb2F0OiBsZWZ0O1xyXG5cclxuXHRcdFx0Jjo6YmVmb3Jle1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTogOTRweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQucXVvdGVfZm91ciYsIFxyXG5cdFx0LnF1b3RlX3RocmVlJiB7XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcXVvdGVfaW1hZ2Uge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRwYWRkaW5nOjAgMTBweCAwIDA7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQucXVvdGVfZm91ciYsIFxyXG5cdFx0LnF1b3RlX3RocmVlJiB7XHJcblx0XHRcdHBhZGRpbmc6MCAwIDIwcHg7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdC50YWM7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGltZyB7XHJcblx0XHRcdHdpZHRoOjgwcHg7XHJcblx0XHRcdC5iZHJzKDUwJSk7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3F1b3RlX2luZm9fd3JhcCB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdHBhZGRpbmctdG9wOiAyNXB4O1xyXG5cdFx0XHJcblx0XHQucXVvdGVfZm91ciYsIFxyXG5cdFx0LnF1b3RlX3RocmVlJiB7XHJcblx0XHRcdHBhZGRpbmc6MCAwIDIwcHg7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdC50YWM7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3F1b3RlX2hlYWRlciB7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19xdW90ZV90aXRsZSB7XHJcblx0XHRtYXJnaW46MDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcXVvdGVfc3VidGl0bGVfd3JhcCB7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQucXVvdGVfZm91ciYsIFxyXG5cdFx0LnF1b3RlX3RocmVlJiB7XHJcblx0XHRcdC50YWM7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3F1b3RlX3N1YnRpdGxlIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3F1b3RlX3NpdGUge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblxyXG5cdFx0YXtcclxuXHRcdFx0bGluZS1oZWlnaHQ6IDE7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3F1b3RlX3N1YnRpdGxlICsgLmNtc21hc3RlcnNfcXVvdGVfc2l0ZTpiZWZvcmUge1xyXG5cdFx0Y29udGVudDonXFwwMDJEJztcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0bWFyZ2luOjAgNHB4O1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19xdW90ZV9jb250ZW50IHtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQucXVvdGVfZm91ciYsIFxyXG5cdFx0LnF1b3RlX3RocmVlJiB7XHJcblx0XHRcdC50YWM7XHJcblx0XHR9XHJcblxyXG5cdFx0cDo6YmVmb3Jle1xyXG5cdFx0XHRjb250ZW50OiBcIuKAnFwiO1xyXG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdD4gKjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTowO1xyXG5cdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBQcmljaW5nIHRhYmxlcyAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX3ByaWNpbmdfdGFibGUge1xyXG5cdG1hcmdpbjowIC0xMHB4O1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJpY2luZ19pdGVtIHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRwYWRkaW5nOjAgMTBweCAyMHB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQuZmw7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHQucHJpY2luZ19mb3VyJiB7XHJcblx0XHRcdHdpZHRoOjI1JTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnByaWNpbmdfdGhyZWUmIHtcclxuXHRcdFx0d2lkdGg6MzMuMzMlO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQucHJpY2luZ190d28mIHtcclxuXHRcdFx0d2lkdGg6NTAlO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQucHJpY2luZ19vbmUmIHtcclxuXHRcdFx0ZmxvYXQ6bm9uZTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJpY2luZ19pdGVtX2lubmVyIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0cGFkZGluZzogMzVweCAwIDQwcHg7XHJcblx0XHQudGFjO1xyXG5cdFx0LmJkO1xyXG5cclxuXHRcdCY6OmJlZm9yZXtcclxuXHRcdFx0Y29udGVudDogXCJcIjtcclxuXHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHRoZWlnaHQ6IDhweDtcclxuXHRcdFx0bGVmdDogMDtcclxuXHRcdFx0cmlnaHQ6IDA7XHJcblx0XHRcdHRvcDogMTAwJTtcclxuXHRcdFx0bWFyZ2luLXRvcDogMnB4O1xyXG5cdFx0XHRtYXJnaW4tbGVmdDogLTFweDtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OiAtMXB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wcmljaW5nX2luZm9fd3JhcCB7XHJcblx0XHRwYWRkaW5nOjMwcHggMTBweCAyNXB4O1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LnByaWNpbmdfdGl0bGUge1xyXG5cdFx0bWFyZ2luOjAgMCAyNXB4O1xyXG5cdFx0LnRhYztcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJpY2Vfd3JhcCB7XHJcblx0XHR3b3JkLXNwYWNpbmc6LTVweDtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdC5vdmg7XHJcblx0XHQudGFjO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wcmljZSB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcblx0XHQuZmw7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2N1cnJlbmN5LCBcclxuXHQuY21zbWFzdGVyc19jb2lucyB7XHJcblx0XHRmb250LXNpemU6MTAwJTtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0LmZsO1xyXG5cdH1cclxuXHJcblx0YnJ7XHJcblx0XHRkaXNwbGF5OiBub25lO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wZXJpb2Qge1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRtYXJnaW4tdG9wOi0zcHg7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0LnRhYztcclxuXHR9XHJcblx0XHJcblx0LmZlYXR1cmVfbGlzdCB7XHJcblx0XHRsaXN0LXN0eWxlOm5vbmU7XHJcblx0XHRwYWRkaW5nOjI1cHggMTBweCAzNXB4O1xyXG5cdFx0LnRhYztcclxuXHRcdFxyXG5cdFx0bGkge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0cGFkZGluZzozcHggMDtcclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50Om5vbmU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJpY2luZ19idXRfd3JhcCB7XHJcblx0XHRwYWRkaW5nOjAgMCA0MHB4O1xyXG5cdFx0LnRhYztcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3ByaWNpbmdfaW5mb193cmFwICsgLmNtc21hc3RlcnNfcHJpY2luZ19idXRfd3JhcCB7XHJcblx0XHRwYWRkaW5nLXRvcDo0MHB4O1xyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfcXVvdGVfbWFya3tcclxuXHRwYWRkaW5nOiAwcHggMCAwO1xyXG5cdGhlaWdodDogNTVweDtcclxuXHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdC50YWM7XHJcblxyXG5cdCY6OmJlZm9yZXtcclxuXHRcdGNvbnRlbnQ6ICfigJwnO1xyXG5cdFx0Zm9udC1mYW1pbHk6ICdRdWlja3NhbmQnLCBBcmlhbCwgSGVsdmV0aWNhLCAnTmltYnVzIFNhbnMgTCcsIHNhbnMtc2VyaWY7XHJcblx0XHRmb250LXdlaWdodDogYm9sZDtcclxuXHRcdGZvbnQtc2l6ZTogMTAwcHg7XHJcblx0XHRoZWlnaHQ6IDU1cHg7XHJcblx0XHRsaW5lLWhlaWdodDogMTtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogR29vZ2xlIE1hcHMgKioqKioqKioqKioqKioqKioqL1xyXG4ucmVzaXphYmxlX2Jsb2NrIC5nb29nbGVfbWFwIHtcclxuXHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHR3aWR0aDoxMDAlO1xyXG5cdGxlZnQ6MDtcclxuXHR0b3A6MDtcclxuXHRoZWlnaHQ6MTAwJTtcclxufVxyXG5cclxuLmdvb2dsZV9tYXAgaW1nIHtcclxuXHRtYXgtd2lkdGg6bm9uZTtcclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBDYXB0aW9uICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfaW1nIHtcclxuXHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRtYXgtd2lkdGg6MTAwJTtcclxuXHRcclxuXHQmLmNtc21hc3RlcnNfaW1hZ2VfbCB7XHJcblx0XHRtYXJnaW4tcmlnaHQ6QGxpbmVfaGVpZ2h0X3BhZDtcclxuXHRcdC5mbDtcclxuXHR9XHJcblxyXG5cdCYuY21zbWFzdGVyc19pbWFnZV9yIHtcclxuXHRcdG1hcmdpbi1sZWZ0OkBsaW5lX2hlaWdodF9wYWQ7XHJcblx0XHQuZnI7XHJcblx0fVxyXG5cdFxyXG5cdCYud2l0aF9jYXB0aW9uIHtcclxuXHRcdHBhZGRpbmc6MjBweCAyMHB4IDAgMjBweDtcclxuXHRcdGJvcmRlci13aWR0aDoxcHg7XHJcblx0XHRib3JkZXItc3R5bGU6c29saWQ7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2ltZ19jYXB0aW9uIHtcclxuXHRcdHBhZGRpbmc6MTVweCAwO1xyXG5cdFx0LnRhYztcclxuXHR9XHJcbn1cclxuXHJcbi53cC1jYXB0aW9uIHtcclxuXHRtYXgtd2lkdGg6MTAwJTtcclxuXHRwYWRkaW5nOjA7XHJcblx0bWFyZ2luLWJvdHRvbTpAbGluZV9oZWlnaHRfcGFkO1xyXG5cdFxyXG5cdCYuYWxpZ25jZW50ZXIge1xyXG5cdFx0bWFyZ2luLWxlZnQ6YXV0bztcclxuXHRcdG1hcmdpbi1yaWdodDphdXRvO1xyXG5cdH1cclxuXHRcclxuXHQmLmFsaWdubGVmdCB7XHJcblx0XHRtYXJnaW4tcmlnaHQ6MjVweDtcclxuXHR9XHJcblx0XHJcblx0Ji5hbGlnbnJpZ2h0IHtcclxuXHRcdG1hcmdpbi1sZWZ0OjI1cHg7XHJcblx0fVxyXG5cdFx0XHJcblx0LndwLWNhcHRpb24tdGV4dCB7XHJcblx0XHRwYWRkaW5nOiAxMHB4IDA7XHJcblx0XHQudGFjO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBXUCBHYWxsZXJ5ICoqKioqKioqKioqKioqKioqKi9cclxuLmdhbGxlcnkge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdG1hcmdpbjowIC1AY29sX21hciAyMHB4O1xyXG5cdFxyXG5cdGltZyB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0Ym9yZGVyOm5vbmU7XHJcblx0fVxyXG5cdFxyXG5cdC5nYWxsZXJ5LWl0ZW0ge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRmbG9hdDpsZWZ0O1xyXG5cdFx0bWFyZ2luOjAgQGNvbF9tYXIgMjBweDtcclxuXHRcdFxyXG5cdFx0LndwLWNhcHRpb24tdGV4dCB7XHJcblx0XHRcdHdvcmQtd3JhcDpicmVhay13b3JkO1xyXG5cdFx0XHRwYWRkaW5nOjVweDtcclxuXHRcdFx0LnRhYztcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5nYWxsZXJ5LWNvbHVtbnMtMSAuZ2FsbGVyeS1pdGVtIHtcclxuXHRcdHdpZHRoOnJvdW5kKDEwMCUgLSAoQGNvbF9tYXIgKiAyKSwgMyk7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdGZsb2F0Om5vbmU7XHJcblx0XHQuY2w7XHJcblx0fVxyXG5cdFxyXG5cdCYuZ2FsbGVyeS1jb2x1bW5zLTIgLmdhbGxlcnktaXRlbSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDIpIC0gKEBjb2xfbWFyICogMiksIDMpO1xyXG5cdFx0XHJcblx0XHQmOm50aC1jaGlsZCgybisxKSB7XHJcblx0XHRcdC5jbDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5nYWxsZXJ5LWNvbHVtbnMtMyAuZ2FsbGVyeS1pdGVtIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gMykgLSAoQGNvbF9tYXIgKiAyKSwgMyk7XHJcblx0XHRcclxuXHRcdCY6bnRoLWNoaWxkKDNuKzEpIHtcclxuXHRcdFx0LmNsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmdhbGxlcnktY29sdW1ucy00IC5nYWxsZXJ5LWl0ZW0ge1xyXG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyA0KSAtIChAY29sX21hciAqIDIpLCAzKTtcclxuXHRcdFxyXG5cdFx0JjpudGgtY2hpbGQoNG4rMSkge1xyXG5cdFx0XHQuY2w7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuZ2FsbGVyeS1jb2x1bW5zLTUgLmdhbGxlcnktaXRlbSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDUpIC0gKEBjb2xfbWFyICogMiksIDMpO1xyXG5cdFx0XHJcblx0XHQmOm50aC1jaGlsZCg1bisxKSB7XHJcblx0XHRcdC5jbDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5nYWxsZXJ5LWNvbHVtbnMtNiAuZ2FsbGVyeS1pdGVtIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gNikgLSAoQGNvbF9tYXIgKiAyKSwgMyk7XHJcblx0XHRcclxuXHRcdCY6bnRoLWNoaWxkKDZuKzEpIHtcclxuXHRcdFx0LmNsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmdhbGxlcnktY29sdW1ucy03IC5nYWxsZXJ5LWl0ZW0ge1xyXG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyA3KSAtIChAY29sX21hciAqIDIpLCAzKTtcclxuXHRcdFxyXG5cdFx0JjpudGgtY2hpbGQoN24rMSkge1xyXG5cdFx0XHQuY2w7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuZ2FsbGVyeS1jb2x1bW5zLTggLmdhbGxlcnktaXRlbSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDgpIC0gKEBjb2xfbWFyICogMiksIDMpO1xyXG5cdFx0XHJcblx0XHQmOm50aC1jaGlsZCg4bisxKSB7XHJcblx0XHRcdC5jbDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5nYWxsZXJ5LWNvbHVtbnMtOSAuZ2FsbGVyeS1pdGVtIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gOSkgLSAoQGNvbF9tYXIgKiAyKSwgMyk7XHJcblx0XHRcclxuXHRcdCY6bnRoLWNoaWxkKDluKzEpIHtcclxuXHRcdFx0LmNsO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmdhbGxlcnk6YWZ0ZXIsIFxyXG4uZ2FsbGVyeS1pdGVtOmFmdGVyIHtcclxuXHQuY2xfYWZ0ZXI7XHJcbn1cclxuXHJcbi5nYWxsZXJ5LWNhcHRpb24ge1xyXG5cdG91dGxpbmU6bm9uZTtcclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBTaWRlYmFyICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfc2lkZWJhciB7XHJcblx0bWFyZ2luOjAgLUBjb2xfbWFyO1xyXG5cdFxyXG5cdGFzaWRlIHtcclxuXHRcdG1hcmdpbjowIEBjb2xfbWFyO1xyXG5cdFx0ZmxvYXQ6bGVmdDtcclxuXHR9XHJcbn1cclxuXHJcbi5zaWRlYmFyX2xheW91dF8xNDE0MTQxNCB7XHJcblx0YXNpZGUge1xyXG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyA0KSAtIChAY29sX21hciAqIDIpLCAyKTtcclxuXHR9XHJcbn1cclxuXHJcbi5zaWRlYmFyX2xheW91dF8xNDE0MTIge1xyXG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQsIFxyXG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQgKyBhc2lkZSwgXHJcblx0PiBkaXYuY2wgKyBhc2lkZSwgXHJcblx0PiBkaXYuY2wgKyBhc2lkZSArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIgKyBhc2lkZSArIGFzaWRlIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gNCkgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0fVxyXG5cdFxyXG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQgKyBhc2lkZSArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbCArIGFzaWRlICsgYXNpZGUgKyBhc2lkZSwgXHJcblx0PiBkaXYuY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciArIGFzaWRlICsgYXNpZGUgKyBhc2lkZSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDIpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG5cdH1cclxufVxyXG5cclxuLnNpZGViYXJfbGF5b3V0XzE0MTIxNCB7XHJcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCwgXHJcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCArIGFzaWRlICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNsICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNsICsgYXNpZGUgKyBhc2lkZSArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIgKyBhc2lkZSArIGFzaWRlICsgYXNpZGUge1xyXG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyA0KSAtIChAY29sX21hciAqIDIpLCAyKTtcclxuXHR9XHJcblx0XHJcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbCArIGFzaWRlICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIgKyBhc2lkZSArIGFzaWRlIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gMikgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0fVxyXG59XHJcblxyXG4uc2lkZWJhcl9sYXlvdXRfMTIxNDE0IHtcclxuXHQ+IGFzaWRlOmZpcnN0LWNoaWxkLCBcclxuXHQ+IGRpdi5jbCArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUge1xyXG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyAyKSAtIChAY29sX21hciAqIDIpLCAyKTtcclxuXHR9XHJcblx0XHJcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCArIGFzaWRlLCBcclxuXHQ+IGFzaWRlOmZpcnN0LWNoaWxkICsgYXNpZGUgKyBhc2lkZSwgXHJcblx0PiBkaXYuY2wgKyBhc2lkZSArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbCArIGFzaWRlICsgYXNpZGUgKyBhc2lkZSwgXHJcblx0PiBkaXYuY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciArIGFzaWRlICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIgKyBhc2lkZSArIGFzaWRlICsgYXNpZGUge1xyXG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyA0KSAtIChAY29sX21hciAqIDIpLCAyKTtcclxuXHR9XHJcbn1cclxuXHJcbi5zaWRlYmFyX2xheW91dF8xMzEzMTMge1xyXG5cdGFzaWRlIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gMykgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0fVxyXG59XHJcblxyXG4uc2lkZWJhcl9sYXlvdXRfMzQxNCB7XHJcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCwgXHJcblx0PiBkaXYuY2wgKyBhc2lkZSwgXHJcblx0PiBkaXYuY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciArIGFzaWRlIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgoMTAwJSAqIDMpIC8gNCkgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0fVxyXG5cdFxyXG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQgKyBhc2lkZSwgXHJcblx0PiBkaXYuY2wgKyBhc2lkZSArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUgKyBhc2lkZSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDQpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG5cdH1cclxufVxyXG5cclxuLnNpZGViYXJfbGF5b3V0XzE0MzQge1xyXG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQsIFxyXG5cdD4gZGl2LmNsICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIgKyBhc2lkZSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDQpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG5cdH1cclxuXHRcclxuXHQ+IGFzaWRlOmZpcnN0LWNoaWxkICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNsICsgYXNpZGUgKyBhc2lkZSwgXHJcblx0PiBkaXYuY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciArIGFzaWRlICsgYXNpZGUge1xyXG5cdFx0d2lkdGg6cm91bmQoKCgxMDAlICogMykgLyA0KSAtIChAY29sX21hciAqIDIpLCAyKTtcclxuXHR9XHJcbn1cclxuXHJcbi5zaWRlYmFyX2xheW91dF8yMzEzIHtcclxuXHQ+IGFzaWRlOmZpcnN0LWNoaWxkLCBcclxuXHQ+IGRpdi5jbCArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUge1xyXG5cdFx0d2lkdGg6cm91bmQoKCgxMDAlICogMikgLyAzKSAtIChAY29sX21hciAqIDIpLCAyKTtcclxuXHR9XHJcblx0XHJcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbCArIGFzaWRlICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIgKyBhc2lkZSArIGFzaWRlIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gMykgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0fVxyXG59XHJcblxyXG4uc2lkZWJhcl9sYXlvdXRfMTMyMyB7XHJcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCwgXHJcblx0PiBkaXYuY2wgKyBhc2lkZSwgXHJcblx0PiBkaXYuY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciArIGFzaWRlIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gMykgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0fVxyXG5cdFxyXG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQgKyBhc2lkZSwgXHJcblx0PiBkaXYuY2wgKyBhc2lkZSArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUgKyBhc2lkZSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoKDEwMCUgKiAyKSAvIDMpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG5cdH1cclxufVxyXG5cclxuLnNpZGViYXJfbGF5b3V0XzEyMTIge1xyXG5cdGFzaWRlIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gMikgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0fVxyXG59XHJcblxyXG4uc2lkZWJhcl9sYXlvdXRfMTEge1xyXG5cdGFzaWRlIHtcclxuXHRcdHdpZHRoOnJvdW5kKDEwMCUgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFNoYXJlICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfc2hhcmluZyB7XHJcblx0Lm92aDtcclxufVxyXG5cclxuLnNoYXJlX3dyYXAge1xyXG5cdGZsb2F0OmxlZnQ7XHJcblx0bWFyZ2luLWJvdHRvbToyMHB4O1xyXG5cdG1hcmdpbi1yaWdodDoyMHB4O1xyXG5cdFxyXG5cdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRtYXJnaW4tcmlnaHQ6MDtcclxuXHR9XHJcblx0XHJcblx0LnNvY2lhbF92ZXJ0aWNhbCAmIHtcclxuXHRcdGZsb2F0Om5vbmU7XHJcblx0XHRtYXJnaW4tcmlnaHQ6MDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogVHdpdHRlciBTdHJpcGUgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc190d2l0dGVyX3dyYXAge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0Lm93bC1wYWdpbmF0aW9uIHtcclxuXHRcdHRvcDogYXV0bztcclxuXHRcdGJvdHRvbTogMDtcclxuXHR9XHJcblx0XHJcblx0Lm93bC1idXR0b25zIHtcclxuXHRcdC5kbjtcclxuXHR9XHJcblx0XHJcblx0LnR3cl9pY29uIHtcclxuXHRcdC50YWM7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAzMHB4O1xyXG5cdFx0Zm9udC1zaXplOiAzN3B4O1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdG1hcmdpbjowICFpbXBvcnRhbnQ7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3R3aXR0ZXIge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTogNDVweDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfdHdpdHRlcl9pdGVtIHtcclxuXHRcdHBhZGRpbmc6MCAxMCU7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHR9XHJcblx0XHJcblx0LnB1Ymxpc2hlZCB7XHJcblx0XHQudGFjO1xyXG5cdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAyNXB4O1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc190d2l0dGVyX2l0ZW1fY29udGVudCB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0LnRhYztcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogRHJvcGNhcCAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX2Ryb3BjYXAge1xyXG5cdG1hcmdpbjo1cHggMzNweCA1cHggMjNweDtcclxuXHQuZmw7XHJcblxyXG5cdCYudHlwZTEge1xyXG5cdFx0Jjo6Zmlyc3QtbGV0dGVye1xyXG5cdFx0XHRwYWRkaW5nOiAwIDIycHg7XHJcblx0XHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ji50eXBlMntcclxuXHRcdG1hcmdpbi1sZWZ0OiAzMHB4O1xyXG5cdFx0d2lkdGg6IDY3cHg7XHJcblx0XHRoZWlnaHQ6IDY3cHg7XHJcblx0XHRsaW5lLWhlaWdodDogNjJweDtcclxuXHRcdG92ZXJmbG93OiBoaWRkZW47XHJcblx0XHQuYmRycyg1MCUpO1xyXG5cdFx0LnRhYztcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogQ2xpZW50cyAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX2NsaWVudHNfc2xpZGVyX3dyYXAge1xyXG5cdHBhZGRpbmc6NTVweCAwIDI1cHg7XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX2NsaWVudHNfc2xpZGVyIHtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0bWFyZ2luOjA7XHJcblx0cGFkZGluZzogMDtcclxuXHJcblx0Ji5lbmFibGVfc2xpZGVzX2NvbnRyb2wge1xyXG5cdFx0cGFkZGluZy1ib3R0b206MjVweDtcclxuXHR9XHJcblx0XHJcblx0Ji5lbmFibGVfYXJyb3dfY29udHJvbCB7XHJcblx0XHRwYWRkaW5nLXRvcDo1NXB4O1xyXG5cdH1cclxuXHJcblxyXG5cdCYuY21zbWFzdGVyc19vd2xfc2xpZGVye1xyXG5cdFx0Lm93bC1idXR0b25ze1xyXG5cdFx0XHQ+IGRpdntcclxuXHRcdFx0XHRtYXJnaW46IDA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQub3dsLXBhZ2luYXRpb257XHJcblx0XHRcdHRvcDogYXV0bztcclxuXHRcdFx0Ym90dG9tOiAtMjVweDtcclxuXHRcdFx0ZGlzcGxheTogYmxvY2s7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX293bF9zbGlkZXJfaXRlbSB7XHJcblx0XHRtaW4td2lkdGg6MTIwcHg7XHJcblx0fVxyXG59XHJcblxyXG4uY21zbWFzdGVyc19jbGllbnRzX2l0ZW0ge1xyXG5cdGZvbnQtc2l6ZTowO1xyXG5cdGxpbmUtaGVpZ2h0OjE4MHB4O1xyXG5cdGhlaWdodDoxODBweDtcclxuXHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0LnRhYztcclxuXHRcclxuXHRpbWcge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRwYWRkaW5nOjAgMTBweDtcclxuXHRcdG1heC13aWR0aDoxMDAlO1xyXG5cdFx0bWF4LWhlaWdodDoxMDAlO1xyXG5cdFx0aGVpZ2h0OmF1dG87XHJcblx0XHR3aWR0aDphdXRvO1xyXG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdH1cclxuXHRcclxuXHRhIHtcclxuXHRcdGxpbmUtaGVpZ2h0OjE4MHB4O1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdH1cclxuXHRcclxuXHQmOmhvdmVyIHtcclxuXHRcdG91dGxpbmU6bm9uZTtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4uY21zbWFzdGVyc19jbGllbnRzX2dyaWQge1xyXG5cdG92ZXJmbG93OmhpZGRlbjtcclxuXHRcclxuXHQmLmNsaWVudHNfZml2ZSAuY21zbWFzdGVyc19jbGllbnRzX2l0ZW0ge1xyXG5cdFx0d2lkdGg6MjAlO1xyXG5cdH1cclxuXHRcclxuXHQmLmNsaWVudHNfZm91ciAuY21zbWFzdGVyc19jbGllbnRzX2l0ZW0ge1xyXG5cdFx0d2lkdGg6MjUlO1xyXG5cdH1cclxuXHRcclxuXHQmLmNsaWVudHNfdGhyZWUgLmNtc21hc3RlcnNfY2xpZW50c19pdGVtIHtcclxuXHRcdHdpZHRoOjMzLjMzJTtcclxuXHR9XHJcblx0XHJcblx0Ji5jbGllbnRzX3R3byAuY21zbWFzdGVyc19jbGllbnRzX2l0ZW0ge1xyXG5cdFx0d2lkdGg6NTAlO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19jbGllbnRzX2l0ZW1zIHtcclxuXHRcdGhlaWdodDphdXRvO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19jbGllbnRzX2l0ZW0ge1xyXG5cdFx0bWFyZ2luLWJvdHRvbToyMHB4O1xyXG5cdFx0ZmxvYXQ6bGVmdDtcclxuXHRcdFxyXG5cdFx0aW1nIHtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLjUpO1xyXG5cdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSguNSk7XHJcblx0XHRcdHRyYW5zZm9ybTpzY2FsZSguNSk7XHJcblx0XHRcdC5vcCguMSk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuc2hvcnRjb2RlX2FuaW1hdGVkIHtcclxuXHRcdFx0aW1nIHtcclxuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHR0cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0Lm9wKDEpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY2xpZW50c19vbmUgLmNtc21hc3RlcnNfY2xpZW50c19pdGVtOmxhc3QtY2hpbGQsXHJcblx0Ji5jbGllbnRzX29uZSAuY21zbWFzdGVyc19jbGllbnRzX2l0ZW0ge1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdGZsb2F0Om5vbmU7XHJcblx0XHRoZWlnaHQ6YXV0bztcclxuXHRcdGxpbmUtaGVpZ2h0OjA7XHJcblx0fVxyXG5cdFxyXG5cdCYuY2xpZW50c190d28gLmNtc21hc3RlcnNfY2xpZW50c19pdGVtOm50aC1jaGlsZCgybisxKSxcclxuXHQmLmNsaWVudHNfdGhyZWUgLmNtc21hc3RlcnNfY2xpZW50c19pdGVtOm50aC1jaGlsZCgzbisxKSxcclxuXHQmLmNsaWVudHNfZm91ciAuY21zbWFzdGVyc19jbGllbnRzX2l0ZW06bnRoLWNoaWxkKDRuKzEpLFxyXG5cdCYuY2xpZW50c19maXZlIC5jbXNtYXN0ZXJzX2NsaWVudHNfaXRlbTpudGgtY2hpbGQoNW4rMSkge1xyXG5cdFx0Y2xlYXI6Ym90aDtcclxuXHR9XHJcbn1cclxuXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbi8qIFdpZGdldHMgU3R5bGVzXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG4ud2lkZ2V0IHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRwYWRkaW5nOjAgMCAoQGxpbmVfaGVpZ2h0X3BhZCAqIDIpICsgMTA7XHJcblx0XHJcblx0LndpZGdldHRpdGxlIHtcclxuXHRcdG1hcmdpbi1ib3R0b206IDI1cHg7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFdpZGdldCBBZHZlcnRpc2VtZW50ICoqKioqKioqKioqKioqKioqKi9cclxuLndpZGdldF9jdXN0b21fYWR2ZXJ0aXNlbWVudF9lbnRyaWVzIHtcclxuXHQud2lkZ2V0dGl0bGUge1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMjBweDtcclxuXHR9XHJcblx0XHJcblx0LmFkdl9pbWFnZV93cmFwIHtcclxuXHRcdG1hcmdpbjotNXB4O1xyXG5cdFx0b3ZlcmZsb3c6aGlkZGVuO1xyXG5cdFx0XHJcblx0XHQuYWR2X3dpZGdldF9pbWFnZSB7XHJcblx0XHRcdHdpZHRoOjEyNXB4O1xyXG5cdFx0XHRoZWlnaHQ6MTI1cHg7XHJcblx0XHRcdGZsb2F0OmxlZnQ7XHJcblx0XHRcdG1hcmdpbjo1cHg7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFdpZGdldCBMaXN0cyAqKioqKioqKioqKioqKioqKiovXHJcbi53aWRnZXRfcGFnZXMsIFxyXG4ud2lkZ2V0X2NhdGVnb3JpZXMsIFxyXG4ud2lkZ2V0X2FyY2hpdmUsIFxyXG4ud2lkZ2V0X21ldGEsIFxyXG4ud2lkZ2V0X3JlY2VudF9jb21tZW50cywgXHJcbi53aWRnZXRfcmVjZW50X2VudHJpZXMge1xyXG5cdHVsIHtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdFx0XHJcblx0XHR1bCB7XHJcblx0XHRcdG1hcmdpbjowIDAgMHB4O1xyXG5cdFx0XHRwYWRkaW5nOjRweCAwIDAgMTBweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0bGkge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0cGFkZGluZzowcHggMCA1cHg7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdGEge1xyXG5cdFx0XHRcdG91dGxpbmU6bm9uZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQucG9zdC1kYXRlIHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRtYXJnaW46LTNweCAwIDA7XHJcblx0fVxyXG59XHJcblxyXG4ud2lkZ2V0X3RleHR7XHJcblx0dWx7XHJcblx0XHRsaXtcclxuXHRcdFx0cGFkZGluZzowcHggMCAxMHB4O1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xyXG5cclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGNvbnRlbnQ6bm9uZTtcclxuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4ud2lkZ2V0X3JlY2VudF9lbnRyaWVzIHVsIGxpe1xyXG5cdHBhZGRpbmctYm90dG9tOiAxMHB4O1xyXG59XHJcblxyXG4ud2lkZ2V0X3BhZ2VzLFxyXG4ud2lkZ2V0X25hdl9tZW51e1xyXG5cdHVse1xyXG5cdFx0bGl7XHJcblx0XHRcdHBhZGRpbmc6IDA7XHJcblx0XHRcdGF7XHJcblx0XHRcdFx0cGFkZGluZzogOHB4IDAgOHB4O1xyXG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0XHRcdC5iZGI7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi53aWRnZXRfcGFnZXN7XHJcblx0LndpZGdldHRpdGxle1xyXG5cdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcclxuXHR9XHJcbn1cclxuXHJcbi53aWRnZXRfY2F0ZWdvcmllcywgXHJcbi53aWRnZXRfYXJjaGl2ZSB7XHJcblx0LnNjcmVlbi1yZWFkZXItdGV4dCB7XHJcblx0XHQuZG47XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFdpZGdldCBDYWxlbmRhciAqKioqKioqKioqKioqKioqKiovXHJcbiN3cC1jYWxlbmRhciB7XHJcblx0Ym9yZGVyLXNwYWNpbmc6MDtcclxuXHR3aWR0aDoxMDAlO1xyXG5cdG1pbi13aWR0aDoyMDBweDtcclxuXHRtYXgtd2lkdGg6NDAwcHg7XHJcblx0XHJcblx0Y2FwdGlvbiB7XHJcblx0XHR0ZXh0LWFsaWduOmxlZnQ7XHJcblx0XHRwYWRkaW5nOjAgMCAyMHB4O1xyXG5cdH1cclxuXHRcclxuXHR0ZCwgXHJcblx0dGgge1xyXG5cdFx0cGFkZGluZzo1cHggMDtcclxuXHR9XHJcblx0XHJcblx0dGZvb3Qge1xyXG5cdFx0dGR7XHJcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XHJcblx0XHRcdHBhZGRpbmctdG9wOjI1cHg7XHJcblxyXG5cdFx0XHRhe1xyXG5cdFx0XHRcdCY6OmJlZm9yZXtcclxuXHRcdFx0XHRcdGZvbnQtZmFtaWx5OiBcImZvbnRlbGxvLWN1c3RvbVwiO1xyXG5cdFx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xyXG5cdFx0XHRcdFx0Zm9udC1zaXplOiAwLjdlbTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQjcHJldntcclxuXHRcdFx0IGF7XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6IC0wLjFlbTtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmOjpiZWZvcmV7XHJcblx0XHRcdFx0XHRjb250ZW50OiAnXFxlODlkJztcclxuXHRcdFx0XHRcdGxlZnQ6IDA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cclxuXHRcdCNuZXh0IHtcclxuXHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XHJcblx0XHRcdGF7XHJcblx0XHRcdFx0dGV4dC1hbGlnbjogcmlnaHQ7XHJcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OiAtMC4xZW07XHJcblxyXG5cdFx0XHRcdCY6OmJlZm9yZXtcclxuXHRcdFx0XHRcdGNvbnRlbnQ6ICdcXGU4OWMnO1xyXG5cdFx0XHRcdFx0cmlnaHQ6IDA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHJcblx0XHRhIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdG92ZXJmbG93OiBoaWRkZW47XHJcblxyXG5cdFx0XHQmOjpiZWZvcmV7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogV2lkZ2V0IENvbnRhY3QgRm9ybSAqKioqKioqKioqKioqKioqKiovXHJcbi53aWRnZXRfY3VzdG9tX2NvbnRhY3RfZm9ybV9lbnRyaWVzIHtcclxuXHRAe2lucHV0X3RleHR9LFxyXG5cdHRleHRhcmVhLFxyXG5cdHNlbGVjdCB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdH1cclxuXHRcclxuXHQuZm9ybV9pbmZvLnN1Ym1pdF93cmFwIHtcclxuXHRcdHBhZGRpbmctdG9wOjA7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFdpZGdldCBDb250YWN0IEluZm8gKioqKioqKioqKioqKioqKioqL1xyXG4ud2lkZ2V0X2N1c3RvbV9jb250YWN0X2luZm9fZW50cmllcyB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHRcclxuXHQ+IHNwYW4sIFxyXG5cdC5hZHJlc3Nfd3JhcCB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0bWFyZ2luOjIwcHggMCAwO1xyXG5cdFx0cGFkZGluZzowIDAgMCAzNXB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcclxuXHRcdCY6Zmlyc3QtY2hpbGQge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRmb250LXNpemU6MTZweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6MThweDtcclxuXHRcdFx0LnRhYztcclxuXHRcdFx0LnBvc19hYnMoMWVtLCAxZW0sIDAsIGF1dG8sIC0ycHgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuYWRyZXNzX3dyYXAge1xyXG5cdFx0c3BhbiB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0dG9wOjA7XHJcblx0XHRcdGJvdHRvbTphdXRvO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBXaWRnZXQgQ3VzdG9tIE1lbnUgKioqKioqKioqKioqKioqKioqL1xyXG4ud2lkZ2V0X25hdl9tZW51IHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdHVsIHtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHRhIHtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6ZW1wdHkge1xyXG5cdFx0XHRcdFx0LmRuO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQubWVudSB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFxyXG5cdFx0PiBsaSB7XHJcblx0XHRcdHBhZGRpbmc6MCAxcHggNXB4O1xyXG5cdFx0XHRcclxuXHRcdFx0PiBhIHtcclxuXHRcdFx0XHRwYWRkaW5nOjEwcHggMjBweDtcclxuXHRcdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR1bCB7XHJcblx0XHRcdHBhZGRpbmc6MHB4IDAgMHB4IDEwcHg7XHJcblx0XHRcdFxyXG5cdFx0XHRhIHtcclxuXHRcdFx0XHQvL3BhZGRpbmc6NHB4IDBweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBXaWRnZXQgRmFjZWJvb2sgKioqKioqKioqKioqKioqKioqL1xyXG4ud2lkZ2V0X2N1c3RvbV9mYWNlYm9va19lbnRyaWVzIGlmcmFtZSB7XHJcblx0bWFyZ2luLWJvdHRvbTowO1xyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFdpZGdldCBGbGlja3IgKioqKioqKioqKioqKioqKioqL1xyXG4ud2lkZ2V0X2N1c3RvbV9mbGlja3JfZW50cmllcyB7XHJcblx0LndyYXAge1xyXG5cdFx0bWFyZ2luOjAgLTdweDtcclxuXHR9XHJcblx0XHJcblx0Lm1vcmVfYnV0dG9uIHtcclxuXHRcdGRpc3BsYXk6bm9uZTtcclxuXHR9XHJcblx0XHJcblx0LmZsaWNrcl9iYWRnZV9pbWFnZSB7XHJcblx0XHRtYXJnaW46MCA3cHggMThweDtcclxuXHRcdC5mbDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogV2lkZ2V0IExhdGVzdCBhbmQgUG9wdWxhciBQcm9qZWN0cyAqKioqKioqKioqKioqKioqKiovXHJcbi53aWRnZXRfY3VzdG9tX3BvcHVsYXJfcHJvamVjdHNfZW50cmllcyxcclxuLndpZGdldF9jdXN0b21fbGF0ZXN0X3Byb2plY3RzX2VudHJpZXMge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdC53aWRnZXR0aXRsZSB7XHJcblx0XHRwYWRkaW5nOjAgNzBweCAwIDA7XHJcblx0fVxyXG5cdFxyXG5cdC53aWRnZXRfY3VzdG9tX3Byb2plY3RzX2VudHJpZXNfc2xpZGVzIHtcclxuXHRcdHBhZGRpbmc6NDBweCAwIDA7XHJcblx0fVxyXG5cdFxyXG5cdC53aWRnZXR0aXRsZSArIC53aWRnZXRfY3VzdG9tX3Byb2plY3RzX2VudHJpZXNfc2xpZGVzIHtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdFxyXG5cdFx0Lm93bC1idXR0b25zIHtcclxuXHRcdFx0d2lkdGg6YXV0bztcclxuXHRcdFx0bGVmdDphdXRvO1xyXG5cdFx0XHRyaWdodDowO1xyXG5cdFx0XHR0b3A6LTUwcHg7XHJcblx0XHR9XHJcblxyXG5cdFx0Lm93bC1wYWdpbmF0aW9ue1xyXG5cdFx0XHRkaXNwbGF5OiBub25lO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcHJvamVjdCB7XHJcblx0XHRwYWRkaW5nOjAgMXB4IDJweDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogV2lkZ2V0IFBvc3RzIFRhYnMgKioqKioqKioqKioqKioqKioqL1xyXG4ud2lkZ2V0X2N1c3RvbV9wb3N0c190YWJzX2VudHJpZXMge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3RhYnMge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3RhYnNfbGlzdF9pdGVtIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdGZsb2F0OmxlZnQ7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAtMXB4O1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IC0xcHg7XHJcblx0XHRcdHBlcnNwZWN0aXZlOiAxcHg7XHJcblx0XHRcdC5iZHJzKDVweCAxMHB4IDBweCAwKTtcclxuXHRcdFx0Lm92aDtcclxuXHRcdFx0LmJkO1xyXG5cdFx0XHQudGFjO1xyXG5cclxuXHRcdFx0Ji5jdXJyZW50X3RhYntcclxuXHRcdFx0XHRib3JkZXItYm90dG9tLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0JjpmaXJzdC1jaGlsZHtcclxuXHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0YSB7XHJcblx0XHRcdFx0cGFkZGluZzogNnB4IDBweDtcclxuXHRcdFx0XHRvdXRsaW5lOm5vbmU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQuY21zbWFzdGVyc190YWJzX3dyYXAge1xyXG5cdFx0XHRwYWRkaW5nOjMwcHggMjBweDtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdC5vdmg7XHJcblx0XHRcdC5iZDtcclxuXHRcdFx0XHJcblx0XHRcdD4gLmNtc21hc3RlcnNfdGFiOmZpcnN0LWNoaWxkIHtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3RhYiB7XHJcblx0XHRcdHVsIHtcclxuXHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdGxpIHtcclxuXHRcdFx0XHRtYXJnaW46MTBweCAwIDA7XHJcblx0XHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRcdC5vdmg7XHJcblxyXG5cdFx0XHRcdGF7XHJcblx0XHRcdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6Zmlyc3QtY2hpbGQge1xyXG5cdFx0XHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdGNvbnRlbnQ6bm9uZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0cCB7XHJcblx0XHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYudGFiX2xhdGVzdCwgXHJcblx0XHRcdCYudGFiX3BvcHVsYXIge1xyXG5cdFx0XHRcdGxpOmFmdGVyIHtcclxuXHRcdFx0XHRcdC52YWxpZ25fYWZ0ZXI7XHJcblx0XHRcdFx0XHRoZWlnaHQ6NjBweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYudGFiX2NvbW1lbnRzIHtcclxuXHRcdFx0XHRsaSB7XHJcblx0XHRcdFx0XHQ+IHAge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0XHRcdFx0cGFkZGluZzoxMHB4IDAgMDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfbHByX3RhYnNfaW1nIHtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OjIwcHg7XHJcblx0XHRcdHotaW5kZXg6MTtcclxuXHRcdFx0Lm92aDtcclxuXHRcdFx0LnBvc19hYnMoNjBweCwgNjBweCwgMCwgYXV0byk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX2xwcl90YWJzX2NvbnQge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0XHRwYWRkaW5nOjAgMCAwIDgwcHg7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHQub3ZoO1xyXG5cdFx0XHRcclxuXHRcdFx0PiBhIHtcclxuXHRcdFx0XHRvdXRsaW5lOm5vbmU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdD4gLnB1Ymxpc2hlZCB7XHJcblx0XHRcdFx0bWFyZ2luLXRvcDotMnB4O1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogV2lkZ2V0IFJTUyAqKioqKioqKioqKioqKioqKiovXHJcbi53aWRnZXRfcnNzIHtcclxuXHRwb3NpdGlvbjogcmVsYXRpdmU7XHJcblx0XHJcblx0LndpZGdldHRpdGxle1xyXG5cdFx0Jjo6YmVmb3Jle1xyXG5cdFx0XHRjb250ZW50OiAnXFxlODUxJztcclxuXHRcdFx0Zm9udC1mYW1pbHk6IFwiZm9udGVsbG8tY3VzdG9tXCI7XHJcblx0XHRcdG1hcmdpbi1yaWdodDogNXB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0aW1nIHtcclxuXHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0fVxyXG5cdFxyXG5cdHVsIHtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRwYWRkaW5nOjIwcHggMCAwO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQucnNzd2lkZ2V0IHtcclxuXHRcdFx0XHRvdXRsaW5lOm5vbmU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5yc3MtZGF0ZSB7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LnJzc1N1bW1hcnkge1xyXG5cdFx0XHRcdHBhZGRpbmc6NXB4IDAgMDtcclxuXHRcdFx0XHQub3ZoO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHRjaXRlIHtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdHBhZGRpbmc6N3B4IDAgMDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBXaWRnZXQgVGFnIENsb3VkICoqKioqKioqKioqKioqKioqKi9cclxuLndpZGdldF90YWdfY2xvdWQge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblxyXG5cdC50YWdjbG91ZHtcclxuXHRcdG1hcmdpbi1yaWdodDogLTEwcHg7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAtMTBweDtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC5jbF9hZnRlcjtcclxuXHRcdH1cclxuXHJcblx0XHRhe1xyXG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRcdGZsb2F0OiBsZWZ0O1xyXG5cdFx0XHRtYXJnaW46IDAgMTBweCAxMHB4IDA7XHJcblx0XHRcdHBhZGRpbmc6IDVweCAxMHB4O1xyXG5cdFx0XHQuYmQ7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdGEge1xyXG5cdFx0bGluZS1oZWlnaHQ6MWVtO1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRtYXJnaW46MCA0cHggMCAwO1xyXG5cdFx0XHJcblx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogV2lkZ2V0IFR3aXR0ZXIgKioqKioqKioqKioqKioqKioqL1xyXG4ud2lkZ2V0X2N1c3RvbV90d2l0dGVyX2VudHJpZXMge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0dWwge1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRcclxuXHRcdGxpIHtcclxuXHRcdFx0bWFyZ2luOjAgMCAyNXB4O1xyXG5cdFx0XHRwYWRkaW5nOiAzMnB4IDAgMDtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC50d2VldF90aW1lIHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRwYWRkaW5nOjAgMCAwIDM1cHg7XHJcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdGxlZnQ6MDtcclxuXHRcdHRvcDowO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGZvbnQtc2l6ZToyMnB4O1xyXG5cdFx0XHRsaW5lLWhlaWdodDoyMnB4O1xyXG5cdFx0XHQucG9zX2FicygxZW0sIDFlbSwgMCwgYXV0byk7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC50d2VldF90ZXh0IHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRwYWRkaW5nOjEwcHggMHB4IDEwcHg7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxufVxyXG5cclxuXHJcblxyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4vKiBTZWFyY2ggKyBBcmNoaXZlcyArIFNpdGVtYXAgKyBFcnJvciArIE90aGVyIFN0eWxlc1xyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxuLyoqKioqKioqKioqKioqKioqIEFyY2hpdmVzICsgU2VhcmNoICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfc2VhcmNoLCBcclxuLmNtc21hc3RlcnNfYXJjaGl2ZSB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHRcclxuXHQ+IC5hYm91dF9hdXRob3Ige1xyXG5cdFx0cGFkZGluZzowIDAgNTBweDtcclxuXHR9XHJcblx0XHJcblx0PiAuY21zbWFzdGVyc193cmFwX3BhZ2luYXRpb24ge1xyXG5cdFx0cGFkZGluZzo1MHB4IDAgMDtcclxuXHR9XHJcblxyXG5cdC5jbXNtYXN0ZXJzX3NlYXJjaF96ZXJvIHtcclxuXHRcdC5zZWFyY2hfYmFyX3dyYXAge1xyXG5cdFx0XHRtYXgtd2lkdGg6NDAwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jb250ZW50ICYge1xyXG5cdFx0LmNtc21hc3RlcnNfc2VhcmNoX3plcm8ge1xyXG5cdFx0XHQudGFsO1xyXG5cdFx0XHRcclxuXHRcdFx0Ji50YXIge1xyXG5cdFx0XHRcdGZsb2F0Om5vbmU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Lm1pZGRsZV9jb250ZW50ICYge1xyXG5cdFx0LmNtc21hc3RlcnNfc2VhcmNoX3plcm8ge1xyXG5cdFx0XHRtYXgtd2lkdGg6NjUwcHg7XHJcblx0XHRcdFxyXG5cdFx0XHQmLnRhYyB7XHJcblx0XHRcdFx0bWFyZ2luOjAgYXV0bztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfYXJjaGl2ZV90eXBlIHtcclxuXHRwYWRkaW5nOjBweCAwIDUwcHg7XHJcblx0Lm92aDtcclxuXHRcclxuXHQmOmZpcnN0LW9mLXR5cGUge1xyXG5cdFx0cGFkZGluZy10b3A6MDtcclxuXHR9XHJcblx0XHJcblx0LnByZWxvYWRlciB7XHJcblxyXG5cdFx0Ji5oaWdoSW1nIHtcclxuXHRcdFx0aGVpZ2h0OmF1dG87XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfYXJjaGl2ZV9pdGVtX2ltZ193cmFwIHtcclxuXHRcdG1hcmdpbjowIDQuNSUgMCAwO1xyXG5cdFx0d2lkdGg6NDMlO1xyXG5cdFx0LmZsO1xyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19pbWdfd3JhcCB7XHJcblx0XHRcdC5vdmg7XHJcblxyXG5cdFx0XHRpbWd7XHJcblx0XHRcdFx0aGVpZ2h0OiBhdXRvO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0JiArIC5jbXNtYXN0ZXJzX2FyY2hpdmVfaXRlbV9jb250X3dyYXB7XHJcblx0XHRcdHBhZGRpbmctdG9wOiAzcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2FyY2hpdmVfaXRlbV9jb250X3dyYXAge1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfYXJjaGl2ZV9pdGVtX3R5cGUge1xyXG5cdFx0cGFkZGluZy1ib3R0b206IDEzcHg7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19hcmNoaXZlX2l0ZW1faGVhZGVyIHtcclxuXHRcdHBhZGRpbmc6MCAwIDEwcHg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2FyY2hpdmVfaXRlbV90aXRsZSB7XHJcblx0XHR3b3JkLXdyYXA6YnJlYWstd29yZDtcclxuXHRcdG1hcmdpbjowcHggMCAwcHg7XHJcblx0fVxyXG5cclxuXHQuY21zbWFzdGVyc19hcmNoaXZlX2l0ZW1fY29udGVudCB7XHJcblx0XHRwYWRkaW5nOjAgMCAxMHB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cclxuXHRcdHAge1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2FyY2hpdmVfaXRlbV9pbmZvIHtcclxuXHRcdHBhZGRpbmc6NHB4IDAgMDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRoZWlnaHQ6MXB4O1xyXG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0bGVmdDowO1xyXG5cdFx0XHR0b3A6MDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC5jbXNtYXN0ZXJzX2FyY2hpdmVfaXRlbV90aXRsZSBhe1xyXG5cdH0gXHJcblx0XHJcblx0LmNtc21hc3RlcnNfYXJjaGl2ZV9pdGVtX2RhdGVfd3JhcCB7XHJcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblx0XHRtYXJnaW4tYm90dG9tOiAxMnB4O1xyXG5cclxuXHRcdCYgKyAuY21zbWFzdGVyc19hcmNoaXZlX2l0ZW1fdXNlcl9uYW1le1xyXG5cdFx0XHRwYWRkaW5nOiAwIDAgMCAxNXB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19hcmNoaXZlX2l0ZW1fdXNlcl9uYW1lIHtcclxuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdG1hcmdpbi1ib3R0b206IDEycHg7XHJcblx0fVxyXG5cclxuXHQuY21zbWFzdGVyc19hcmNoaXZlX2l0ZW1fY2F0ZWdvcnl7XHJcblx0XHQmICsgLmNtc21hc3RlcnNfbGlrZXMsXHJcblx0XHQmICsgLmNtc21hc3RlcnNfY29tbWVudHN7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAxNXB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LmNtc21hc3RlcnNfcG9zdF9yZWFkX21vcmUge1xyXG5cdFx0LnJlYWRtb3JlKCk7XHJcblx0fVxyXG5cclxuXHQucHJvZmlsZV9zb2NpYWxfaWNvbnN7XHJcblx0XHRsaXtcclxuXHRcdFx0cGFkZGluZzogMDtcclxuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDVweDtcclxuXHJcblx0XHRcdCY6bGFzdC1jaGlsZHtcclxuXHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Jjo6YmVmb3Jle1xyXG5cdFx0XHRcdGRpc3BsYXk6IG5vbmU7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGF7XHJcblxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFNpdGVtYXAgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19zaXRlbWFwX3dyYXAge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblxyXG5cdHVsLCBcclxuXHRvbCwgXHJcblx0bGkge1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19kaXZpZGVyIHtcclxuXHRcdG1hcmdpbi1ib3R0b206MzBweDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2l0ZW1hcCB7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdD4gbGkge1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRwYWRkaW5nLXRvcDozMHB4O1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHRoZWlnaHQ6MnB4O1xyXG5cdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHR0b3A6MDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdFx0bWFyZ2luLXRvcDowO1xyXG5cdFx0XHRcdHBhZGRpbmctdG9wOjA7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0PiBhIHtcclxuXHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0XHRtYXJnaW4tYm90dG9tOjM1cHg7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0KyB1bCB7XHJcblx0XHRcdFx0XHRtYXJnaW4tdG9wOi0xMHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0PiB1bCB7XHJcblx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHQub3ZoO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdD4gbGkge1xyXG5cdFx0XHRcdFx0d2lkdGg6MjUlO1xyXG5cdFx0XHRcdFx0cGFkZGluZy10b3A6MDtcclxuXHRcdFx0XHRcdHBhZGRpbmctcmlnaHQ6MjBweDtcclxuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206NDBweDtcclxuXHRcdFx0XHRcdC5mbDtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0JjpudGgtY2hpbGQoNSksIFxyXG5cdFx0XHRcdFx0JjpudGgtY2hpbGQoOSksIFxyXG5cdFx0XHRcdFx0JjpudGgtY2hpbGQoMTMpLCBcclxuXHRcdFx0XHRcdCY6bnRoLWNoaWxkKDE3KSwgXHJcblx0XHRcdFx0XHQmOm50aC1jaGlsZCgyMSksIFxyXG5cdFx0XHRcdFx0JjpudGgtY2hpbGQoMjUpLCBcclxuXHRcdFx0XHRcdCY6bnRoLWNoaWxkKDI5KSwgXHJcblx0XHRcdFx0XHQmOm50aC1jaGlsZCgzMyksIFxyXG5cdFx0XHRcdFx0JjpudGgtY2hpbGQoMzcpLCBcclxuXHRcdFx0XHRcdCY6bnRoLWNoaWxkKDQxKSwgXHJcblx0XHRcdFx0XHQmOm50aC1jaGlsZCg0NSkge1xyXG5cdFx0XHRcdFx0XHRjbGVhcjpib3RoO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQ+IHVsIHtcclxuXHRcdFx0XHRcdFx0cGFkZGluZy10b3A6MjBweDtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHR1bCB7XHJcblx0XHRcdFx0XHRcdFx0cGFkZGluZy10b3A6MTBweDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdGxpIHtcclxuXHRcdFx0XHRcdFx0XHRtYXJnaW4tbGVmdDoyMHB4O1xyXG5cdFx0XHRcdFx0XHRcdHBhZGRpbmctdG9wOjEwcHg7XHJcblx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdFx0XHRcdFx0XHRwYWRkaW5nLXRvcDowO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0PiBsaSB7XHJcblx0XHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zaXRlbWFwX2NhdGVnb3J5IHtcclxuXHRcdHBhZGRpbmc6NXB4IDAgMDtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0PiBsaSB7XHJcblx0XHRcdHdpZHRoOjI1JTtcclxuXHRcdFx0cGFkZGluZy1yaWdodDoyMHB4O1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOjQwcHg7XHJcblx0XHRcdC5mbDtcclxuXHRcdFx0XHJcblx0XHRcdCY6bnRoLWNoaWxkKDUpLCBcclxuXHRcdFx0JjpudGgtY2hpbGQoOSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgxMyksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgxNyksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgyMSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgyNSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgyOSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgzMyksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgzNyksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCg0MSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCg0NSkge1xyXG5cdFx0XHRcdGNsZWFyOmJvdGg7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdD4gdWwge1xyXG5cdFx0XHRcdHBhZGRpbmctdG9wOjIwcHg7XHJcblx0XHRcdFxyXG5cdFx0XHRcdHVsIHtcclxuXHRcdFx0XHRcdHBhZGRpbmctdG9wOjEwcHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0XHRsaSB7XHJcblx0XHRcdFx0XHRtYXJnaW4tbGVmdDoyMHB4O1xyXG5cdFx0XHRcdFx0cGFkZGluZy10b3A6MTBweDtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdFx0XHRcdHBhZGRpbmctdG9wOjA7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdD4gbGkge1xyXG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2l0ZW1hcF9hcmNoaXZlIHtcclxuXHRcdHBhZGRpbmc6NXB4IDAgMjBweDtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0PiBsaSB7XHJcblx0XHRcdHdpZHRoOjI1JTtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbToyMHB4O1xyXG5cdFx0XHRwYWRkaW5nLXJpZ2h0OjIwcHg7XHJcblx0XHRcdC5mbDtcclxuXHRcdFx0XHJcblx0XHRcdCY6bnRoLWNoaWxkKDUpLCBcclxuXHRcdFx0JjpudGgtY2hpbGQoOSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgxMyksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgxNyksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgyMSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgyNSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgyOSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgzMyksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgzNyksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCg0MSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCg0NSkge1xyXG5cdFx0XHRcdGNsZWFyOmJvdGg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogRXJyb3IgKioqKioqKioqKioqKioqKioqL1xyXG4uZXJyb3Ige1xyXG5cdHBhZGRpbmc6IDUlIDAgMDtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdC5lcnJvcl9pbm5lciB7XHJcblx0XHRwYWRkaW5nOjAgMCAzMHB4O1xyXG5cdH1cclxuXHRcclxuXHQuZXJyb3JfdGl0bGUge1xyXG5cdFx0Zm9udC1zaXplOjIwMHB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6MWVtO1xyXG5cdFx0bGV0dGVyLXNwYWNpbmc6IC01cHg7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MCAwIDMuNyU7XHJcblx0XHQudGFjO1xyXG5cdH1cclxuXHRcclxuXHQuZXJyb3Jfc3VidGl0bGUge1xyXG5cdFx0dGV4dC1hbGlnbjpjZW50ZXI7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MCAzOCU7XHJcblx0fVxyXG59XHJcblxyXG4uZXJyb3JfY29udCB7XHJcblx0cGFkZGluZzogMzBweCAwIDI1cHg7XHJcblx0LnRhYztcclxuXHRcclxuXHQuc2VhcmNoX2Jhcl93cmFwIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0d2lkdGg6MjcwcHg7XHJcblx0XHRtYXgtd2lkdGg6MTAwJTtcclxuXHRcdG1hcmdpbjowIDIwcHggNDVweDtcclxuXHR9XHJcblx0XHJcblx0LmVycm9yX2J1dHRvbl93cmFwIHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHQudGFjO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBBdHRhY2htZW50IFBhZ2UgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19hdHRhY2hfaW1nIHtcclxuXHRwYWRkaW5nOjQwcHggMDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2F0dGFjaF9pbWdfaW5mbyB7XHJcblx0XHRwYWRkaW5nOjAgMCAyMHB4O1xyXG5cdFx0bWFyZ2luOjAgMCAzMHB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19hdHRhY2hfaW1nX2VkaXQge1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHQuZnI7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2F0dGFjaF9pbWdfbWV0YSB7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIE90aGVyICoqKioqKioqKioqKioqKioqKi9cclxuI21haW4ge1xyXG5cdC53aXRoX2ZybV9zdHlsZSAuZnJtX2Zvcm1fZmllbGRzIGlucHV0LCBcclxuXHQjd3Bjb250ZW50IC53aXRoX2ZybV9zdHlsZSAuZnJtX2Zvcm1fZmllbGRzIHNlbGVjdCwgXHJcblx0LndpdGhfZnJtX3N0eWxlIC5mcm1fZm9ybV9maWVsZHMgc2VsZWN0LCBcclxuXHQud2l0aF9mcm1fc3R5bGUgLmZybV9mb3JtX2ZpZWxkcyB0ZXh0YXJlYSB7XHJcblx0XHRwYWRkaW5nOkBpbnB1dF9wYWQ7XHJcblx0fVxyXG59XHJcblxyXG4jbGFuZ19zZWwgdWwge1xyXG5cdG92ZXJmbG93OnZpc2libGU7XHJcbn1cclxuXHJcbiNsYW5nX3NlbF9mb290ZXIge1xyXG5cdGRpc3BsYXk6bm9uZTtcclxufVxyXG5cclxuXHJcblxyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4vKiBDb250YWN0IEZvcm1zIFN0eWxlc1xyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxuLmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIHtcclxuXHRtYXJnaW46MCAtQGNvbF9tYXI7XHJcblx0XHJcblx0LnN1Y2Nlc3NfYm94IHtcclxuXHRcdG1hcmdpbjowIEBjb2xfbWFyIDEwcHg7XHJcblx0XHR3aWR0aDpyb3VuZCgxMDAlIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG5cdH1cclxuXHRcclxuXHQuZm9ybV9pbmZvIHtcclxuXHRcdG1hcmdpbjowIEBjb2xfbWFyO1xyXG5cdFx0cGFkZGluZy1ib3R0b206MjBweCAhaW1wb3J0YW50O1xyXG5cdFx0XHJcblx0XHQmLnN1Ym1pdF93cmFwIHtcclxuXHRcdFx0cGFkZGluZy10b3A6MTBweDtcclxuXHJcblx0XHRcdC5jbXNtYXN0ZXJzX2J1dHRvbntcclxuXHRcdFx0XHRtaW4td2lkdGg6IDE0NXB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdFtjbGFzcyo9XCJvbmVfXCJdIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxyXG5cdFtjbGFzcyo9XCJvbmVfXCJdIHNlbGVjdCxcclxuXHRbY2xhc3MqPVwib25lX1wiXSB0ZXh0YXJlYSB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdH1cclxufVxyXG5cclxuc2VsZWN0IHtcclxuXHRtaW4td2lkdGg6MTAwcHg7XHJcbn1cclxuXHJcbnNlbGVjdFttdWx0aXBsZV0ge1xyXG5cdGhlaWdodDphdXRvO1xyXG59XHJcblxyXG5zcGFuLndwY2Y3LWxpc3QtaXRlbSB7XHJcblx0ZGlzcGxheTpibG9jaztcclxufVxyXG5cclxuLndwY2Y3LWxpc3QtaXRlbS1sYWJlbCxcclxuYm9keSAuY21zbWFzdGVycy1mb3JtLWJ1aWxkZXIgLmNoZWNrX3BhcmVudCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbCwgXHJcbmJvZHkgLmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIC5jaGVja19wYXJlbnQgaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgbGFiZWwge1xyXG5cdHBhZGRpbmctbGVmdDoyNXB4O1xyXG5cdHBhZGRpbmctcmlnaHQ6MDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRjdXJzb3I6cG9pbnRlcjtcclxuXHQuZmw7XHJcbn1cclxuXHJcbi53cGNmNy1saXN0LWl0ZW0gbGFiZWwge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdGRpc3BsYXk6YmxvY2s7XHJcblx0b3ZlcmZsb3c6aGlkZGVuO1xyXG5cdHBhZGRpbmc6NXB4IDA7XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciAuY2hlY2tfcGFyZW50IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSwgXHJcbi5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciAuY2hlY2tfcGFyZW50IGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcclxuLndwY2Y3IGZvcm0ud3BjZjctZm9ybSBzcGFuLndwY2Y3LWxpc3QtaXRlbSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXHJcbi53cGNmNyBmb3JtLndwY2Y3LWZvcm0gc3Bhbi53cGNmNy1saXN0LWl0ZW0gaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcclxuXHQuZmw7XHJcblx0Lm9wKDApO1xyXG5cdC5wb3NfYWJzKDFlbSwgMWVtLCAwLCBhdXRvKTtcclxufVxyXG5cclxuLndwY2Y3IGZvcm0ud3BjZjctZm9ybSBzcGFuLndwY2Y3LWxpc3QtaXRlbSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBzcGFuLndwY2Y3LWxpc3QtaXRlbS1sYWJlbDpiZWZvcmUsIFxyXG4uY21zbWFzdGVycy1mb3JtLWJ1aWxkZXIgLmNoZWNrX3BhcmVudCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbDpiZWZvcmUsXHJcbi53cGNmNyBmb3JtLndwY2Y3LWZvcm0gc3Bhbi53cGNmNy1saXN0LWl0ZW0gaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgc3Bhbi53cGNmNy1saXN0LWl0ZW0tbGFiZWw6YmVmb3JlLCBcclxuLmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIC5jaGVja19wYXJlbnQgaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgbGFiZWw6YmVmb3JlIHtcclxuXHRjb250ZW50OicnO1xyXG5cdC5iZDtcclxuXHQucG9zX2FicygxN3B4LCAxN3B4LCAxcHgsIGF1dG8pO1xyXG59XHJcblxyXG4ud3BjZjcgZm9ybS53cGNmNy1mb3JtIHNwYW4ud3BjZjctbGlzdC1pdGVtIGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIHNwYW4ud3BjZjctbGlzdC1pdGVtLWxhYmVsOmJlZm9yZSwgXHJcbi5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciAuY2hlY2tfcGFyZW50IGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIGxhYmVsOmJlZm9yZSB7XHJcblx0LmJkcnMoNTAlKTtcclxufVxyXG5cclxuLndwY2Y3IGZvcm0ud3BjZjctZm9ybSBzcGFuLndwY2Y3LWxpc3QtaXRlbSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBzcGFuLndwY2Y3LWxpc3QtaXRlbS1sYWJlbDphZnRlciwgXHJcbi5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciAuY2hlY2tfcGFyZW50IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVsOmFmdGVyLFxyXG4ud3BjZjcgZm9ybS53cGNmNy1mb3JtIHNwYW4ud3BjZjctbGlzdC1pdGVtIGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIHNwYW4ud3BjZjctbGlzdC1pdGVtLWxhYmVsOmFmdGVyLCBcclxuLmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIC5jaGVja19wYXJlbnQgaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgbGFiZWw6YWZ0ZXIge1xyXG5cdGNvbnRlbnQ6Jyc7XHJcblx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMCk7XHJcblx0LW1vei10cmFuc2Zvcm06c2NhbGUoMCk7XHJcblx0dHJhbnNmb3JtOnNjYWxlKDApO1xyXG5cdC5wb3NfYWJzKDlweCwgOXB4LCA1cHgsIGF1dG8pO1xyXG5cdC5vcCgwKTtcclxufVxyXG5cclxuLndwY2Y3IGZvcm0ud3BjZjctZm9ybSBzcGFuLndwY2Y3LWxpc3QtaXRlbSBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBzcGFuLndwY2Y3LWxpc3QtaXRlbS1sYWJlbDphZnRlciwgXHJcbi5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciAuY2hlY2tfcGFyZW50IGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIGxhYmVsOmFmdGVyIHtcclxuXHQuYmRycyg1MCUpO1xyXG59XHJcblxyXG4ud3BjZjcgZm9ybS53cGNmNy1mb3JtIHNwYW4ud3BjZjctbGlzdC1pdGVtIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpjaGVja2VkICsgc3Bhbi53cGNmNy1saXN0LWl0ZW0tbGFiZWw6YWZ0ZXIsXHJcbi5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciAuY2hlY2tfcGFyZW50IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpjaGVja2VkICsgbGFiZWw6YWZ0ZXIsXHJcbi53cGNmNyBmb3JtLndwY2Y3LWZvcm0gc3Bhbi53cGNmNy1saXN0LWl0ZW0gaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBzcGFuLndwY2Y3LWxpc3QtaXRlbS1sYWJlbDphZnRlciwgXHJcbi5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciAuY2hlY2tfcGFyZW50IGlucHV0W3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkICsgbGFiZWw6YWZ0ZXIge1xyXG5cdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdC1tb3otdHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdHRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHQub3AoMSk7XHJcbn1cclxuXHJcblxyXG5cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuLyogQ1NTMyBBbmltYXRpb25zXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG5odG1sLmNzc3RyYW5zaXRpb25zIHtcclxuXHQvKiBDdXN0b20gQW5pbWF0aW9ucyAqL1xyXG5cdEB7aW5wdXRfdGV4dH0sXHJcblx0dGV4dGFyZWEsIFxyXG5cdHNlbGVjdCB7XHJcblx0XHQudHJhbnMofidib3JkZXItY29sb3IgLjJzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cclxuXHQuY21zbWFzdGVyc19oZWFkZXJfc2VhcmNoX2Zvcm0ge1xyXG5cdFx0LnRyYW5zKH4nb3BhY2l0eSAuNXMgZWFzZS1pbi1vdXQsIHZpc2liaWxpdHkgLjVzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cclxuXHJcblx0LyogR2xvYmFsIEFuaW1hdGlvbnMgKi9cclxuXHRhLFxyXG5cdC5pbWdfcGxhY2Vob2xkZXJfc21hbGwsXHJcblx0LmNtc21hc3RlcnNfaWNvbl93cmFwIC5jbXNtYXN0ZXJzX3NpbXBsZV9pY29uX3RpdGxlLCBcclxuXHQuY21zbWFzdGVyc19oZWFkZXJfc2VhcmNoX2Zvcm0gYnV0dG9uLCBcclxuXHQuY21zbWFzdGVyc19oZWFkZXJfc2VhcmNoX2Zvcm0gLmNtc21hc3RlcnNfaGVhZGVyX3NlYXJjaF9mb3JtX2Nsb3NlLCBcclxuXHQuY21zbWFzdGVyc19zaXRlbWFwX3dyYXAgLmNtc21hc3RlcnNfc2l0ZW1hcCA+IGxpID4gdWwgPiBsaSA+IHVsIGxpIGE6YmVmb3JlLFxyXG5cdC5jbXNtYXN0ZXJzX29wZW5fcG9zdCAuY21zbWFzdGVyc19vd2xfc2xpZGVyIC5vd2wtYnV0dG9ucyA+IGRpdixcclxuXHQuY21zbWFzdGVyc19wb3N0X2RlZmF1bHQgLmNtc21hc3RlcnNfb3dsX3NsaWRlciAub3dsLWJ1dHRvbnMgPiBkaXYsXHJcblx0LmNtc21hc3RlcnNfcG9zdF90aW1lbGluZSAuY21zbWFzdGVyc19vd2xfc2xpZGVyIC5vd2wtYnV0dG9ucyA+IGRpdixcclxuXHQuY21zbWFzdGVyc19vcGVuX3Byb2plY3QgLmNtc21hc3RlcnNfb3dsX3NsaWRlciAub3dsLWJ1dHRvbnMgZGl2LCBcclxuXHQub3dsLXBhZ2luYXRpb24gLm93bC1wYWdlLFxyXG5cdC5jbXNtYXN0ZXJzX25vdGljZSAubm90aWNlX2Nsb3NlLFxyXG5cdC53aWRnZXQgLnR5cGUtdHJpYmVfZXZlbnRzIC5jbXNtYXN0ZXJzX2V2ZW50X2RhdGVfaW5uZXIgc3BhbiB7XHJcblx0XHQudHJhbnMofidjb2xvciAuM3MgZWFzZS1pbi1vdXQsIGJhY2tncm91bmQtY29sb3IgLjNzIGVhc2UtaW4tb3V0LCBvcGFjaXR5IC4zcyBlYXNlLWluLW91dCwgYm9yZGVyLWNvbG9yIC4zcyBlYXNlLWluLW91dCcpO1xyXG5cdH1cclxuXHJcblx0LmNtc21hc3RlcnNMaWtlICB7XHJcblx0XHQudHJhbnMobm9uZSk7XHJcblxyXG5cdFx0Jjo6YmVmb3Jle1xyXG5cdFx0XHQudHJhbnMofidjb2xvciAuM3MgZWFzZS1pbi1vdXQsIGJhY2tncm91bmQtY29sb3IgLjNzIGVhc2UtaW4tb3V0LCBvcGFjaXR5IC4zcyBlYXNlLWluLW91dCcpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblxyXG5cdC5jbXNtYXN0ZXJzX2NvbW1lbnRze1xyXG5cdFx0YTo6YmVmb3Jle1xyXG5cdFx0XHQudHJhbnMofidjb2xvciAuM3MgZWFzZS1pbi1vdXQsIGJhY2tncm91bmQtY29sb3IgLjNzIGVhc2UtaW4tb3V0LCBvcGFjaXR5IC4zcyBlYXNlLWluLW91dCcpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuaGVhZGVyX21pZCwgXHJcblx0LmhlYWRlcl9ib3Qge1xyXG5cdFx0LnRyYW5zKH4nYmFja2dyb3VuZC1jb2xvciAuMnMgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0I3BhZ2UgLmNtc21hc3RlcnNfc29jaWFsX2ljb24sIFxyXG5cdC5lZGdlX29ubHkgLmNtc21hc3RlcnNfYnV0X2ljb25faW52ZXJzZSxcclxuXHQjc2xpZGVfdG9wLFxyXG5cdC5wb3N0X25hdiA+IHNwYW4gPiBzcGFuLFxyXG5cdC5jb21tZW50c19uYXYgPiBzcGFuOjpiZWZvcmUsXHJcblx0LndpZGdldF9jdXN0b21fbGF0ZXN0X3Byb2plY3RzX2VudHJpZXMgLndpZGdldHRpdGxlICsgLndpZGdldF9jdXN0b21fcHJvamVjdHNfZW50cmllc19zbGlkZXMgLm93bC1idXR0b25zIGRpdiB7XHJcblx0XHQudHJhbnMofidjb2xvciAuM3MgZWFzZS1pbi1vdXQsIGJhY2tncm91bmQtY29sb3IgLjNzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdG5hdiA+IGRpdiA+IHVsIHVsLFxyXG5cdG5hdiA+IGRpdiA+IHVsIGRpdiB7XHJcblx0XHQudHJhbnMofidvcGFjaXR5IC4zcyBlYXNlLWluLW91dCAuMXMsIG1hcmdpbi10b3AgLjNzIGVhc2UtaW4tb3V0IC4xcycpO1xyXG5cdH1cclxuXHRcclxuXHRuYXYgPiBkaXYgPiB1bCB1bCB1bCB7XHJcblx0XHQudHJhbnMofidvcGFjaXR5IC4zcyBlYXNlLWluLW91dCAuMXMsIG1hcmdpbi1sZWZ0IC4zcyBlYXNlLWluLW91dCAuMXMsIG1hcmdpbi1yaWdodCAuM3MgZWFzZS1pbi1vdXQgLjFzJyk7XHJcblx0fVxyXG5cdFxyXG5cdG5hdiA+IGRpdiA+IHVsIGxpIGEsXHJcblx0LmNtc21hc3RlcnNfaWNvbl93cmFwIC5jbXNtYXN0ZXJzX3NpbXBsZV9pY29uLFxyXG5cdC5jbXNtYXN0ZXJzX3RhYnMgLmNtc21hc3RlcnNfdGFic19saXN0X2l0ZW0ge1xyXG5cdFx0LnRyYW5zKH4nYmFja2dyb3VuZC1jb2xvciAuM3MgZWFzZS1pbi1vdXQsIGNvbG9yIC4zcyBlYXNlLWluLW91dCwgYm9yZGVyLWNvbG9yIC4zcyBlYXNlLWluLW91dCcpO1xyXG5cdH1cclxuXHRcclxuXHRuYXYgPiBkaXYgPiB1bCBsaSBhIC5uYXZfc3VidGl0bGUge1xyXG5cdFx0LnRyYW5zKH4nY29sb3IgLjNzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5oZWFkZXJfdG9wIC5oZWFkZXJfdG9wX2J1dCxcclxuXHQud2lkZ2V0X3BhZ2VzIHVsIGxpIGEsXHJcblx0LndpZGdldF9uYXZfbWVudSB1bCBsaSBhLFxyXG5cdC53aWRnZXRfbmF2X21lbnUgdWwgbGkgYSB7XHJcblx0XHQudHJhbnMofidjb2xvciAuM3MgZWFzZS1pbi1vdXQsIGJvcmRlci1jb2xvciAuM3MgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfdG9nZ2xlcyAuY21zbWFzdGVyc190b2dnbGVfcGx1cyBzcGFuIHtcclxuXHRcdC50cmFucyh+J2JhY2tncm91bmQtY29sb3IgLjNzIGVhc2UtaW4tb3V0LCBoZWlnaHQgLjFzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2hvdmVyX3NsaWRlcl90aHVtYnMgPiBsaSBpbWcge1xyXG5cdFx0LnRyYW5zKH4nb3BhY2l0eSAuNHMgZWFzZS1pbi1vdXQsIHdpZHRoIC4zcyBlYXNlLWluLW91dCwgbGVmdCAuM3MgZWFzZS1pbi1vdXQsIHJpZ2h0IC4zcyBlYXNlLWluLW91dCcpO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19ob3Zlcl9zbGlkZXJfaXRlbXMgPiBsaSB7XHJcblx0XHQudHJhbnMofidvcGFjaXR5IC41cyBlYXNlLWluLW91dCwgdmlzaWJpbGl0eSAuNXMgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaG92ZXJfc2xpZGVyX3RodW1icyA+IGxpIGEsXHJcblx0LndpZGdldF9jdXN0b21fcG9zdHNfdGFic19lbnRyaWVzIC5jbXNtYXN0ZXJzX3RhYnMgLmNtc21hc3RlcnNfdGFic19saXN0X2l0ZW0ge1xyXG5cdFx0LnRyYW5zKGJvcmRlci1jb2xvciAuM3MgZWFzZS1pbi1vdXQpO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19ob3Zlcl9zbGlkZXIgLmNtc21hc3RlcnNfaG92ZXJfc2xpZGVyX3RodW1icyA+IGxpIGE6YmVmb3JlLFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfcHV6emxlIC5wcm9qZWN0X291dGVyIC5jbXNtYXN0ZXJzX2ltZ19yb2xsb3ZlcixcclxuXHQuY21zbWFzdGVyc19wcm9qZWN0X3B1enpsZSAucHJvamVjdF9pbm5lcixcclxuXHQuY21zbWFzdGVyc19wcm9maWxlX2hvcml6b250YWwgLmNtc21hc3RlcnNfaW1nX3dyYXAgKyAucHJvZmlsZV9zb2NpYWxfaWNvbnMge1xyXG5cdFx0LnRyYW5zKG9wYWNpdHkgLjRzIGVhc2UtaW4tb3V0KTtcclxuXHR9XHJcblx0XHJcblx0Lmlzb3RvcGUgPiAqIHtcclxuXHRcdC50cmFucyhvcGFjaXR5IC44cyBlYXNlLWluLW91dCk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2J1dHRvbiwgXHJcblx0LmNtc21hc3RlcnNfYnV0dG9uLmNtc21hc3RlcnNfYnV0X2NsZWFyX3N0eWxlczpiZWZvcmUsIFxyXG5cdC5jbXNtYXN0ZXJzX2J1dHRvbi5jbXNtYXN0ZXJzX2J1dF9jbGVhcl9zdHlsZXM6YWZ0ZXIge1xyXG5cdFx0LnRyYW5zKH4nYWxsIC4zcyBlYXNlLWluLW91dCcpO1xyXG5cdH1cclxuXHJcblx0LmNtc21hc3RlcnNfYnV0dG9uLmNtc21hc3RlcnNfYnV0X2ljb25fc2xpZGVfbGVmdCxcclxuXHQuY21zbWFzdGVyc19idXR0b24uY21zbWFzdGVyc19idXRfaWNvbl9zbGlkZV9yaWdodCB7XHJcblx0XHQudHJhbnMofidhbGwgLjNzIGVhc2UtaW4tb3V0LCBjb2xvciAwcyBlYXNlLWluLW91dCcpO1xyXG5cdH1cclxuXHRcclxuXHQud3BjZjcgZm9ybS53cGNmNy1mb3JtIHNwYW4ud3BjZjctbGlzdC1pdGVtIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIHNwYW4ud3BjZjctbGlzdC1pdGVtLWxhYmVsOmFmdGVyLFxyXG5cdC5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciAuY2hlY2tfcGFyZW50IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVsOmFmdGVyLFxyXG5cdC53cGNmNyBmb3JtLndwY2Y3LWZvcm0gc3Bhbi53cGNmNy1saXN0LWl0ZW0gaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgc3Bhbi53cGNmNy1saXN0LWl0ZW0tbGFiZWw6YWZ0ZXIsIFxyXG5cdC5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciAuY2hlY2tfcGFyZW50IGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIGxhYmVsOmFmdGVyIHtcclxuXHRcdC50cmFucyh+J2FsbCAuMnMgZWFzZS1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaWNvbl9ib3guY21zbWFzdGVyc19pY29uX3RvcDpiZWZvcmUsXHJcblx0LmNtc21hc3RlcnNfaWNvbl9ib3guY21zbWFzdGVyc19pY29uX2JveF90b3A6YmVmb3JlLFxyXG5cdC5jbXNtYXN0ZXJzX2ljb25fYm94LmNtc21hc3RlcnNfaWNvbl9ib3hfbGVmdF90b3A6YmVmb3JlLFxyXG5cdC5jbXNtYXN0ZXJzX2ljb25fYm94LmNtc21hc3RlcnNfaWNvbl9ib3hfbGVmdDpiZWZvcmUsXHJcblx0LmNtc21hc3RlcnNfaWNvbl9ib3guY21zbWFzdGVyc19pY29uX2hlYWRpbmdfbGVmdCBoMTpiZWZvcmUsXHJcblx0LmNtc21hc3RlcnNfaWNvbl9ib3guY21zbWFzdGVyc19pY29uX2hlYWRpbmdfbGVmdCBoMjpiZWZvcmUsXHJcblx0LmNtc21hc3RlcnNfaWNvbl9ib3guY21zbWFzdGVyc19pY29uX2hlYWRpbmdfbGVmdCBoMzpiZWZvcmUsIFxyXG5cdC5jbXNtYXN0ZXJzX2ljb25fYm94LmNtc21hc3RlcnNfaWNvbl9oZWFkaW5nX2xlZnQgaDQ6YmVmb3JlLCBcclxuXHQuY21zbWFzdGVyc19pY29uX2JveC5jbXNtYXN0ZXJzX2ljb25faGVhZGluZ19sZWZ0IGg1OmJlZm9yZSwgXHJcblx0LmNtc21hc3RlcnNfaWNvbl9ib3guY21zbWFzdGVyc19pY29uX2hlYWRpbmdfbGVmdCBoNjpiZWZvcmUge1xyXG5cdFx0LnRyYW5zKH4nYWxsIDFzIGN1YmljLWJlemllciguNTUsIC4zLCAuNSwgMS42NSknKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW1zLmNtc21hc3RlcnNfaWNvbl9saXN0X3R5cGVfYmxvY2sgLmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW06YmVmb3JlIHtcclxuXHRcdC50cmFucyh+J29wYWNpdHkgNXMgZWFzZS1pbi1vdXQsIGhlaWdodCAuOHMgZWFzZS1pbicpO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbXMuY21zbWFzdGVyc19pY29uX2xpc3RfdHlwZV9ibG9jayAuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbSAuY21zbWFzdGVyc19pY29uX2xpc3RfaWNvbiwgXHJcblx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW1zLmNtc21hc3RlcnNfaWNvbl9saXN0X3R5cGVfYmxvY2sgLmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW0gLmNtc21hc3RlcnNfaWNvbl9saXN0X2ljb246YWZ0ZXIge1xyXG5cdFx0LnRyYW5zKH4nYWxsIC41cyBlYXNlLWluLW91dCcpO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbXMuY21zbWFzdGVyc19pY29uX2xpc3RfdHlwZV9ibG9jayAuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbSAuY21zbWFzdGVyc19pY29uX2xpc3RfaWNvbjpiZWZvcmUge1xyXG5cdFx0LnRyYW5zKH4nY29sb3IgLjRzIGVhc2UtaW4tb3V0LCBmb250LXNpemUgLjRzIGVhc2UtaW4tb3V0LCBsaW5lLWhlaWdodCAuNHMgZWFzZS1pbicpO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19jbGllbnRzX2l0ZW0gaW1nLCBcclxuXHQuY21zbWFzdGVyc19ob3Zlcl9zbGlkZXIgLmNtc21hc3RlcnNfaG92ZXJfc2xpZGVyX3RodW1icyBhIHtcclxuXHRcdC50cmFucyh+J2FsbCAuNXMgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvZmlsZSAucHJvZmlsZSBpbWcge1xyXG5cdFx0LnRyYW5zKH4nYWxsIC43cyBjdWJpYy1iZXppZXIoLjU1LCAuMywgLjUsIDEuNjUpJyk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2ZpbGUgLnByb2ZpbGUgLnBsX3NvY2lhbF9saXN0IHtcclxuXHRcdC50cmFucyh+J29wYWNpdHkgLjVzIGVhc2Utb3V0LCBtYXJnaW4gLjVzIGVhc2Utb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2plY3RfZ3JpZCBmaWd1cmUge1xyXG5cdFx0LnRyYW5zKH4nb3BhY2l0eSAuN3MgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcHJvamVjdF9wdXp6bGUgLnByb2plY3RfaW5uZXIge1xyXG5cdFx0LnRyYW5zKH4ndHJhbnNmb3JtIC4zcyBlYXNlLWluLW91dCwgb3BhY2l0eSAuM3MgZWFzZScpO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zdGF0cy5zdGF0c19tb2RlX2JhcnMuc3RhdHNfdHlwZV9ob3Jpem9udGFsLnNob3J0Y29kZV9hbmltYXRlZCAuY21zbWFzdGVyc19zdGF0X2lubmVyIHtcclxuXHRcdC13ZWJraXQtYW5pbWF0aW9uOmJhcl9tb3ZlIDJzIGVhc2UtaW47XHJcblx0XHQtbW96LWFuaW1hdGlvbjpiYXJfbW92ZSAycyBlYXNlLWluO1xyXG5cdFx0LW1zLWFuaW1hdGlvbjpiYXJfbW92ZSAycyBlYXNlLWluO1xyXG5cdFx0LW8tYW5pbWF0aW9uOmJhcl9tb3ZlIDJzIGVhc2UtaW47XHJcblx0XHRhbmltYXRpb246YmFyX21vdmUgMnMgZWFzZS1pbjtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc3RhdHMuc3RhdHNfbW9kZV9iYXJzLnN0YXRzX3R5cGVfdmVydGljYWwuc2hvcnRjb2RlX2FuaW1hdGVkIC5jbXNtYXN0ZXJzX3N0YXRfaW5uZXIge1xyXG5cdFx0LXdlYmtpdC1hbmltYXRpb246YmFyX3VwIDJzIGVhc2UtaW47XHJcblx0XHQtbW96LWFuaW1hdGlvbjpiYXJfdXAgMnMgZWFzZS1pbjtcclxuXHRcdC1tcy1hbmltYXRpb246YmFyX3VwIDJzIGVhc2UtaW47XHJcblx0XHQtby1hbmltYXRpb246YmFyX3VwIDJzIGVhc2UtaW47XHJcblx0XHRhbmltYXRpb246YmFyX3VwIDJzIGVhc2UtaW47XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3N0YXRzLnN0YXRzX21vZGVfYmFycy5zdGF0c190eXBlX2hvcml6b250YWwuc2hvcnRjb2RlX2FuaW1hdGVkIC5jbXNtYXN0ZXJzX3N0YXRfaW5uZXI6YmVmb3JlLFxyXG5cdC5jbXNtYXN0ZXJzX3N0YXRzLnN0YXRzX21vZGVfYmFycy5zaG9ydGNvZGVfYW5pbWF0ZWQgLmNtc21hc3RlcnNfc3RhdF9pbm5lciAuY21zbWFzdGVyc19zdGF0X3RpdGxlIHtcclxuXHRcdC13ZWJraXQtYW5pbWF0aW9uOmJhcl90aXRsZSAyLjJzIGVhc2Utb3V0O1xyXG5cdFx0LW1vei1hbmltYXRpb246YmFyX3RpdGxlIDIuMnMgZWFzZS1vdXQ7XHJcblx0XHQtbXMtYW5pbWF0aW9uOmJhcl90aXRsZSAyLjJzIGVhc2Utb3V0O1xyXG5cdFx0LW8tYW5pbWF0aW9uOmJhcl90aXRsZSAyLjJzIGVhc2Utb3V0O1xyXG5cdFx0YW5pbWF0aW9uOmJhcl90aXRsZSAyLjJzIGVhc2Utb3V0O1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zdGF0cy5zdGF0c19tb2RlX2JhcnMuc3RhdHNfdHlwZV92ZXJ0aWNhbC5zaG9ydGNvZGVfYW5pbWF0ZWQgLmNtc21hc3RlcnNfc3RhdF9pbm5lcjpiZWZvcmUge1xyXG5cdFx0LXdlYmtpdC1hbmltYXRpb246YmFyX2ljb24gMi4ycyBlYXNlLW91dDtcclxuXHRcdC1tb3otYW5pbWF0aW9uOmJhcl9pY29uIDIuMnMgZWFzZS1vdXQ7XHJcblx0XHQtbXMtYW5pbWF0aW9uOmJhcl9pY29uIDIuMnMgZWFzZS1vdXQ7XHJcblx0XHQtby1hbmltYXRpb246YmFyX2ljb24gMi4ycyBlYXNlLW91dDtcclxuXHRcdGFuaW1hdGlvbjpiYXJfaWNvbiAyLjJzIGVhc2Utb3V0O1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zdGF0cy5zdGF0c19tb2RlX2JhcnMuc2hvcnRjb2RlX2FuaW1hdGVkIC5jbXNtYXN0ZXJzX3N0YXRfaW5uZXIgLmNtc21hc3RlcnNfc3RhdF9jb3VudGVyX3dyYXAge1xyXG5cdFx0LXdlYmtpdC1hbmltYXRpb246YmFyX2lubmVyIDFzIGVhc2UtaW4tb3V0O1xyXG5cdFx0LW1vei1hbmltYXRpb246YmFyX2lubmVyIDFzIGVhc2UtaW4tb3V0O1xyXG5cdFx0LW1zLWFuaW1hdGlvbjpiYXJfaW5uZXIgMXMgZWFzZS1pbi1vdXQ7XHJcblx0XHQtby1hbmltYXRpb246YmFyX2lubmVyIDFzIGVhc2UtaW4tb3V0O1xyXG5cdFx0YW5pbWF0aW9uOmJhcl9pbm5lciAxcyBlYXNlLWluLW91dDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfY29sdW1uX3N0aWNreSB7XHJcblx0XHQudHJhbnMofictd2Via2l0LXRyYW5zZm9ybSAuM3MgZWFzZSwgdHJhbnNmb3JtIC4zcyBlYXNlJyk7XHJcblx0fVxyXG5cdFxyXG5cdEAtd2Via2l0LWtleWZyYW1lcyBhdXRvZmlsbCB7XHJcblx0XHR0byB7XHJcblx0XHRcdGNvbG9yOmluaGVyaXQ7XHJcblx0XHRcdGJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdFxyXG5cdEAtd2Via2l0LWtleWZyYW1lcyBiYXJfbW92ZSB7XHJcblx0XHRmcm9tIHtcclxuXHRcdFx0d2lkdGg6IDA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHRvIHtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdEAtbW96LWtleWZyYW1lcyBiYXJfbW92ZSB7XHJcblx0XHRmcm9tIHtcclxuXHRcdFx0d2lkdGg6IDA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHRvIHtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdEAtby1rZXlmcmFtZXMgYmFyX21vdmUge1xyXG5cdFx0ZnJvbSB7XHJcblx0XHRcdHdpZHRoOiAwO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0byB7XHJcblx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHRAa2V5ZnJhbWVzIGJhcl9tb3ZlIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHR3aWR0aDogMDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0dG8ge1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0XHJcblx0QC13ZWJraXQta2V5ZnJhbWVzIGJhcl91cCB7XHJcblx0XHRmcm9tIHtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxMDAlKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0dG8ge1xyXG5cdFx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDAlKTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0QC1tb3ota2V5ZnJhbWVzIGJhcl91cCB7XHJcblx0XHRmcm9tIHtcclxuXHRcdFx0LW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxMDAlKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0dG8ge1xyXG5cdFx0XHQtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDAlKTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0QC1vLWtleWZyYW1lcyBiYXJfdXAge1xyXG5cdFx0ZnJvbSB7XHJcblx0XHRcdC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDEwMCUpO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0byB7XHJcblx0XHRcdC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDAlKTtcclxuXHRcdH1cclxuXHR9XHJcblx0QGtleWZyYW1lcyBiYXJfdXAge1xyXG5cdFx0ZnJvbSB7XHJcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDEwMCUpO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0byB7XHJcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDAlKTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0XHJcblx0QC13ZWJraXQta2V5ZnJhbWVzIGJhcl90aXRsZSB7XHJcblx0XHRmcm9tIHtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6IC0yMDBweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0dG8ge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDogMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHRALW1vei1rZXlmcmFtZXMgYmFyX3RpdGxlIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDogLTIwMHB4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0byB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdEAtby1rZXlmcmFtZXMgYmFyX3RpdGxlIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDogLTIwMHB4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0byB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdEBrZXlmcmFtZXMgYmFyX3RpdGxlIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDogLTIwMHB4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0byB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdFxyXG5cdEAtd2Via2l0LWtleWZyYW1lcyBiYXJfaWNvbiB7XHJcblx0XHRmcm9tIHtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OiAtMjAwcHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHRvIHtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OiAwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdEAtbW96LWtleWZyYW1lcyBiYXJfaWNvbiB7XHJcblx0XHRmcm9tIHtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OiAtMjAwcHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHRvIHtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OiAwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdEAtby1rZXlmcmFtZXMgYmFyX2ljb24ge1xyXG5cdFx0ZnJvbSB7XHJcblx0XHRcdG1hcmdpbi1yaWdodDogLTIwMHB4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0byB7XHJcblx0XHRcdG1hcmdpbi1yaWdodDogMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHRAa2V5ZnJhbWVzIGJhcl9pY29uIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IC0yMDBweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0dG8ge1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6IDBweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0XHJcblx0QC13ZWJraXQta2V5ZnJhbWVzIGJhcl9pbm5lciB7XHJcblx0XHRmcm9tIHtcclxuXHRcdFx0b3BhY2l0eTogMDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0dG8ge1xyXG5cdFx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHRALW1vei1rZXlmcmFtZXMgYmFyX2lubmVyIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHRvcGFjaXR5OiAwO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0byB7XHJcblx0XHRcdG9wYWNpdHk6IDE7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdEAtby1rZXlmcmFtZXMgYmFyX2lubmVyIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHRvcGFjaXR5OiAwO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0byB7XHJcblx0XHRcdG9wYWNpdHk6IDE7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdEBrZXlmcmFtZXMgYmFyX2lubmVyIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHRvcGFjaXR5OiAwO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0byB7XHJcblx0XHRcdG9wYWNpdHk6IDE7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRAa2V5ZnJhbWVzIHNsaWRlX3RvcHtcclxuXHRcdGZyb217XHJcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTUwJSk7XHJcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE1MCUpO1xyXG5cdFx0fVxyXG5cdFx0dG97XHJcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCUpO1xyXG5cdFx0XHR0cmFuc2Zvcm06dHJhbnNsYXRlKDAsIDAlKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEAtd2Via2l0LWtleWZyYW1lcyBzbGlkZV90b3B7XHJcblx0XHRmcm9te1xyXG5cdFx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDE1MCUpO1xyXG5cdFx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAxNTAlKTtcclxuXHRcdH1cclxuXHRcdHRve1xyXG5cdFx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDAlKTtcclxuXHRcdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCUpO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuIl0sImZpbGUiOiJzdHlsZS5jc3MifQ== */
